reap 9.2.0 → 9.2.1
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.
- data/MANIFEST +3 -1
- data/NOTES +4 -0
- data/bin/reap-rollout +7 -0
- data/lib/reap/default.yaml +76 -76
- data/lib/reap/manager.rb +2 -1
- data/lib/reap/manager/announce.rb +27 -23
- data/lib/reap/manager/gem.rb +2 -0
- data/lib/reap/manager/make.rb +4 -0
- data/lib/reap/manager/{pack.rb → package.rb} +15 -0
- data/lib/reap/manager/rdoc.rb +6 -11
- data/lib/reap/manager/release.rb +26 -60
- data/lib/reap/manager/rubyforge.rb +37 -16
- data/lib/reap/manager/stamp.rb +64 -0
- data/lib/reap/systems/rubyforge.rb +34 -16
- data/lib/reap/systems/subversion.rb +16 -8
- data/meta/VERSION +1 -1
- metadata +6 -3
data/MANIFEST
CHANGED
@@ -54,9 +54,10 @@ lib/reap/manager/scaffold.rb
|
|
54
54
|
lib/reap/manager/clean.rb
|
55
55
|
lib/reap/manager/publish.rb
|
56
56
|
lib/reap/manager/spec.rb
|
57
|
-
lib/reap/manager/
|
57
|
+
lib/reap/manager/stamp.rb
|
58
58
|
lib/reap/manager/svn.rb
|
59
59
|
lib/reap/manager/scm.rb
|
60
|
+
lib/reap/manager/package.rb
|
60
61
|
lib/reap/manager/check.rb
|
61
62
|
lib/reap/manager/announce.rb
|
62
63
|
lib/reap/utilities
|
@@ -113,6 +114,7 @@ bin/reap-stats
|
|
113
114
|
bin/reap-package
|
114
115
|
bin/reap-scm-tag
|
115
116
|
bin/reap-publish
|
117
|
+
bin/reap-rollout
|
116
118
|
bin/reap-spec
|
117
119
|
bin/reap-prepare
|
118
120
|
bin/reap-test-load
|
data/NOTES
CHANGED
@@ -10,3 +10,7 @@ standard conventions, and can no longer be changed. In
|
|
10
10
|
this case the advantage of convention outway the uses
|
11
11
|
of configuration.
|
12
12
|
|
13
|
+
What remains to be done now is mostly cleanup and fine
|
14
|
+
tuning, such as better command line output and additional
|
15
|
+
documentation.
|
16
|
+
|
data/bin/reap-rollout
ADDED
data/lib/reap/default.yaml
CHANGED
@@ -1,77 +1,77 @@
|
|
1
|
-
|
2
|
-
announce:
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
check:
|
16
|
-
|
17
|
-
|
18
|
-
check-syntax:
|
19
|
-
|
20
|
-
|
21
|
-
check-load:
|
22
|
-
|
23
|
-
|
24
|
-
clean:
|
25
|
-
|
26
|
-
log:
|
27
|
-
|
28
|
-
|
29
|
-
log-notes:
|
30
|
-
|
31
|
-
|
32
|
-
make:
|
33
|
-
|
34
|
-
package:
|
35
|
-
|
36
|
-
publish:
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
rdoc:
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
ri:
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
release:
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
spec:
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
stats:
|
68
|
-
|
69
|
-
|
70
|
-
test:
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
1
|
+
|
2
|
+
announce:
|
3
|
+
template: '{ANNOUNCE,README}{,.txt}' # Announcement template file glob.
|
4
|
+
mail_to: rubytalk@ruby-lange.org # Email address(es) to send announcemnt.
|
5
|
+
mail_from: #{metadata.email} # Message FROM address.
|
6
|
+
subject: "%s v%s released" # Subject of email message. Sprintf'd against name and version.
|
7
|
+
account: #{metadata.email} # Email account name [email].
|
8
|
+
domain: rubyforge.org # Your domain. (Not sure why one needs this for an email.)
|
9
|
+
server: smtp.goolge.com # Email server to route message.
|
10
|
+
port: 25 # Email server's port, if not secure.
|
11
|
+
port_secure: 465 # Email server's port, if secure.
|
12
|
+
secure: false # Uses TLS security, true or false?
|
13
|
+
login: plain # Login type: plain, cram_md5 or login.
|
14
|
+
cutoff: 30 # How many lines of changelog to provide.
|
15
|
+
check:
|
16
|
+
loadpath: #{metadata.loadpath}
|
17
|
+
exclude: []
|
18
|
+
check-syntax:
|
19
|
+
loadpath: #{metadata.loadpath}
|
20
|
+
exclude: [ext]
|
21
|
+
check-load:
|
22
|
+
loadpath: #{metadata.loadpath}
|
23
|
+
exclude: []
|
24
|
+
clean:
|
25
|
+
remove: [**/*~, **/*.bak]
|
26
|
+
log:
|
27
|
+
policy: [cap, ext] # How to save log files. (cap=capitialize, up=uppercase, low=lowercase, ext=extension)
|
28
|
+
output: log
|
29
|
+
log-notes:
|
30
|
+
loadpath: #{metadata.loadpath} # Files to search for notes.
|
31
|
+
labels: [TODO, FIXME, OPTIMIZE]
|
32
|
+
make:
|
33
|
+
extensions: #{metadata.extensions} # Defaults to ext/**/extconf.rb (NOT USED YET)
|
34
|
+
package:
|
35
|
+
formats: [zip, gem]
|
36
|
+
publish:
|
37
|
+
source: doc
|
38
|
+
webdir: ~
|
39
|
+
username: #{ENV['RUBYFORGE_USERNAME']}
|
40
|
+
protect: [usage, statcvs, statsvn, robot.txt, wiki] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
|
41
|
+
exclude: [.svn, scrap] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
|
42
|
+
rdoc:
|
43
|
+
template: html
|
44
|
+
output: doc/rdoc
|
45
|
+
main: 'README{,.txt}'
|
46
|
+
inline: true
|
47
|
+
merge: true
|
48
|
+
exclude: []
|
49
|
+
include: ['lib', '[A-Z]*']
|
50
|
+
adfile: doc/ads/rdoc.html
|
51
|
+
targets: ~
|
52
|
+
ri:
|
53
|
+
output: ri
|
54
|
+
exclude: []
|
55
|
+
include: #{metadata.loadpath}
|
56
|
+
release:
|
57
|
+
username: #{ENV['RUBYFORGE_USERNAME']}
|
58
|
+
changelog: 'CHANGES{,.txt}'
|
59
|
+
notelog: 'NOTES{,.txt}'
|
60
|
+
spec:
|
61
|
+
specs: [spec/**/*_spec.rb, spec/**/spec_*.rb]
|
62
|
+
loadpath: #{metadata.loadpath}
|
63
|
+
require: []
|
64
|
+
warning: false
|
65
|
+
command: spec
|
66
|
+
live: false
|
67
|
+
stats:
|
68
|
+
loadpath: #{metadata.loadpath}
|
69
|
+
exclude: ['ext']
|
70
|
+
test:
|
71
|
+
tests: test/**/{test,tc}_*.rb
|
72
|
+
loadpath: #{metadata.loadpath}
|
73
|
+
require: []
|
74
|
+
exclude: ext
|
75
|
+
command: testrb
|
76
|
+
live: false
|
77
77
|
|
data/lib/reap/manager.rb
CHANGED
@@ -34,7 +34,7 @@ require "reap/manager/gem.rb"
|
|
34
34
|
require "reap/manager/html.rb"
|
35
35
|
require "reap/manager/log.rb"
|
36
36
|
require "reap/manager/make.rb"
|
37
|
-
require "reap/manager/
|
37
|
+
require "reap/manager/package.rb"
|
38
38
|
require "reap/manager/publish.rb"
|
39
39
|
require "reap/manager/rdoc.rb"
|
40
40
|
require "reap/manager/release.rb"
|
@@ -42,6 +42,7 @@ require "reap/manager/scaffold.rb"
|
|
42
42
|
require "reap/manager/site.rb"
|
43
43
|
require "reap/manager/spec.rb"
|
44
44
|
require "reap/manager/stats.rb"
|
45
|
+
require "reap/manager/stamp.rb"
|
45
46
|
require "reap/manager/scm.rb"
|
46
47
|
require "reap/manager/svn.rb"
|
47
48
|
require "reap/manager/test.rb"
|
@@ -53,33 +53,37 @@ module Reap
|
|
53
53
|
secure = options.secure # Use TLS/SSL true or false?
|
54
54
|
password = options.password || ENV['EMAIL_PASSWORD']
|
55
55
|
|
56
|
-
title = options.title
|
57
|
-
version = options.versoin
|
56
|
+
title = options.title || metadata.title
|
57
|
+
version = options.versoin || metadata.version
|
58
58
|
|
59
59
|
# defaults
|
60
|
-
subject ||= "
|
60
|
+
subject ||= "%s, v%s released"
|
61
61
|
account ||= mail_from
|
62
62
|
|
63
63
|
subject = subject % [title, version]
|
64
64
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
email
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
65
|
+
if dryrun?
|
66
|
+
puts "[DRYRUN] Email '#{subject}'"
|
67
|
+
puts "\n#{message}\n\n" if verbose?
|
68
|
+
else
|
69
|
+
puts "\n#{message}\n\n"
|
70
|
+
if mail_to
|
71
|
+
ans = ask("Would you like to email this announcement?", "yN")
|
72
|
+
case ans.downcase
|
73
|
+
when 'y', 'yes'
|
74
|
+
email(message,
|
75
|
+
:to => mail_to,
|
76
|
+
:from => mail_from,
|
77
|
+
:subject => subject,
|
78
|
+
:server => server,
|
79
|
+
:port => port,
|
80
|
+
:domain => domain,
|
81
|
+
:account => account,
|
82
|
+
:login => login,
|
83
|
+
:secure => secure,
|
84
|
+
:password => password
|
85
|
+
)
|
86
|
+
end
|
83
87
|
end
|
84
88
|
end
|
85
89
|
end
|
@@ -140,7 +144,7 @@ module Reap
|
|
140
144
|
|
141
145
|
template = message.dup
|
142
146
|
|
143
|
-
template.scan(
|
147
|
+
template.scan(/\$(\w+?)\$/m) do |key|
|
144
148
|
#key = key.strip
|
145
149
|
name = $1.strip #key[1..-1]
|
146
150
|
if metadata.respond_to?(name.downcase)
|
@@ -152,7 +156,7 @@ module Reap
|
|
152
156
|
end
|
153
157
|
|
154
158
|
message.gsub!(/(^|[ ])[$].*?(?=[ ]|$)/,'') # remove unused vars
|
155
|
-
message.gsub!(/\n\s*\n\s*\n/m,"\n\n")
|
159
|
+
message.gsub!(/\n\s*\n\s*\n/m,"\n\n") # remove any triple blank lines
|
156
160
|
message.rstrip!
|
157
161
|
|
158
162
|
return message
|
data/lib/reap/manager/gem.rb
CHANGED
data/lib/reap/manager/make.rb
CHANGED
@@ -19,6 +19,17 @@ module Reap
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
# Prepare for packaging (clean, distclean, stamp).
|
23
|
+
#
|
24
|
+
# TODO: When we add support for binary packages distclean
|
25
|
+
# should not be done for them.
|
26
|
+
|
27
|
+
def prepare(options)
|
28
|
+
clean
|
29
|
+
make_distclean if compiles?
|
30
|
+
stamp(options)
|
31
|
+
end
|
32
|
+
|
22
33
|
# General pack command.
|
23
34
|
|
24
35
|
def package(options=nil)
|
@@ -47,6 +58,8 @@ module Reap
|
|
47
58
|
|
48
59
|
options = configure_options(options, 'package-tgz', 'package')
|
49
60
|
|
61
|
+
prepare(options)
|
62
|
+
|
50
63
|
package = metadata.clone
|
51
64
|
package.update(options)
|
52
65
|
|
@@ -88,6 +101,8 @@ module Reap
|
|
88
101
|
|
89
102
|
options = configure_options(options, 'package-zip', 'package')
|
90
103
|
|
104
|
+
prepare(options)
|
105
|
+
|
91
106
|
package = metadata.clone
|
92
107
|
package.update(options)
|
93
108
|
|
data/lib/reap/manager/rdoc.rb
CHANGED
@@ -2,17 +2,12 @@ module Reap
|
|
2
2
|
|
3
3
|
class Manager
|
4
4
|
|
5
|
-
#
|
6
|
-
#
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
# 'exclude' => [],
|
12
|
-
# 'include' => ['lib', '[A-Z]*'],
|
13
|
-
# 'adfile' => 'doc/ads/rdoc.html',
|
14
|
-
# 'targets' => nil
|
15
|
-
# }
|
5
|
+
# Generate documentation. At this time it simply
|
6
|
+
# means generating rdocs.
|
7
|
+
|
8
|
+
def document(options)
|
9
|
+
rdoc(options)
|
10
|
+
end
|
16
11
|
|
17
12
|
# Generate rdocs.
|
18
13
|
#
|
data/lib/reap/manager/release.rb
CHANGED
@@ -4,75 +4,41 @@ module Reap
|
|
4
4
|
|
5
5
|
class Manager
|
6
6
|
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
7
|
+
# Release packages (to rubyforge). This generates
|
8
|
+
# the packages, and then distributes them to the
|
9
|
+
# file server.
|
10
10
|
|
11
|
-
def
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
version = options['version'] || metadata.version || '0.0.0'
|
17
|
-
status = options['status'] || metadata.status || 'alpha'
|
18
|
-
|
19
|
-
abort "Invalid version -- #{version}" unless /^[0-9]/ =~ version
|
20
|
-
|
21
|
-
file = glob('{,meta/}version{,.txt}', File::FNM_CASEFOLD).first
|
22
|
-
file = (meta ? 'meta/VERSION' : 'VERSION') unless file
|
23
|
-
|
24
|
-
text = "#{version} #{status} (#{Time.now.strftime('%Y-%m-%d')})"
|
11
|
+
def release(options={})
|
12
|
+
package(options)
|
13
|
+
rubyforge_release(options)
|
14
|
+
end
|
25
15
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
16
|
+
# A complete rollout. This will prepare (clean, stamp and package),
|
17
|
+
# then document, publish and release, tag and announce. It will
|
18
|
+
# do under direction. You can use the --force option to bypass this
|
19
|
+
# and have evey action taken automatically.
|
30
20
|
|
31
|
-
|
32
|
-
|
33
|
-
|
21
|
+
def rollout(options={})
|
22
|
+
if force?
|
23
|
+
doc, pub, ann, tag = true, true, true, true
|
34
24
|
else
|
35
|
-
|
36
|
-
|
25
|
+
doc = ask("Generate doumentation?", "Yn").downcase =~ /^(|y|yes)$/i
|
26
|
+
pub = ask("Publish website?", "Yn") =~ /^(|y|yes)$/i
|
27
|
+
tag = ask("Tag current version?", "Yn") =~ /^(|y|yes)$/i
|
28
|
+
ann = ask("Announce release?", "Yn") =~ /^(|y|yes)$/i
|
29
|
+
puts
|
37
30
|
end
|
38
31
|
|
39
|
-
|
40
|
-
|
41
|
-
if File.exist?('.roll')
|
42
|
-
str = []
|
43
|
-
str << "name = #{metadata.name}"
|
44
|
-
str << "version = #{metadata.version}"
|
45
|
-
str << "status = #{metadata.status}"
|
46
|
-
str << "date = #{metadata.date}"
|
47
|
-
str << "default = #{metadata.default}"
|
48
|
-
str << "libpath = #{metadata.libpath}"
|
49
|
-
# File.open('.roll','w'){ |f| f << str.join("\n") }
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
# Clean, stamp if need be and package.
|
54
|
-
|
55
|
-
def prepare(options={})
|
56
|
-
clean
|
57
|
-
make_distclean if compiles?
|
58
|
-
stamp(options)
|
59
|
-
package(options)
|
60
|
-
end
|
32
|
+
document(options) if doc
|
33
|
+
publish(options) if pub
|
61
34
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
rubyforge_release(options)
|
67
|
-
#announce(options)
|
68
|
-
puts "\nBe sure to tag and announce this release if need be."
|
35
|
+
#package(options)
|
36
|
+
release(options)
|
37
|
+
scm_tag(options) if tag
|
38
|
+
announce(options) if ann
|
69
39
|
end
|
70
40
|
|
71
|
-
#def release(options)
|
72
|
-
#name, version = release.name, release.version
|
73
|
-
#sh "icli rubyforge release --version=#{version}"
|
74
|
-
#end
|
75
|
-
|
76
41
|
end
|
77
42
|
|
78
43
|
end
|
44
|
+
|
@@ -4,15 +4,10 @@ module Reap
|
|
4
4
|
|
5
5
|
class Manager
|
6
6
|
|
7
|
-
#
|
8
|
-
# 'changelog' => 'CHANGES',
|
9
|
-
# 'notelog' => 'NOTES'
|
10
|
-
#}
|
7
|
+
# Returns Rubyforge system object.
|
11
8
|
|
12
|
-
|
13
|
-
|
14
|
-
def rubyforge_release(options)
|
15
|
-
options = configure_options(options, 'release', 'rubyforge')
|
9
|
+
def rubyforge(options = nil)
|
10
|
+
options = configure_options(options, 'rubyforge')
|
16
11
|
|
17
12
|
rubyforge_options = {}
|
18
13
|
rubyforge_options[:dryrun] = dryrun?
|
@@ -21,21 +16,47 @@ module Reap
|
|
21
16
|
rubyforge_options[:username] = options.delete('username') || ENV['RUBYFORGE_USERNAME']
|
22
17
|
rubyforge_options[:group_id] = options.delete('group')
|
23
18
|
|
24
|
-
|
19
|
+
Rubyforge.new(rubyforge_options)
|
20
|
+
end
|
25
21
|
|
26
|
-
|
27
|
-
options['store'] = 'pkg'
|
22
|
+
# Release packages to rubyforge.
|
28
23
|
|
29
|
-
|
30
|
-
|
24
|
+
def rubyforge_release(options)
|
25
|
+
release_options = configure_options(options, 'release')
|
26
|
+
|
27
|
+
store = 'pkg'
|
28
|
+
version = metadata.version
|
29
|
+
|
30
|
+
release_options['version'] = version
|
31
|
+
release_options['store'] = store
|
32
|
+
|
33
|
+
changelog = release_options['changelog'] #|| DEFAULT['release']['changelog'] || DEFAULT['rubyforge']['changelog']
|
34
|
+
notelog = release_options['notelog'] #|| DEFAULT['release']['notelog'] || DEFAULT['rubyforge']['notelog']
|
31
35
|
|
32
36
|
changelog = Dir.glob(changelog.to_s, File::FNM_CASEFOLD).first
|
33
37
|
notelog = Dir.glob(notelog.to_s, File::FNM_CASEFOLD).first
|
34
38
|
|
35
|
-
|
36
|
-
|
39
|
+
release_options['changelog'] = changelog if File.exist?(changelog)
|
40
|
+
release_options['notelog'] = notelog if File.exist?(notelog)
|
41
|
+
|
42
|
+
files = release_options['files'] || []
|
43
|
+
|
44
|
+
if files.empty?
|
45
|
+
files = Dir[File.join(store, '*')].select do |file|
|
46
|
+
/#{version}[.]/ =~ file
|
47
|
+
end
|
48
|
+
release_options['files'] = files
|
49
|
+
#files = Dir.glob(File.join(store,"#{name}-#{version}*"))
|
50
|
+
end
|
37
51
|
|
38
|
-
|
52
|
+
if dryrun? # Not going to do dryrun in Rubyforge class b/c it still requires logging in.
|
53
|
+
files.each do |file|
|
54
|
+
puts "[DRYRUN] Release #{file}"
|
55
|
+
end
|
56
|
+
else
|
57
|
+
host = rubyforge(options)
|
58
|
+
host.release(release_options)
|
59
|
+
end
|
39
60
|
end
|
40
61
|
|
41
62
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'reap/manager/rubyforge'
|
2
|
+
|
3
|
+
module Reap
|
4
|
+
|
5
|
+
class Manager
|
6
|
+
|
7
|
+
# Update VERSION stamp file.
|
8
|
+
#
|
9
|
+
# TODO: Should we also update a lib/version.rb file?
|
10
|
+
# TODO: Make sure the new version isn't less then the old verison.
|
11
|
+
# Will have to use VersionNumnber class for this.
|
12
|
+
|
13
|
+
def stamp(options={})
|
14
|
+
options ||= {}
|
15
|
+
|
16
|
+
default = configuration['stamp']
|
17
|
+
|
18
|
+
version = options['version'] || metadata.version || default['version'] || '0.0.0'
|
19
|
+
status = options['status'] || metadata.status || default['status'] || 'alpha'
|
20
|
+
|
21
|
+
abort "Invalid version -- #{version}" unless /^[0-9]/ =~ version
|
22
|
+
|
23
|
+
meta = File.directory?('meta')
|
24
|
+
|
25
|
+
file = glob('{,meta/}version{,.txt}', File::FNM_CASEFOLD).first
|
26
|
+
file = (meta ? 'meta/VERSION' : 'VERSION') unless file
|
27
|
+
|
28
|
+
text = "#{version} #{status} (#{Time.now.strftime('%Y-%m-%d')})"
|
29
|
+
|
30
|
+
if File.exist?(file)
|
31
|
+
old_text = File.read(file).strip
|
32
|
+
return if text == old_text
|
33
|
+
end
|
34
|
+
|
35
|
+
if dryrun?
|
36
|
+
puts "[DRYRUN] echo #{text} > #{file}"
|
37
|
+
else
|
38
|
+
File.open(file, 'w'){|f| f << text}
|
39
|
+
puts text
|
40
|
+
puts "#{file} updated."
|
41
|
+
|
42
|
+
metadata.version = version
|
43
|
+
metadata.status = status
|
44
|
+
metadata.released = Time.now
|
45
|
+
end
|
46
|
+
|
47
|
+
# TODO: Stamp .roll if roll file exists.
|
48
|
+
# should we read current .roll file and use as defaults?
|
49
|
+
if File.exist?('.roll')
|
50
|
+
str = []
|
51
|
+
str << "name = #{metadata.name}"
|
52
|
+
str << "version = #{metadata.version}"
|
53
|
+
str << "status = #{metadata.status}"
|
54
|
+
str << "date = #{metadata.date}"
|
55
|
+
str << "default = #{metadata.default}"
|
56
|
+
str << "libpath = #{metadata.libpath}"
|
57
|
+
# File.open('.roll','w'){ |f| f << str.join("\n") }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
@@ -193,7 +193,7 @@ module Reap
|
|
193
193
|
def release(options)
|
194
194
|
options = options.rekey
|
195
195
|
|
196
|
-
version = options[:version]
|
196
|
+
version = options[:version] || metadata.version
|
197
197
|
changelog = options[:changelog]
|
198
198
|
notelog = options[:notelog]
|
199
199
|
|
@@ -240,38 +240,56 @@ module Reap
|
|
240
240
|
login do
|
241
241
|
|
242
242
|
unless package_id = package?(package)
|
243
|
-
|
243
|
+
if dryrun?
|
244
|
+
puts "[DRYRUN] Package '#{package}' does not exist."
|
245
|
+
puts "[DRYRUN] Create package #{package}."
|
246
|
+
abort "Cannot continue in dryrun mode."
|
247
|
+
else
|
248
|
+
#unless options['force']
|
244
249
|
q = "Package '#{package}' does not exist. Create?"
|
245
250
|
a = ask(q, 'yN')
|
246
251
|
abort "Task canceled." unless ['y', 'yes', 'okay'].include?(a.downcase)
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
252
|
+
#end
|
253
|
+
puts "Creating package #{package}..."
|
254
|
+
create_package(package, is_public)
|
255
|
+
unless package_id = package?(package)
|
256
|
+
raise "Package creation failed."
|
257
|
+
end
|
253
258
|
end
|
254
259
|
end
|
255
260
|
if release_id = release?(release, package_id)
|
256
261
|
#unless options[:force]
|
262
|
+
if dryrun?
|
263
|
+
puts "Release #{release} already exists."
|
264
|
+
else
|
257
265
|
q = "Release #{release} already exists. Re-release?"
|
258
266
|
a = ask(q, 'yN')
|
259
267
|
abort "Task canceled." unless ['y', 'yes', 'okay'].include?(a.downcase)
|
260
268
|
#puts "Use -f option to force re-release."
|
261
269
|
#return
|
262
|
-
|
270
|
+
end
|
263
271
|
files.each do |file|
|
264
272
|
fname = File.basename(file)
|
265
273
|
if file_id = file?(fname, package)
|
266
|
-
|
267
|
-
|
274
|
+
if dryrun?
|
275
|
+
puts "[DRYRUN] Remove file #{fname}."
|
276
|
+
else
|
277
|
+
puts "Removing file #{fname}..."
|
278
|
+
remove_file(file_id, release_id, package_id)
|
279
|
+
end
|
280
|
+
end
|
281
|
+
if dryrun?
|
282
|
+
puts "[DRYRUN] Add file #{fname}."
|
283
|
+
else
|
284
|
+
puts "Adding file #{fname}..."
|
285
|
+
add_file(file, release_id, package_id, processor)
|
268
286
|
end
|
269
|
-
puts "Adding file #{fname}..."
|
270
|
-
add_file(file, release_id, package_id, processor) unless dryrun?
|
271
287
|
end
|
272
288
|
else
|
273
|
-
|
274
|
-
|
289
|
+
if dryrun?
|
290
|
+
puts "[DRYRUN] Adding release #{release}..."
|
291
|
+
else
|
292
|
+
puts "Adding release #{release}..."
|
275
293
|
add_release(release, package_id, files,
|
276
294
|
:processor => processor,
|
277
295
|
:release_date => date,
|
@@ -288,7 +306,7 @@ module Reap
|
|
288
306
|
#end
|
289
307
|
end
|
290
308
|
end
|
291
|
-
puts "Release complete!"
|
309
|
+
puts "Release complete!" unless dryrun?
|
292
310
|
end
|
293
311
|
|
294
312
|
# #
|
@@ -92,10 +92,14 @@ module Reap
|
|
92
92
|
url = "#{protocol}://" + File.join(developer_domain, path, name)
|
93
93
|
end
|
94
94
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
95
|
+
if dryrun?
|
96
|
+
puts "[DRYRUN] svn copy . #{url}"
|
97
|
+
else
|
98
|
+
case ask("Branch: #{url} ? [yN]").strip.downcase
|
99
|
+
when 'y', 'yes'
|
100
|
+
#sh "svn copy #{protocol}://#{username}@#{repository}/trunk #{url}"
|
101
|
+
sh "svn copy . #{url}"
|
102
|
+
end
|
99
103
|
end
|
100
104
|
end
|
101
105
|
|
@@ -115,10 +119,14 @@ module Reap
|
|
115
119
|
url = "#{protocol}://" + File.join(developer_domain, path, name)
|
116
120
|
end
|
117
121
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
+
if dryrun?
|
123
|
+
puts "[DRYRUN] svn copy . #{url}"
|
124
|
+
else
|
125
|
+
case ask("Tag: #{url} ? [yN]").strip.downcase
|
126
|
+
when 'y', 'yes'
|
127
|
+
#sh "svn copy #{protocol}://#{username}@#{repository}/trunk #{url}"
|
128
|
+
sh "svn copy . #{url}"
|
129
|
+
end
|
122
130
|
end
|
123
131
|
end
|
124
132
|
|
data/meta/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
9.2.
|
1
|
+
9.2.1 alpha (2008-02-08)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.2.
|
4
|
+
version: 9.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Sawyer <transfire@gmail.com>
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-02-
|
12
|
+
date: 2008-02-08 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -41,6 +41,7 @@ executables:
|
|
41
41
|
- reap-package
|
42
42
|
- reap-scm-tag
|
43
43
|
- reap-publish
|
44
|
+
- reap-rollout
|
44
45
|
- reap-spec
|
45
46
|
- reap-prepare
|
46
47
|
- reap-test-load
|
@@ -125,9 +126,10 @@ files:
|
|
125
126
|
- lib/reap/manager/clean.rb
|
126
127
|
- lib/reap/manager/publish.rb
|
127
128
|
- lib/reap/manager/spec.rb
|
128
|
-
- lib/reap/manager/
|
129
|
+
- lib/reap/manager/stamp.rb
|
129
130
|
- lib/reap/manager/svn.rb
|
130
131
|
- lib/reap/manager/scm.rb
|
132
|
+
- lib/reap/manager/package.rb
|
131
133
|
- lib/reap/manager/check.rb
|
132
134
|
- lib/reap/manager/announce.rb
|
133
135
|
- lib/reap/utilities
|
@@ -184,6 +186,7 @@ files:
|
|
184
186
|
- bin/reap-package
|
185
187
|
- bin/reap-scm-tag
|
186
188
|
- bin/reap-publish
|
189
|
+
- bin/reap-rollout
|
187
190
|
- bin/reap-spec
|
188
191
|
- bin/reap-prepare
|
189
192
|
- bin/reap-test-load
|