reap 9.3.5 → 9.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. data/CHANGES +10 -0
  2. data/MANIFEST +37 -21
  3. data/NOTES +13 -11
  4. data/bin/reap-announce +40 -2
  5. data/bin/reap-check-load +20 -2
  6. data/bin/reap-check-syntax +20 -2
  7. data/bin/reap-clean +24 -2
  8. data/bin/reap-clobber +17 -2
  9. data/bin/reap-doc +12 -2
  10. data/bin/reap-doc-rdoc +17 -2
  11. data/bin/reap-doc-ri +16 -2
  12. data/bin/reap-doc-spec +18 -0
  13. data/bin/reap-init +9 -0
  14. data/bin/reap-inspect +20 -2
  15. data/bin/reap-install +13 -2
  16. data/bin/reap-install-gem +14 -2
  17. data/bin/reap-log +15 -2
  18. data/bin/reap-log-changes +15 -2
  19. data/bin/reap-log-notes +20 -2
  20. data/bin/reap-make +16 -2
  21. data/bin/reap-make-clean +10 -2
  22. data/bin/reap-make-distclean +18 -2
  23. data/bin/reap-make-extconf +14 -2
  24. data/bin/reap-make-static +14 -2
  25. data/bin/reap-package +25 -2
  26. data/bin/reap-package-gem +14 -2
  27. data/bin/reap-package-tgz +14 -2
  28. data/bin/reap-package-zip +14 -2
  29. data/bin/reap-prepare +21 -2
  30. data/bin/reap-publish +25 -2
  31. data/bin/reap-release +22 -2
  32. data/bin/reap-rollout +32 -2
  33. data/bin/reap-scaffold +16 -2
  34. data/bin/reap-scm-branch +13 -2
  35. data/bin/reap-scm-tag +13 -2
  36. data/bin/reap-spec +14 -2
  37. data/bin/reap-stats +21 -2
  38. data/bin/reap-test +14 -2
  39. data/bin/reap-test-cross +23 -2
  40. data/bin/reap-test-load +17 -2
  41. data/bin/reap-test-solo +19 -2
  42. data/bin/reap-uninstall +14 -2
  43. data/bin/reap-uninstall-gem +17 -2
  44. data/bin/reap-version +10 -2
  45. data/lib/reap/announcement.rb +136 -0
  46. data/lib/reap/application.rb +3 -1
  47. data/lib/reap/default.yaml +12 -12
  48. data/lib/reap/defaults.rb +49 -0
  49. data/lib/reap/emailer.rb +189 -0
  50. data/lib/reap/extensions.rb +1 -2
  51. data/lib/reap/hosts.rb +4 -0
  52. data/lib/reap/hosts/host.rb +69 -0
  53. data/lib/reap/hosts/mailinglist.rb +83 -0
  54. data/lib/reap/{systems → hosts}/rubyforge.rb +72 -60
  55. data/lib/reap/hosts/rubytalk.rb +39 -0
  56. data/lib/reap/iobject.rb +5 -3
  57. data/lib/reap/metadata.rb +31 -4
  58. data/lib/reap/project.rb +101 -41
  59. data/lib/reap/project/announce.rb +50 -180
  60. data/lib/reap/project/check.rb +1 -1
  61. data/lib/reap/project/gem.rb +32 -68
  62. data/lib/reap/project/log.rb +12 -7
  63. data/lib/reap/project/make.rb +0 -1
  64. data/lib/reap/project/package.rb +228 -75
  65. data/lib/reap/project/rdoc.rb +9 -8
  66. data/lib/reap/project/release.rb +52 -6
  67. data/lib/reap/project/scm.rb +40 -25
  68. data/lib/reap/project/spec.rb +3 -3
  69. data/lib/reap/project/test.rb +1 -2
  70. data/lib/reap/project/version.rb +18 -4
  71. data/lib/reap/runmodes.rb +24 -0
  72. data/lib/reap/settings.rb +3 -14
  73. data/lib/reap/systems.rb +4 -0
  74. data/lib/reap/systems/git.rb +0 -0
  75. data/lib/reap/systems/hg.rb +0 -0
  76. data/lib/reap/systems/{subversion.rb → svn.rb} +47 -16
  77. data/lib/reap/systems/system.rb +53 -0
  78. data/lib/reap/tool.rb +38 -0
  79. data/lib/reap/utilities.rb +43 -86
  80. data/log/{Changelog.txt → changelog.rdoc} +56 -0
  81. data/log/fixme.rdoc +25 -0
  82. data/log/todo.rdoc +85 -0
  83. data/meta/project.yaml +13 -2
  84. data/meta/version +1 -0
  85. data/setup.rb +74 -64
  86. data/task/allshare.rb +109 -0
  87. data/task/clean +13 -0
  88. data/task/compile +28 -0
  89. data/task/configure +372 -0
  90. data/task/install +1481 -0
  91. data/test/case/test_init.rb +32 -0
  92. data/test/case/test_scaffold.rb +32 -0
  93. data/test/data/scaffold/meta/project.yaml +28 -0
  94. data/test/lib/case_testable.rb +23 -0
  95. metadata +64 -31
  96. data/bin/reap-spec-doc +0 -8
  97. data/demo/README +0 -15
  98. data/demo/lib/foo/foo.rb +0 -7
  99. data/demo/meta/VERSION +0 -1
  100. data/demo/meta/project.yaml +0 -21
  101. data/lib/reap/project/rubyforge.rb +0 -71
  102. data/lib/reap/project/svn.rb +0 -76
  103. data/log/Fixme.txt +0 -22
  104. data/log/Todo.txt +0 -84
  105. data/meta/VERSION +0 -1
