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
data/CHANGES CHANGED
@@ -1,3 +1,13 @@
1
+ === 9.4.0 // 2008-04-04
2
+
3
+ * Created tools to help seperate some project task into isolated tasks.
4
+ * I debated weak vs strong coupling for these classes and settled on strong.
5
+ * Improved announce system for better output.
6
+ * Email and Rubyforge news posting now works.
7
+ * Create hosts classes, to support multiple hosts all at once.
8
+ * Creats scm systems classes to eventuall support more than SVN.
9
+ * Fixed many small bugs and improved overall interface.
10
+
1
11
  === 9.3.2 // 2008-02-18
2
12
 
3
13
  * Renamed reap-stamp to reap-version.
data/MANIFEST CHANGED
@@ -1,7 +1,15 @@
1
1
  Rakefile
2
2
  MANIFEST
3
3
  test
4
- test/fixtures
4
+ test/case
5
+ test/case/test_scaffold.rb
6
+ test/case/test_init.rb
7
+ test/lib
8
+ test/lib/case_testable.rb
9
+ test/data
10
+ test/data/scaffold
11
+ test/data/scaffold/meta
12
+ test/data/scaffold/meta/project.yaml
5
13
  test/unit
6
14
  test/unit/lib
7
15
  test/unit/lib/reap
@@ -13,20 +21,15 @@ README
13
21
  setup.rb
14
22
  meta
15
23
  meta/project.yaml
24
+ meta/version
16
25
  meta/unixname
17
- meta/VERSION
18
26
  meta/description
19
- demo
20
- demo/doc
21
- demo/README
22
- demo/pkg
23
- demo/meta
24
- demo/meta/project.yaml
25
- demo/meta/VERSION
26
- demo/lib
27
- demo/lib/foo
28
- demo/lib/foo/foo.rb
29
- demo/log
27
+ task
28
+ task/allshare.rb
29
+ task/configure
30
+ task/install
31
+ task/clean
32
+ task/compile
30
33
  lib
31
34
  lib/reap
32
35
  lib/reap/default.yaml
@@ -38,14 +41,26 @@ lib/reap/extensions/net/smtp_tls.rb
38
41
  lib/reap/extensions/array.rb
39
42
  lib/reap/extensions/string.rb
40
43
  lib/reap/systems
41
- lib/reap/systems/rubyforge.rb
42
- lib/reap/systems/subversion.rb
44
+ lib/reap/systems/system.rb
45
+ lib/reap/systems/git.rb
46
+ lib/reap/systems/svn.rb
47
+ lib/reap/systems/hg.rb
43
48
  lib/reap/application.rb
49
+ lib/reap/runmodes.rb
44
50
  lib/reap/project.rb
51
+ lib/reap/emailer.rb
45
52
  lib/reap/iobject.rb
53
+ lib/reap/hosts.rb
54
+ lib/reap/systems.rb
46
55
  lib/reap/settings.rb
47
56
  lib/reap/extensions.rb
57
+ lib/reap/tool.rb
48
58
  lib/reap/metadata.rb
59
+ lib/reap/hosts
60
+ lib/reap/hosts/mailinglist.rb
61
+ lib/reap/hosts/host.rb
62
+ lib/reap/hosts/rubyforge.rb
63
+ lib/reap/hosts/rubytalk.rb
49
64
  lib/reap/project
50
65
  lib/reap/project/release.rb
51
66
  lib/reap/project/rdoc.rb
@@ -54,7 +69,6 @@ lib/reap/project/log.rb
54
69
  lib/reap/project/test.rb
55
70
  lib/reap/project/site.rb
56
71
  lib/reap/project/version.rb
57
- lib/reap/project/rubyforge.rb
58
72
  lib/reap/project/html.rb
59
73
  lib/reap/project/stats.rb
60
74
  lib/reap/project/gem.rb
@@ -62,12 +76,13 @@ lib/reap/project/scaffold.rb
62
76
  lib/reap/project/clean.rb
63
77
  lib/reap/project/publish.rb
64
78
  lib/reap/project/spec.rb
65
- lib/reap/project/svn.rb
66
79
  lib/reap/project/scm.rb
67
80
  lib/reap/project/package.rb
68
81
  lib/reap/project/check.rb
69
82
  lib/reap/project/announce.rb
83
+ lib/reap/defaults.rb
70
84
  lib/reap/utilities.rb
85
+ lib/reap/announcement.rb
71
86
  data
72
87
  data/reap
73
88
  data/reap/init
@@ -86,16 +101,18 @@ data/reap/base/setup.rb
86
101
  data/reap/base/meta
