reap 9.3.5 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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