buildr 1.3.5 → 1.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.
- data/CHANGELOG +153 -8
- data/README.rdoc +1 -1
- data/addon/buildr/antlr.rb +5 -5
- data/addon/buildr/drb.rb +18 -18
- data/addon/buildr/hibernate.rb +18 -14
- data/addon/buildr/javacc.rb +4 -4
- data/addon/buildr/jetty.rb +5 -5
- data/addon/buildr/nailgun.rb +23 -23
- data/addon/buildr/openjpa.rb +1 -1
- data/addon/buildr/org/apache/buildr/BuildrNail$Main.class +0 -0
- data/addon/buildr/org/apache/buildr/BuildrNail.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$1.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
- data/addon/buildr/protobuf.rb +75 -0
- data/addon/buildr/xmlbeans.rb +5 -5
- data/buildr.buildfile +2 -2
- data/buildr.gemspec +8 -7
- data/doc/_layouts/default.html +2 -2
- data/doc/artifacts.textile +4 -4
- data/doc/building.textile +35 -3
- data/doc/contributing.textile +5 -0
- data/doc/download.textile +16 -5
- data/doc/extending.textile +38 -12
- data/doc/installing.textile +6 -5
- data/doc/languages.textile +182 -42
- data/doc/more_stuff.textile +2 -2
- data/doc/packaging.textile +14 -15
- data/doc/projects.textile +7 -2
- data/doc/quick_start.textile +4 -4
- data/doc/scripts/buildr-git.rb +63 -63
- data/doc/scripts/gitflow.rb +21 -21
- data/doc/settings_profiles.textile +9 -2
- data/doc/testing.textile +16 -5
- data/etc/KEYS +38 -0
- data/lib/buildr/core/application.rb +33 -27
- data/lib/buildr/core/build.rb +41 -28
- data/lib/buildr/core/cc.rb +172 -0
- data/lib/buildr/core/checks.rb +1 -1
- data/lib/buildr/core/common.rb +7 -6
- data/lib/buildr/core/compile.rb +7 -8
- data/lib/buildr/core/doc.rb +263 -0
- data/lib/buildr/core/environment.rb +6 -6
- data/lib/buildr/core/filter.rb +77 -35
- data/lib/buildr/core/generate.rb +7 -7
- data/lib/buildr/core/help.rb +1 -1
- data/lib/buildr/core/osx.rb +6 -6
- data/lib/buildr/core/progressbar.rb +4 -4
- data/lib/buildr/core/project.rb +144 -36
- data/lib/buildr/core/shell.rb +34 -34
- data/lib/buildr/core/test.rb +89 -20
- data/lib/buildr/core/transports.rb +8 -7
- data/lib/buildr/core/util.rb +77 -23
- data/lib/buildr/core.rb +1 -0
- data/lib/buildr/groovy/bdd.rb +5 -5
- data/lib/buildr/groovy/compiler.rb +19 -15
- data/lib/buildr/groovy/shell.rb +6 -6
- data/lib/buildr/ide/eclipse/java.rb +3 -3
- data/lib/buildr/ide/eclipse/plugin.rb +8 -5
- data/lib/buildr/ide/eclipse/scala.rb +4 -2
- data/lib/buildr/ide/eclipse.rb +148 -75
- data/lib/buildr/ide/idea.rb +2 -2
- data/lib/buildr/ide/idea7x.rb +23 -4
- data/lib/buildr/java/ant.rb +4 -4
- data/lib/buildr/java/bdd.rb +51 -54
- data/lib/buildr/java/cobertura.rb +57 -35
- data/lib/buildr/java/commands.rb +14 -5
- data/lib/buildr/java/compiler.rb +3 -217
- data/lib/buildr/java/deprecated.rb +4 -4
- data/lib/buildr/java/doc.rb +70 -0
- data/lib/buildr/java/emma.rb +22 -22
- data/lib/buildr/java/jruby.rb +4 -4
- data/lib/buildr/java/jtestr_runner.rb.erb +27 -25
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +8 -3
- data/lib/buildr/java/packaging.rb +30 -29
- data/lib/buildr/java/pom.rb +4 -4
- data/lib/buildr/java/rjb.rb +6 -6
- data/lib/buildr/java/test_result.rb +61 -85
- data/lib/buildr/java/tests.rb +44 -27
- data/lib/buildr/java/version_requirement.rb +8 -8
- data/lib/buildr/java.rb +1 -0
- data/lib/buildr/packaging/archive.rb +55 -22
- data/lib/buildr/packaging/artifact.rb +75 -36
- data/lib/buildr/packaging/artifact_namespace.rb +90 -78
- data/lib/buildr/packaging/artifact_search.rb +5 -5
- data/lib/buildr/packaging/gems.rb +11 -7
- data/lib/buildr/packaging/package.rb +10 -7
- data/lib/buildr/packaging/tar.rb +14 -14
- data/lib/buildr/packaging/version_requirement.rb +30 -10
- data/lib/buildr/packaging/ziptask.rb +51 -13
- data/lib/buildr/scala/bdd.rb +25 -20
- data/lib/buildr/scala/compiler.rb +87 -40
- data/lib/buildr/scala/doc.rb +106 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.java +57 -0
- data/lib/buildr/scala/shell.rb +14 -9
- data/lib/buildr/scala/tests.rb +33 -26
- data/lib/buildr/scala.rb +1 -0
- data/lib/buildr/shell.rb +33 -33
- data/lib/buildr.rb +1 -1
- data/rakelib/all-in-one.rake +113 -0
- data/rakelib/checks.rake +1 -1
- data/rakelib/doc.rake +7 -0
- data/rakelib/package.rake +1 -1
- data/rakelib/release.rake +9 -6
- data/rakelib/rspec.rake +26 -7
- data/rakelib/setup.rake +15 -3
- data/rakelib/stage.rake +18 -11
- data/spec/addon/drb_spec.rb +25 -25
- data/spec/core/application_spec.rb +111 -21
- data/spec/core/build_spec.rb +16 -15
- data/spec/core/cc_spec.rb +174 -0
- data/spec/core/checks_spec.rb +34 -34
- data/spec/core/common_spec.rb +51 -5
- data/spec/core/compile_spec.rb +89 -14
- data/spec/core/extension_spec.rb +127 -19
- data/spec/core/generate_spec.rb +2 -2
- data/spec/core/project_spec.rb +10 -10
- data/spec/core/test_spec.rb +144 -35
- data/spec/core/transport_spec.rb +8 -8
- data/spec/core/util_spec.rb +63 -5
- data/spec/groovy/bdd_spec.rb +5 -5
- data/spec/groovy/compiler_spec.rb +29 -18
- data/spec/ide/eclipse_spec.rb +185 -9
- data/spec/ide/idea7x_spec.rb +22 -10
- data/spec/java/ant_spec.rb +9 -5
- data/spec/java/bdd_spec.rb +29 -37
- data/spec/java/cobertura_spec.rb +12 -12
- data/spec/java/commands_spec.rb +34 -0
- data/spec/java/compiler_spec.rb +53 -53
- data/spec/java/emma_spec.rb +11 -11
- data/spec/java/java_spec.rb +10 -10
- data/spec/java/packaging_spec.rb +67 -20
- data/spec/java/test_coverage_helper.rb +18 -18
- data/spec/java/tests_spec.rb +13 -9
- data/spec/packaging/archive_spec.rb +187 -20
- data/spec/packaging/artifact_namespace_spec.rb +172 -83
- data/spec/packaging/artifact_spec.rb +83 -18
- data/spec/packaging/packaging_spec.rb +41 -14
- data/spec/sandbox.rb +23 -12
- data/spec/scala/bdd_spec.rb +13 -8
- data/spec/scala/compiler_spec.rb +18 -13
- data/spec/scala/scala.rb +3 -3
- data/spec/scala/tests_spec.rb +46 -24
- data/spec/spec_helpers.rb +28 -10
- data/spec/version_requirement_spec.rb +25 -11
- metadata +149 -133
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala +0 -35
- data/rakelib/stage.rake~ +0 -213
data/rakelib/doc.rake
CHANGED
|
@@ -71,6 +71,13 @@ task :site=>['_site', :rdoc, '_reports/specs.html', '_reports/coverage', 'buildr
|
|
|
71
71
|
cp_r '_reports/coverage', '_site'
|
|
72
72
|
fail 'No coverage report in site directory' unless File.exist?('_site/coverage/index.html')
|
|
73
73
|
cp 'CHANGELOG', '_site'
|
|
74
|
+
open("_site/.htaccess", "w") do |htaccess|
|
|
75
|
+
htaccess << %Q{
|
|
76
|
+
<FilesMatch "CHANGELOG">
|
|
77
|
+
ForceType 'text/plain; charset=UTF-8'
|
|
78
|
+
</FilesMatch>
|
|
79
|
+
}
|
|
80
|
+
end
|
|
74
81
|
cp 'buildr.pdf', '_site'
|
|
75
82
|
fail 'No PDF in site directory' unless File.exist?('_site/buildr.pdf')
|
|
76
83
|
puts 'OK'
|
data/rakelib/package.rake
CHANGED
|
@@ -67,7 +67,7 @@ task :snapshot=>[:package] do
|
|
|
67
67
|
cp FileList['pkg/{*.gem,*.tgz,*.zip}'], '_snapshot/gems'
|
|
68
68
|
puts "Generating gem index ..."
|
|
69
69
|
sh 'gem', 'generate_index', '--directory', '_snapshot'
|
|
70
|
-
puts "Copying gem and index back to Apache"
|
|
70
|
+
puts "Copying gem and index back to Apache"
|
|
71
71
|
sh 'rsync', '--progress', '--recursive', '_snapshot/', 'people.apache.org:public_html/buildr/snapshot/'
|
|
72
72
|
end
|
|
73
73
|
task(:clobber) { rm_rf '_snapshot' }
|
data/rakelib/release.rake
CHANGED
|
@@ -45,6 +45,9 @@ task :release do
|
|
|
45
45
|
|
|
46
46
|
# Upload binary and source packages to RubyForge.
|
|
47
47
|
lambda do
|
|
48
|
+
sh 'rubyforge', 'login'
|
|
49
|
+
# update rubyforge projects, processors, etc. in local config
|
|
50
|
+
sh 'rubyforge', 'config'
|
|
48
51
|
files = FileList["_release/#{spec.version}/dist/*.{gem,tgz,zip}"]
|
|
49
52
|
puts "Uploading #{spec.version} to RubyForge ... "
|
|
50
53
|
rubyforge = RubyForge.new.configure
|
|
@@ -63,7 +66,7 @@ task :release do
|
|
|
63
66
|
# Create an SVN tag for this release.
|
|
64
67
|
lambda do
|
|
65
68
|
info = `svn info` + `git svn info` # Using either svn or git-svn
|
|
66
|
-
if url = info[/^URL:/] && info.scan(/^URL: (.*)/)[0][0]
|
|
69
|
+
if url = info[/^URL:/] && info.scan(/^URL: (.*)/)[0][0]
|
|
67
70
|
new_url = url.sub(/(trunk$)|(branches\/\w*)$/, "tags/#{spec.version}")
|
|
68
71
|
unless url == new_url
|
|
69
72
|
sh 'svn', 'copy', url, new_url, '-m', "Release #{spec.version}" do |ok, res|
|
|
@@ -80,7 +83,7 @@ task :release do
|
|
|
80
83
|
|
|
81
84
|
|
|
82
85
|
# Update CHANGELOG to next release number.
|
|
83
|
-
lambda do
|
|
86
|
+
lambda do
|
|
84
87
|
next_version = spec.version.to_s.split('.').map { |v| v.to_i }.
|
|
85
88
|
zip([0, 0, 1]).map { |a| a.inject(0) { |t,i| t + i } }.join('.')
|
|
86
89
|
modified = "#{next_version} (Pending)\n\n" + File.read('CHANGELOG')
|
|
@@ -89,7 +92,7 @@ task :release do
|
|
|
89
92
|
end
|
|
90
93
|
puts "[X] Updated CHANGELOG and added entry for next release"
|
|
91
94
|
end.call
|
|
92
|
-
|
|
95
|
+
|
|
93
96
|
|
|
94
97
|
# Update source files to next release number.
|
|
95
98
|
lambda do
|
|
@@ -98,7 +101,7 @@ task :release do
|
|
|
98
101
|
|
|
99
102
|
ver_file = "lib/#{spec.name}.rb"
|
|
100
103
|
if File.exist?(ver_file)
|
|
101
|
-
modified = File.read(ver_file).sub(/(VERSION\s*=\s*)(['"])(.*)\2/) { |line| "#{$1}#{$2}#{next_version}#{$2}" }
|
|
104
|
+
modified = File.read(ver_file).sub(/(VERSION\s*=\s*)(['"])(.*)\2/) { |line| "#{$1}#{$2}#{next_version}#{$2}" }
|
|
102
105
|
File.open ver_file, 'w' do |file|
|
|
103
106
|
file.write modified
|
|
104
107
|
end
|
|
@@ -107,7 +110,7 @@ task :release do
|
|
|
107
110
|
|
|
108
111
|
spec_file = "#{spec.name}.gemspec"
|
|
109
112
|
if File.exist?(spec_file)
|
|
110
|
-
modified = File.read(spec_file).sub(/(s(?:pec)?\.version\s*=\s*)(['"])(.*)\2/) { |line| "#{$1}#{$2}#{next_version}#{$2}" }
|
|
113
|
+
modified = File.read(spec_file).sub(/(s(?:pec)?\.version\s*=\s*)(['"])(.*)\2/) { |line| "#{$1}#{$2}#{next_version}#{$2}" }
|
|
111
114
|
File.open spec_file, 'w' do |file|
|
|
112
115
|
file.write modified
|
|
113
116
|
end
|
|
@@ -115,7 +118,7 @@ task :release do
|
|
|
115
118
|
end
|
|
116
119
|
end.call
|
|
117
120
|
|
|
118
|
-
|
|
121
|
+
|
|
119
122
|
# Prepare release announcement email.
|
|
120
123
|
lambda do
|
|
121
124
|
changes = File.read("_release/#{spec.version}/CHANGES")[/.*?\n(.*)/m, 1]
|
data/rakelib/rspec.rake
CHANGED
|
@@ -18,34 +18,53 @@ begin
|
|
|
18
18
|
require 'spec/rake/spectask'
|
|
19
19
|
directory '_reports'
|
|
20
20
|
|
|
21
|
+
def default_spec_opts
|
|
22
|
+
default = %w{--format failing_examples:failed --format html:_reports/specs.html --backtrace}
|
|
23
|
+
default << '--colour' if $stdout.isatty
|
|
24
|
+
default
|
|
25
|
+
end
|
|
26
|
+
|
|
21
27
|
desc "Run all specs"
|
|
22
28
|
Spec::Rake::SpecTask.new :spec=>['_reports', :compile] do |task|
|
|
29
|
+
ENV['USE_FSC'] = 'no'
|
|
23
30
|
task.spec_files = FileList['spec/**/*_spec.rb']
|
|
24
31
|
task.spec_files.exclude('spec/groovy/*') if RUBY_PLATFORM[/java/]
|
|
25
|
-
task.spec_opts =
|
|
26
|
-
task.spec_opts << '--
|
|
32
|
+
task.spec_opts = default_spec_opts
|
|
33
|
+
task.spec_opts << '--format specdoc'
|
|
27
34
|
end
|
|
28
35
|
file('_reports/specs.html') { task(:spec).invoke }
|
|
29
36
|
|
|
30
37
|
desc 'Run all failed examples from previous run'
|
|
31
38
|
Spec::Rake::SpecTask.new :failed do |task|
|
|
39
|
+
ENV['USE_FSC'] = 'no'
|
|
32
40
|
task.spec_files = FileList['spec/**/*_spec.rb']
|
|
33
|
-
task.spec_opts =
|
|
34
|
-
task.spec_opts << '--
|
|
41
|
+
task.spec_opts = default_spec_opts
|
|
42
|
+
task.spec_opts << '--format specdoc' << '--example failed'
|
|
35
43
|
end
|
|
36
44
|
|
|
37
45
|
desc 'Run RSpec and generate Spec and coverage reports (slow)'
|
|
38
46
|
Spec::Rake::SpecTask.new :coverage=>['_reports', :compile] do |task|
|
|
47
|
+
ENV['USE_FSC'] = 'no'
|
|
39
48
|
task.spec_files = FileList['spec/**/*_spec.rb']
|
|
40
|
-
task.spec_opts =
|
|
41
|
-
task.spec_opts << '--
|
|
49
|
+
task.spec_opts = default_spec_opts
|
|
50
|
+
task.spec_opts << '--format progress'
|
|
42
51
|
task.rcov = true
|
|
43
52
|
task.rcov_dir = '_reports/coverage'
|
|
44
53
|
task.rcov_opts = %w{--exclude / --include-file ^lib --text-summary}
|
|
45
54
|
end
|
|
46
55
|
file('_reports/coverage') { task(:coverage).invoke }
|
|
47
56
|
|
|
48
|
-
|
|
57
|
+
task :load_ci_reporter do
|
|
58
|
+
gem 'ci_reporter'
|
|
59
|
+
ENV['CI_REPORTS'] = '_reports/ci'
|
|
60
|
+
# CI_Reporter does not quote the path to rspec_loader which causes problems when ruby is installed in C:/Program Files
|
|
61
|
+
ci_rep_path = Gem.loaded_specs['ci_reporter'].full_gem_path
|
|
62
|
+
ENV["SPEC_OPTS"] = [ENV["SPEC_OPTS"], default_spec_opts, "--require", "\"#{ci_rep_path}/lib/ci/reporter/rake/rspec_loader.rb\"", "--format", "CI::Reporter::RSpec"].join(" ")
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
desc 'Run all specs with CI reporter'
|
|
66
|
+
task :ci=>[:load_ci_reporter, :spec]
|
|
67
|
+
|
|
49
68
|
# Useful for testing with JRuby when using Ruby and vice versa.
|
|
50
69
|
namespace :spec do
|
|
51
70
|
desc "Run all specs specifically with Ruby"
|
data/rakelib/setup.rake
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
require 'jruby' if RUBY_PLATFORM[/java/]
|
|
18
18
|
require 'rubygems/source_info_cache'
|
|
19
19
|
|
|
20
|
-
RAKE_SUDO = case (ENV['RAKE_SUDO'] or '
|
|
20
|
+
RAKE_SUDO = case (ENV['RAKE_SUDO'] or 'false').strip.downcase
|
|
21
21
|
when 'yes', 'true'
|
|
22
22
|
true
|
|
23
23
|
else
|
|
@@ -35,7 +35,14 @@ def install_gem(name, options = {})
|
|
|
35
35
|
args = []
|
|
36
36
|
args << 'sudo' << 'env' << "JAVA_HOME=#{ENV['JAVA_HOME']}" if sudo_needed? and RAKE_SUDO
|
|
37
37
|
args << rb_bin << '-S' << 'gem' << 'install' << name
|
|
38
|
-
|
|
38
|
+
|
|
39
|
+
if (spec.respond_to? :requirement)
|
|
40
|
+
args << '--version' << dep.requirement.to_s
|
|
41
|
+
else
|
|
42
|
+
# Dependency.version_requirements deprecated in rubygems 1.3.6
|
|
43
|
+
args << '--version' << dep.version_requirements.to_s
|
|
44
|
+
end
|
|
45
|
+
|
|
39
46
|
args << '--source' << options[:source] if options[:source]
|
|
40
47
|
args << '--source' << 'http://gems.rubyforge.org'
|
|
41
48
|
args << '--install-dir' << ENV['GEM_HOME'] if ENV['GEM_HOME']
|
|
@@ -49,6 +56,11 @@ desc "If you're building from sources, run this task first to setup the necessar
|
|
|
49
56
|
task :setup do
|
|
50
57
|
missing = spec.dependencies.select { |dep| Gem::SourceIndex.from_installed_gems.search(dep).empty? }
|
|
51
58
|
missing.each do |dep|
|
|
52
|
-
|
|
59
|
+
if (spec.respond_to? :requirement)
|
|
60
|
+
install_gem dep.name, :version=>dep.requirement
|
|
61
|
+
else
|
|
62
|
+
# Dependency.version_requirements deprecated in rubygems 1.3.6
|
|
63
|
+
install_gem dep.name, :version=>dep.version_requirements
|
|
64
|
+
end
|
|
53
65
|
end
|
|
54
66
|
end
|
data/rakelib/stage.rake
CHANGED
|
@@ -23,13 +23,14 @@ rescue LoadError
|
|
|
23
23
|
task(:setup) { install_gem 'rubyforge' }
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
gpg_cmd = 'gpg2'
|
|
26
27
|
|
|
27
28
|
task :prepare do |task, args|
|
|
28
29
|
# Make sure we're doing a release from checked code.
|
|
29
30
|
lambda do
|
|
30
31
|
puts "Checking there are no local changes ... "
|
|
31
32
|
svn = `svn status`
|
|
32
|
-
|
|
33
|
+
fail "Cannot release unless all local changes are in SVN:\n#{svn}" unless svn.empty?
|
|
33
34
|
git = `git status`
|
|
34
35
|
fail "Cannot release unless all local changes are in Git:\n#{git}" if git[/^#\t/]
|
|
35
36
|
puts "[X] There are no local changes, everything is in source control"
|
|
@@ -40,14 +41,19 @@ task :prepare do |task, args|
|
|
|
40
41
|
puts "Checking that CHANGELOG indicates most recent version and today's date ... "
|
|
41
42
|
expecting = "#{spec.version} (#{Time.now.strftime('%Y-%m-%d')})"
|
|
42
43
|
header = File.readlines('CHANGELOG').first.chomp
|
|
43
|
-
|
|
44
|
+
fail "Expecting CHANGELOG to start with #{expecting}, but found #{header} instead" unless expecting == header
|
|
44
45
|
puts "[x] CHANGELOG indicates most recent version and today's date"
|
|
45
46
|
end.call
|
|
46
47
|
|
|
47
48
|
# Need GPG to sign the packages.
|
|
48
49
|
lambda do
|
|
49
50
|
args.gpg or fail "Please run with gpg=<argument for gpg --local-user>"
|
|
50
|
-
|
|
51
|
+
gpg_ok = `gpg2 --list-keys #{args.gpg}`
|
|
52
|
+
if !$?.success?
|
|
53
|
+
gpg_ok = `gpg --list-keys #{args.gpg}`
|
|
54
|
+
gpg_cmd = 'gpg'
|
|
55
|
+
end
|
|
56
|
+
fail "No GPG user #{args.gpg}" if gpg_ok.empty?
|
|
51
57
|
end.call
|
|
52
58
|
|
|
53
59
|
task(:license).invoke
|
|
@@ -73,7 +79,7 @@ task :prepare do |task, args|
|
|
|
73
79
|
lambda do
|
|
74
80
|
puts "[!] Make sure you have admin privileges to make a release on RubyForge"
|
|
75
81
|
rubyforge = RubyForge.new.configure
|
|
76
|
-
rubyforge.login
|
|
82
|
+
rubyforge.login
|
|
77
83
|
rubyforge.scrape_project(spec.name)
|
|
78
84
|
end.call
|
|
79
85
|
|
|
@@ -106,14 +112,14 @@ task :stage=>['setup', 'doc:setup', :clobber, :prepare] do |task, args|
|
|
|
106
112
|
task(:package).invoke
|
|
107
113
|
mkpath '_staged/dist'
|
|
108
114
|
FileList['pkg/*.{gem,zip,tgz}'].each do |source|
|
|
109
|
-
pkg = source.pathmap('_staged/dist/%n%x')
|
|
115
|
+
pkg = source.pathmap('_staged/dist/%n%x')
|
|
110
116
|
cp source, pkg
|
|
111
117
|
bytes = File.open(pkg, 'rb') { |file| file.read }
|
|
112
118
|
File.open(pkg + '.md5', 'w') { |file| file.write Digest::MD5.hexdigest(bytes) << ' ' << File.basename(pkg) }
|
|
113
119
|
File.open(pkg + '.sha1', 'w') { |file| file.write Digest::SHA1.hexdigest(bytes) << ' ' << File.basename(pkg) }
|
|
114
|
-
sh
|
|
120
|
+
sh gpg_cmd, '--local-user', args.gpg, '--armor', '--output', pkg + '.asc', '--detach-sig', pkg, :verbose=>true
|
|
115
121
|
end
|
|
116
|
-
cp 'etc/KEYS', '_staged'
|
|
122
|
+
cp 'etc/KEYS', '_staged/dist'
|
|
117
123
|
puts "[X] Created and signed release packages in _staged/dist"
|
|
118
124
|
end.call
|
|
119
125
|
|
|
@@ -121,10 +127,11 @@ task :stage=>['setup', 'doc:setup', :clobber, :prepare] do |task, args|
|
|
|
121
127
|
# want to do that before generating the site/documentation.
|
|
122
128
|
lambda do
|
|
123
129
|
puts "Updating download page with links to release packages ... "
|
|
124
|
-
|
|
130
|
+
mirror = "http://www.apache.org/dyn/closer.cgi/#{spec.name}/#{spec.version}"
|
|
131
|
+
official = "http://www.apache.org/dist/#{spec.name}/#{spec.version}"
|
|
125
132
|
rows = FileList['_staged/dist/*.{gem,tgz,zip}'].map { |pkg|
|
|
126
133
|
name, md5 = File.basename(pkg), Digest::MD5.file(pkg).to_s
|
|
127
|
-
%{| "#{name}":#{
|
|
134
|
+
%{| "#{name}":#{mirror}/#{name} | "#{md5}":#{official}/#{name}.md5 | "Sig":#{official}/#{name}.asc |}
|
|
128
135
|
}
|
|
129
136
|
textile = <<-TEXTILE
|
|
130
137
|
h3. #{spec.name} #{spec.version} (#{Time.now.strftime('%Y-%m-%d')})
|
|
@@ -132,7 +139,7 @@ h3. #{spec.name} #{spec.version} (#{Time.now.strftime('%Y-%m-%d')})
|
|
|
132
139
|
|_. Package |_. MD5 Checksum |_. PGP |
|
|
133
140
|
#{rows.join("\n")}
|
|
134
141
|
|
|
135
|
-
p>. ("Release signing keys":#{
|
|
142
|
+
p>. ("Release signing keys":#{official}/KEYS)
|
|
136
143
|
TEXTILE
|
|
137
144
|
file_name = 'doc/download.textile'
|
|
138
145
|
print "Adding download links to #{file_name} ... "
|
|
@@ -161,7 +168,7 @@ p>. ("Release signing keys":#{url}/KEYS)
|
|
|
161
168
|
sh 'rsync', '--progress', '--recursive', '_staged/', url
|
|
162
169
|
puts "[X] Uploaded _staged directory to #{url}"
|
|
163
170
|
end.call
|
|
164
|
-
|
|
171
|
+
|
|
165
172
|
|
|
166
173
|
# Prepare a release vote email. In the distant future this will also send the
|
|
167
174
|
# email for you and vote on it.
|
data/spec/addon/drb_spec.rb
CHANGED
|
@@ -12,16 +12,16 @@
|
|
|
12
12
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
|
14
14
|
# the License.
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
|
|
16
|
+
|
|
17
17
|
require File.expand_path('../spec_helpers', File.dirname(__FILE__))
|
|
18
18
|
require 'stringio'
|
|
19
19
|
Sandbox.require_optional_extension 'buildr/drb'
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
describe Buildr::DRbApplication do
|
|
22
|
+
describe Buildr::DRbApplication do
|
|
23
23
|
|
|
24
|
-
module DRbHelper
|
|
24
|
+
module DRbHelper
|
|
25
25
|
attr_accessor :app, :drb, :cfg
|
|
26
26
|
|
|
27
27
|
def use_stdio(stdin = nil, stdout = nil, stderr = nil)
|
|
@@ -30,7 +30,7 @@ describe Buildr::DRbApplication do
|
|
|
30
30
|
stderr ||= StringIO.new
|
|
31
31
|
cfg.update :in => stdin, :out => stdout, :err => stderr
|
|
32
32
|
end
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
def remote_run(*argv)
|
|
35
35
|
cfg.update :argv => argv
|
|
36
36
|
drb.remote_run(cfg)
|
|
@@ -48,7 +48,7 @@ describe Buildr::DRbApplication do
|
|
|
48
48
|
$stdout.puts "#{t.name} from #{t.source}"
|
|
49
49
|
end
|
|
50
50
|
|
|
51
|
-
task('hello') do
|
|
51
|
+
task('hello') do
|
|
52
52
|
$stdout.puts 'hi'
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -81,7 +81,7 @@ describe Buildr::DRbApplication do
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
include DRbHelper
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
before(:each) do
|
|
86
86
|
@in, @out, @err = $stdin, $stdout, $stderr
|
|
87
87
|
@cfg = {
|
|
@@ -96,7 +96,7 @@ describe Buildr::DRbApplication do
|
|
|
96
96
|
after(:each) do
|
|
97
97
|
$stdin, $stdout, $stderr = @in, @out, @err
|
|
98
98
|
end
|
|
99
|
-
|
|
99
|
+
|
|
100
100
|
describe '.run' do
|
|
101
101
|
it 'starts server if no server is running' do
|
|
102
102
|
drb.should_receive(:connect).and_raise DRb::DRbConnError
|
|
@@ -114,11 +114,11 @@ describe Buildr::DRbApplication do
|
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
describe '.remote_run' do
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
describe 'stdout' do
|
|
119
|
-
it 'is redirected to client' do
|
|
119
|
+
it 'is redirected to client' do
|
|
120
120
|
use_stdio
|
|
121
|
-
Buildr.application.should_receive(:remote_run) do
|
|
121
|
+
Buildr.application.should_receive(:remote_run) do
|
|
122
122
|
$stdout.puts "HELLO"
|
|
123
123
|
end
|
|
124
124
|
remote_run
|
|
@@ -126,10 +126,10 @@ describe Buildr::DRbApplication do
|
|
|
126
126
|
end
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
describe 'stderr' do
|
|
129
|
+
describe 'stderr' do
|
|
130
130
|
it 'is redirected to client' do
|
|
131
131
|
use_stdio
|
|
132
|
-
Buildr.application.should_receive(:remote_run) do
|
|
132
|
+
Buildr.application.should_receive(:remote_run) do
|
|
133
133
|
$stderr.puts "HELLO"
|
|
134
134
|
end
|
|
135
135
|
remote_run
|
|
@@ -142,7 +142,7 @@ describe Buildr::DRbApplication do
|
|
|
142
142
|
use_stdio
|
|
143
143
|
cfg[:in].should_receive(:gets).and_return("HELLO\n")
|
|
144
144
|
result = nil
|
|
145
|
-
Buildr.application.should_receive(:remote_run) do
|
|
145
|
+
Buildr.application.should_receive(:remote_run) do
|
|
146
146
|
result = $stdin.gets
|
|
147
147
|
end
|
|
148
148
|
remote_run
|
|
@@ -152,7 +152,7 @@ describe Buildr::DRbApplication do
|
|
|
152
152
|
|
|
153
153
|
describe 'server ARGV' do
|
|
154
154
|
it 'is replaced with client argv' do
|
|
155
|
-
Buildr.application.should_receive(:remote_run) do
|
|
155
|
+
Buildr.application.should_receive(:remote_run) do
|
|
156
156
|
ARGV.should eql(['hello'])
|
|
157
157
|
end
|
|
158
158
|
remote_run 'hello'
|
|
@@ -164,7 +164,7 @@ describe Buildr::DRbApplication do
|
|
|
164
164
|
app.instance_eval { @rakefile = nil }
|
|
165
165
|
write_buildfile
|
|
166
166
|
end
|
|
167
|
-
|
|
167
|
+
|
|
168
168
|
it 'should load the buildfile' do
|
|
169
169
|
app.should_receive(:top_level)
|
|
170
170
|
lambda { remote_run }.should run_task('foo')
|
|
@@ -172,14 +172,14 @@ describe Buildr::DRbApplication do
|
|
|
172
172
|
end
|
|
173
173
|
|
|
174
174
|
describe 'with unmodified buildfile' do
|
|
175
|
-
|
|
176
|
-
before(:each) do
|
|
175
|
+
|
|
176
|
+
before(:each) do
|
|
177
177
|
write_buildfile
|
|
178
178
|
app.options.rakelib = []
|
|
179
179
|
app.send :load_buildfile
|
|
180
180
|
drb.save_snapshot(app)
|
|
181
181
|
end
|
|
182
|
-
|
|
182
|
+
|
|
183
183
|
it 'should not reload the buildfile' do
|
|
184
184
|
app.should_not_receive(:reload_buildfile)
|
|
185
185
|
app.should_receive(:top_level)
|
|
@@ -235,12 +235,12 @@ describe Buildr::DRbApplication do
|
|
|
235
235
|
remote_run 'foo:empty'
|
|
236
236
|
app.instance_eval { @rules.size }.should eql(orig)
|
|
237
237
|
end
|
|
238
|
-
|
|
238
|
+
|
|
239
239
|
end
|
|
240
240
|
|
|
241
241
|
describe 'with modified buildfile' do
|
|
242
|
-
|
|
243
|
-
before(:each) do
|
|
242
|
+
|
|
243
|
+
before(:each) do
|
|
244
244
|
write_buildfile
|
|
245
245
|
app.options.rakelib = []
|
|
246
246
|
app.send :load_buildfile
|
|
@@ -251,12 +251,12 @@ describe Buildr::DRbApplication do
|
|
|
251
251
|
$stdout.puts "#{t.name} from #{t.source}"
|
|
252
252
|
end
|
|
253
253
|
define('foo') do
|
|
254
|
-
task('hello') do
|
|
254
|
+
task('hello') do
|
|
255
255
|
$stdout.puts 'bye'
|
|
256
256
|
end
|
|
257
257
|
task('empty')
|
|
258
258
|
define('bar') do
|
|
259
|
-
|
|
259
|
+
|
|
260
260
|
end
|
|
261
261
|
end
|
|
262
262
|
}
|
|
@@ -277,7 +277,7 @@ describe Buildr::DRbApplication do
|
|
|
277
277
|
remote_run
|
|
278
278
|
app.lookup('foo:delete_me').should be_nil
|
|
279
279
|
end
|
|
280
|
-
|
|
280
|
+
|
|
281
281
|
it 'should redefine tasks actions' do
|
|
282
282
|
actions = app.lookup('foo:empty').instance_eval { @actions }
|
|
283
283
|
actions.should be_empty # no action
|