@@ -2,7 +2,18 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
6
7
 
7
- app.site_install
8
+ This command will install the project on your system as a local
9
+ site-ruby package. It does this be searching for an install.rb
10
+ or setup.rb script to run.
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.site_install
18
+ end
8
19
 
@@ -2,7 +2,19 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ This command will install the project on your system as a gem
9
+ package. It will create the gem package, via reap-package-gem,
10
+ if it does not already exist.
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.gem_install
18
+ end
6
19
 
7
- app.gem_install
8
20
 
@@ -2,6 +2,19 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ This command invokes the sub-log commands: log-changes and log-notes.
9
+ These commands update the automated note logs and changelog, stored
10
+ in the conventional log/ directory. The changelog is dependent on a
11
+ compataible SCM system.
12
+ END
13
+
14
+ if ARGV.include?('--help')
15
+ puts HELP
16
+ else
17
+ app = Reap::Application.new
18
+ app.log
19
+ end
6
20
 
7
- app.log
@@ -2,7 +2,20 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
6
7
 
7
- app.log_changes
8
+ This command generates a changelog and stores it in the log/
9
+ directory. This command gathers it's information from the
10
+ project's source control manager.
11
+
12
+ Currently only SVN is supported, but GIT support is forth-coming.
13
+ END
14
+
15
+ if ARGV.include?('--help')
16
+ puts HELP
17
+ else
18
+ app = Reap::Application.new
19
+ app.log_changes
20
+ end
8
21
 
@@ -2,7 +2,25 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ This command scans source code for developer notes and writes them
9
+ to well organized files. This tool can lookup and list TODO, FIXME
10
+ and other labeled comments from source code.
11
+
12
+ files Glob(s) of files to search.
13
+ labels Labels to search for. Defaults to [ 'TODO', 'FIXME' ].
14
+ output Output directory. Defaults to log/.
15
+
16
+ This command is also executed when reap-log is executed.
17
+ END
18
+
19
+ if ARGV.include?('--help')
20
+ puts HELP
21
+ else
22
+ app = Reap::Application.new
23
+ app.log_notes
24
+ end
6
25
 
7
- app.log_notes
8
26
 
@@ -2,6 +2,20 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Compile extensions using make system. This command executes
9
+ the reap-make-extconf command, which searches for extconf.rb
10
+ scripts under the ext/ directory and runs them, which will
11
+ generate Makefiles. Then the makes files are executed via the
12
+ system make command, compiling any extensions.
13
+ END
14
+
15
+ if ARGV.include?('--help')
16
+ puts HELP
17
+ else
18
+ app = Reap::Application.new
19
+ app.make
20
+ end
6
21
 
7
- app.make
@@ -2,6 +2,14 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+ END
8
+
9
+ if ARGV.include?('--help')
10
+ puts HELP
11
+ else
12
+ app = Reap::Application.new
13
+ app.make_clean
14
+ end
6
15
 
7
- app.make_clean
@@ -2,6 +2,22 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Reset ext/ contents to "pristine" state. This will
9
+ remove and temporary products created by the compile
10
+ process, via reap-make-clean, as well as remove all
11
+ itermediate object files.
12
+
13
+ Run this command if you wish to recompile from scratch.
14
+ This command is also executed when running reap-clobber.
15
+ END
16
+
17
+ if ARGV.include?('--help')
18
+ puts HELP
19
+ else
20
+ app = Reap::Application.new
21
+ app.make_distclean
22
+ end
6
23
 
7
- app.make_distclean
@@ -2,6 +2,18 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ This command searches for extconf.rb scripts under the ext/
9
+ directory and runs them, which if configured properly, will
10
+ generate suitable Makefiles for compiling any extensions.
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.make_config
18
+ end
6
19
 
7
- app.make_extconf
@@ -2,7 +2,19 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Like reap-make but passes the static option, in order
9
+ to build a static extension --one that has no external
10
+ dependencies.
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.make_static
18
+ end
6
19
 
7
- app.make_static
8
20
 
@@ -2,7 +2,30 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
6
7
 