87
102
  data/reap/base/meta/version
88
103
  data/reap/base/meta/unixname.erb
104
+ data/reap/base/site
89
105
  data/reap/base/lib
90
106
  data/reap/base/data
91
107
  data/reap/base/bin
92
108
  data/reap/base/COPYING
93
109
  log
94
- log/Changelog.txt
95
- log/Fixme.txt
96
- log/Todo.txt
110
+ log/todo.rdoc
111
+ log/changelog.rdoc
112
+ log/fixme.rdoc
97
113
  bin
98
114
  bin/reap-package-tgz
115
+ bin/reap-doc-spec
99
116
  bin/reap-package-gem
100
117
  bin/reap-uninstall
101
118
  bin/reap-log
@@ -130,7 +147,6 @@ bin/reap-inspect
130
147
  bin/reap-release
131
148
  bin/reap-make
132
149
  bin/reap-doc-rdoc
133
- bin/reap-spec-doc
134
150
  bin/reap-test-solo
135
151
  bin/reap-scm-branch
136
152
  bin/reap-doc-ri
data/NOTES CHANGED
@@ -1,16 +1,18 @@
1
- The 9.x series of Reap is a beta version leading
2
- upto a stable 10.0 release.
1
+ The 9.x series of Reap is a beta version leading upto
2
+ a stable 10.0 release.
3
3
 
4
4
  The system is starting to work well. There are still some
5
- rough edges to iron and polish, but on the whole it's becoming
6
- very usable.
5
+ rough edges to iron and polish, but on the whole it is
6
+ looking good. In fact this release marks a high-usability
7
+ point with the system. And with the next release or two
8
+ it should be just about ready for general consumption.
7
9
 
8
- The latest changes fix the doc/, pkg/ and log/ directories
9
- as standard conventions, and can no longer be changed. The
10
- advantage of using convention here greatly outway the
11
- flexability of configuration.
10
+ Two last major considerations are left: the orginizaiton of
11
+ the metadata; and many binaries vs. one binary. While I
12
+ like the many binaries idea, borrowed from git. The one
13
+ binary design is more flexible for supporting per-project plugins.
12
14
 
13
- What remains to be done now is mostly cleanup and fine
14
- tuning, such as better command line output and additional
15
- documentation.
15
+ An important previous change, that I will reiterate in these
16
+ notes: doc/, pkg/ and log/ directories are now fixed standard
17
+ conventions.
16
18
 
@@ -2,6 +2,44 @@
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 and email a release announcement. The announcement
9
+ text is read from ANNOUNCE{.txt} or another template file
10
+ is specified, or if no template is given, the announcemnet
11
+ is automatically built from project metadata, ant the
12
+ CHANGES and NOTES files.
13
+
14
+ Templates support metadata substitutions using $name$ syntax.
15
+ Also, it will subsititue the first line matching /please see notes/i
16
+ for the notelog. And /please see change/i for the changelog.
17
+
18
+ The following settings apply:
19
+
20
+ template Announcement template file (ANNOUNCE.txt).
21
+ cutoff Max number of lines of changelog to show.
22
+ mailto Email address(es) to send announcemnt.
23
+
24
+ If <em>mailto</em> is set then these also apply:
25
+
26
+ from Message FROM address [email].
27
+ subject Subject of email message ([ANN] title verison).
28
+ server Email server to route message.
29
+ port Email server's port.
30
+ domain Email server's domain name.
31
+ account Email account name [email].
32
+ login Login type: plain, cram_md5 or login.
33
+ secure Uses TLS security, true or false?
34
+
35
+ The announcement will be printed to standard out before sending
36
+ so it can be verified.
37
+ END
38
+
39
+ if ARGV.include?('--help')
40
+ puts HELP
41
+ else
42
+ app = Reap::Application.new
43
+ app.announce
44
+ end
6
45
 
7
- app.announce
@@ -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]
6
7
 
7
- app.check_load
8
+ Load each script independently to ensure there are no require
9
+ dependency issues. This takes one option:
10
+
11
+ scripts ruby files to check
12
+
13
+ Scripts is a glob of files or a list of globs. By default this
14
+ is all scripts in the libpath(s).
15
+
16
+ WARNING! You should only run this on scripts that have no
17
+ toplevel side-effects!!!
18
+ END
19
+
20
+ if ARGV.include?('--help')
21
+ puts HELP
22
+ else
23
+ app = Reap::Application.new
24
+ app.check_load
25
+ end
8
26
 
