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
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