7
- app.package
8
+ Generate packages. This command currently supports the
9
+ following formats: zip, tgz and gem. Generated packages
10
+ are stored in the conventional pkg/ directory.
11
+
12
+ The types of packages generated can be specified via the
13
+ format option. The defualt format setting includes all
14
+ three types.
15
+
16
+ format List of formats to generate.
17
+
18
+ Almost any other piece of package metadata can be overridden
19
+ via the command options.
20
+
21
+ This command first runs the reap-prepare process, which
22
+ includes reap-clean and reap-version.
23
+ END
24
+
25
+ if ARGV.include?('--help')
26
+ puts HELP
27
+ else
28
+ app = Reap::Application.new
29
+ app.package
30
+ end
8
31
 
@@ -2,6 +2,18 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Generate a gem package. The generated package is stored in the
9
+ conventional pkg/ directory. See reap-package for additional
10
+ details about genreating packages.
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.package_gem
18
+ end
6
19
 
7
- app.package_gem
@@ -2,6 +2,18 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Generate a tgz package. The generated package is stored in the
9
+ conventional pkg/ directory. See reap-package for additional
10
+ details about genreating packages
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.package_tgz
18
+ end
6
19
 
7
- app.package_tgz
@@ -2,6 +2,18 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Generate a zip package. The generated package is stored in the
9
+ conventional pkg/ directory. See reap-package for additional
10
+ details about genreating packages
11
+ END
12
+
13
+ if ARGV.include?('--help')
14
+ puts HELP
15
+ else
16
+ app = Reap::Application.new
17
+ app.package_zip
18
+ end
6
19
 
7
- app.package_zip
@@ -2,6 +2,25 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Prepare for packaging. This is "meta"-command which runs
9
+ the following commands in order:
10
+
11
+ reap-clean
12
+ reap-make-distclean
13
+ reap-version
14
+
15
+ The make-distclean command is not run if the project does
16
+ not have any extensions, or is being prepared for a binary
17
+ package. These commands prepare the project for packaging.
18
+ END
19
+
20
+ if ARGV.include?('--help')
21
+ puts HELP
22
+ else
23
+ app = Reap::Application.new
24
+ app.prepare
25
+ end
6
26
 
7
- app.prepare
@@ -2,6 +2,29 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ This tool publishes website files from a source directory
9
+ (deafult 'site') to a host provider (only Rubyforge for now).
10
+ The host must support RSync, which is used to upload the
11
+ files to the webserver.
12
+
13
+ project Name of (Rubyforge) project
14
+ webdir Relative directory on server to copy files (.)
15
+ source Local directory to get files (site/)
16
+ username Username (RUBYFORGE_USERNAME)
17
+
18
+ If the source directory does not contain an '.rysnc-filter'
19
+ file, a standard one will be genreated the first time the
20
+ command is run. You can then edit this file to add any
21
+ upload exceptions you like.
22
+ END
23
+
24
+ if ARGV.include?('--help')
25
+ puts HELP
26
+ else
27
+ app = Reap::Application.new
28
+ app.publish
29
+ end
6
30
 
7
- app.publish
@@ -2,6 +2,26 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Release a package to Rubyforge for distribution. This command
9
+ uses Reap's rubyforge subsystem to upload the package files
10
+ to Rubyforge for redistribution.
11
+
12
+ Two vital settings for this command are usernmae and password,
13
+ in order to gain access to Rubyforge. The best way to supply
14
+ this information is using the RUBYFORGE_USERNAME environment
15
+ variable, and supplying the password on the command line via
16
+ the --password option.
17
+
18
+ Do not put your password in the .reap configuration file!!!
19
+ END
20
+
21
+ if ARGV.include?('--help')
22
+ puts HELP
23
+ else
24
+ app = Reap::Application.new
25
+ app.release
26
+ end
6
27
 
7
- app.release
@@ -2,6 +2,36 @@
2
2
 
3
3
  require 'reap/application'
4
4
 
5
- app = Reap::Application.new
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Rollout is a meta-command which can run the following commands
9
+ in order:
10
+
11
+ reap-document*
12
+ reap-package
13
+ reap-publish*
14
+ reap-release
15
+ reap-scm-tag*
16
+ reap-announce*
17
+
18
+ The commands with astrisks are optional. You will be prompted in
19
+ each case if you wish to include those procedures in the rollout
20
+ process. Since reap-package also runs reap-prepare, which in turn
21
+ runs reap-clean and reap-version, reap-rollout automates a large
22
+ section of project management, and it therefore the most useful
23
+ command in Reap. A typical usage is:
24
+
25
+ $ reap-rollout --minor --password=foofoo
26
+
27
+ The --minor option indicates a minor version bump (see reap-version),
28
+ and the --password option is used by the rubyforge subsystem.
29
+ END
30
+
31
+ if ARGV.include?('--help')
32
+ puts HELP
33
+ else
34
+ app = Reap::Application.new
35
+ app.rollout
36
+ end
6
37
 
7
- app.rollout