@@ -2,6 +2,24 @@
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
+ Verify syntax of ruby scripts.
9
+
10
+ This takes one option:
11
+
12
+ scripts files is check
13
+
14
+ The scripts option is a glob or list of globs of
15
+ the scripts to check. By default this is all
16
+ scripts in the libpath(s).
17
+ END
18
+
19
+ if ARGV.include?('--help')
20
+ puts HELP
21
+ else
22
+ app = Reap::Application.new
23
+ app.check_syntax
24
+ end
6
25
 
7
- app.check_syntax
@@ -2,6 +2,28 @@
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
+ Clean scrap products. All directory paths and or file globs
9
+ listed under the clean configuration entry, can be removed via
10
+ this method. By default all files ending with "~" or .bak
11
+ are removed. To specifcy an alternate provide a list of files
12
+ and/or globs under +remove:+ sub-entry. You can also provide
13
+ an +exclude:+ sub-entry to isolate files not to be removed.
14
+ For example:
15
+
16
+ clean:
17
+ remove [ '**/*~', '**/*.bak', '.config' ]
18
+
19
+ Clean is run as a prerequiste to #release via #prepare.
20
+ END
21
+
22
+ if ARGV.include?('--help')
23
+ puts HELP
24
+ else
25
+ app = Reap::Application.new
26
+ app.clean
27
+ end
28
+
6
29
 
7
- app.clean
@@ -2,6 +2,21 @@
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 runs all built-in clobber procedures. Clobber
9
+ procedures are "undo" procedures for built-in generators,
10
+ such as the documentation and package generators.
11
+ Clobber also runs the clean task.
12
+
13
+ Use clobber to restore a project to it's "pristine" state.
14
+ END
15
+
16
+ if ARGV.include?('--help')
17
+ puts HELP
18
+ else
19
+ app = Reap::Application.new
20
+ app.clobber
21
+ end
6
22
 
7
- app.clobber
@@ -2,6 +2,16 @@
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 documentation. This simply runs reap-doc-rdoc.
9
+ END
10
+
11
+ if ARGV.include?('--help')
12
+ puts HELP
13
+ else
14
+ app = Reap::Application.new
15
+ app.document
16
+ end
6
17
 
7
- app.rdoc
@@ -2,6 +2,21 @@
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 Rdoc documentation. Settings are the same as the rdoc
9
+ command options, with two exceptions: +output+ for +op+ and
10
+ +inline+ for +inline-source+.
11
+
12
+ The rdoc command can also be configured to generate multiple
13
+ documentation sets. (To be continued...)
14
+ END
15
+
16
+ if ARGV.include?('--help')
17
+ puts HELP
18
+ else
19
+ app = Reap::Application.new
20
+ app.rdoc
21
+ end
6
22
 
7
- app.rdoc
@@ -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
+ Gerneates local ri api documentation. The generated files
9
+ are stored in the conventional location doc/ri.
10
+
11
+ These are useful to checking ri docs look good. Try it with
12
+ a tool such as webri or rbbr.
13
+ END
14
+
15
+ if ARGV.include?('--help')
16
+ puts HELP
17
+ else
18
+ app = Reap::Application.new
19
+ app.ridoc
20
+ end
6
21
 
7
- app.ridoc
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'reap/application'
4
+
5
+ HELP = <<-END
6
+ Usage: #{File.basename($0)} [options]
7
+
8
+ Generate specification documentation. This shells out to the
9
+ 'spec' command per RSpec to generate the specification outline.
10
+ END
11
+
12
+ if ARGV.include?('--help')
13
+ puts HELP
14
+ else
15
+ app = Reap::Application.new
16
+ app.spec_doc
17
+ end
18
+
@@ -8,6 +8,15 @@ require 'reap/utilities'
8
8
 
9
9
  include Reap::Utilities
10
10
 
11
+ HELP = <<-END
12
+ Usage: #{File.basename($0)} [options]
13
+ END
14
+
15
+ if ARGV.include?('--help')
16
+ puts HELP
17
+ exit
18
+ end
19
+
11
20
  def dryrun?
12
21
  ARGV.include?('--dryrun')
13
22
  end
@@ -2,6 +2,24 @@
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
+ Thois command dumps project metadata. It is useful for debugging
9
+ configuration settings. You can speciify the name of a particular
10
+ piece of metadata to see just that information. For example:
11
+
12
+ #{File.basename($0)} version
13
+ 9.3.5
14
+
15
+ If no name is given then all metadata is dumped to standard-out
16
+ in YAML format.
17
+ END
18
+
19
+ if ARGV.include?('--help')
20
+ puts HELP
21
+ else
22
+ app = Reap::Application.new
23
+ app.introspect
24
+ end
6
25
 
7
- app.introspect