buildr 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,7 @@
1
1
  module Buildr
2
+
3
+ # Addes the <code>cobertura:html</code> and <code>cobertura:xml</code> tasks.
4
+ # Require explicitly using <code>require "buildr/cobertura"</code>.
2
5
  module Cobertura
3
6
 
4
7
  class << self
@@ -9,17 +12,12 @@ module Buildr
9
12
  @requires ||= Buildr.artifacts(REQUIRES).each(&:invoke).map(&:to_s)
10
13
  end
11
14
 
12
- def ant_project()
13
- @ant_project ||= Buildr::Ant.executable("cobertura") { |ant|
14
- ant.taskdef(:classpath=>requires.join(File::PATH_SEPARATOR), :resource=>"tasks.properties" ) }
15
- end
16
-
17
15
  def report_to(file = nil)
18
- File.expand_path(File.join(*["cobertura", file.to_s].compact))
16
+ File.expand_path(File.join(*["reports/cobertura", file.to_s].compact))
19
17
  end
20
18
 
21
19
  def data_file()
22
- File.expand_path("cobertura.ser")
20
+ File.expand_path("reports/cobertura.ser")
23
21
  end
24
22
 
25
23
  end
@@ -32,39 +30,48 @@ module Buildr
32
30
  # Instrumented bytecode goes in a different directory. This task creates before running the test
33
31
  # cases and monitors for changes in the generate bytecode.
34
32
  instrumented = project.file(project.path_to(:target, "instrumented")=>project.compile.target) do |task|
35
- ant_project.send "cobertura-instrument", :todir=>task.to_s, :datafile=>data_file do
36
- fileset(:dir=>project.compile.target.to_s) { include :name=>"**/*.class" }
33
+ Buildr.ant "cobertura" do |ant|
34
+ ant.taskdef :classpath=>requires.join(File::PATH_SEPARATOR), :resource=>"tasks.properties"
35
+ ant.send "cobertura-instrument", :todir=>task.to_s, :datafile=>data_file do
36
+ ant.fileset(:dir=>project.compile.target.to_s) { ant.include :name=>"**/*.class" }
37
+ end
37
38
  end
38
39
  touch task.to_s, :verbose=>false
39
40
  end
40
41
  # We now have two target directories with bytecode. It would make sense to remove compile.target
41
42
  # and add instrumented instead, but apparently Cobertura only creates some of the classes, so
42
43
  # we need both directories and instrumented must come first.
43
- project.test.junit.classpath.unshift file(instrumented)
44
- project.test.junit.with requires
44
+ project.test.classpath.unshift file(instrumented)
45
+ project.test.with requires
45
46
  project.clean { rm_rf instrumented.to_s, :verbose=>false }
46
47
  end
47
48
  end
48
49
  end
49
50
 
50
51
  desc "Run the test cases and produce code coverage reports in #{report_to(:html)}"
51
- task "html"=>["instrument", "build"] do
52
+ task "html"=>["instrument", "test:all"] do
52
53
  puts "Creating test coverage reports in #{report_to(:html)}"
53
54
  projects = Buildr.projects
54
- ant_project.send "cobertura-report", :destdir=>report_to(:html), :format=>"html", :datafile=>data_file do
55
- projects.map(&:compile).map(&:sources).flatten.each do |src|
56
- fileset(:dir=>src.to_s) { include :name=>"**/*.java" } if File.exist?(src.to_s)
55
+ Buildr.ant "cobertura" do |ant|
56
+ ant.taskdef :classpath=>requires.join(File::PATH_SEPARATOR), :resource=>"tasks.properties"
57
+ ant.send "cobertura-report", :destdir=>report_to(:html), :format=>"html", :datafile=>data_file do
58
+ ant.projects.map(&:compile).map(&:sources).flatten.each do |src|
59
+ ant.fileset(:dir=>src.to_s) { ant.include :name=>"**/*.java" } if File.exist?(src.to_s)
60
+ end
57
61
  end
58
62
  end
59
63
  end
60
64
 
61
65
  desc "Run the test cases and produce code coverage reports in #{report_to(:xml)}"
62
- task "xml"=>["instrument", "build"] do
66
+ task "xml"=>["instrument", "test:all"] do
63
67
  puts "Creating test coverage reports in #{report_to(:xml)}"
64
68
  projects = Buildr.projects
65
- ant_project.send "cobertura-report", :destdir=>report_to(:xml), :format=>"xml", :datafile=>data_file do
66
- projects.map(&:compile).map(&:sources).flatten.each do |src|
67
- fileset :dir=>src.to_s if File.exist?(src.to_s)
69
+ Buildr.ant "cobertura" do |ant|
70
+ ant.taskdef :classpath=>requires.join(File::PATH_SEPARATOR), :resource=>"tasks.properties"
71
+ ant.send "cobertura-report", :destdir=>report_to(:xml), :format=>"xml", :datafile=>data_file do
72
+ ant.projects.map(&:compile).map(&:sources).flatten.each do |src|
73
+ ant.fileset :dir=>src.to_s if File.exist?(src.to_s)
74
+ end
68
75
  end
69
76
  end
70
77
  end
@@ -2,6 +2,8 @@ require "java/java"
2
2
  require "java/ant"
3
3
 
4
4
  module Buildr
5
+
6
+ # Provides Hibernate Doclet and schema export tasks. Require explicitly using <code>require "buildr/hibernate"</code>.
5
7
  module Hibernate
6
8
 
7
9
  REQUIRES = Buildr.struct(
@@ -29,12 +31,12 @@ module Buildr
29
31
  # doclet :sources=>compile.sources, :target=>compile.target, :excludedtags=>"@version,@author,@todo"
30
32
  def doclet(options)
31
33
  options[:sources].each { |src| file(src).invoke }
32
- ant("hibernatedoclet") do |doclet|
33
- doclet.taskdef :name=>"hibernatedoclet", :classname=>"xdoclet.modules.hibernate.HibernateDocletTask", :classpath=>requires
34
- doclet.hibernatedoclet :destdir=>options[:target].to_s, :excludedtags=>options[:excludedtags], :force=>"true" do
35
- hibernate :version=>"3.0"
34
+ ant "hibernatedoclet" do |ant|
35
+ ant.taskdef :name=>"hibernatedoclet", :classname=>"xdoclet.modules.hibernate.HibernateDocletTask", :classpath=>requires
36
+ ant.hibernatedoclet :destdir=>options[:target].to_s, :excludedtags=>options[:excludedtags], :force=>"true" do
37
+ ant.hibernate :version=>"3.0"
36
38
  options[:sources].map(&:to_s).each do |source|
37
- fileset :dir=>source.to_s, :includes=>"**/*.java"
39
+ ant.fileset :dir=>source.to_s, :includes=>"**/*.java"
38
40
  end
39
41
  end
40
42
  end
@@ -49,7 +51,7 @@ module Buildr
49
51
  # fileset :dir=>source.to_s, :includes=>"**/*.hbm.xml"
50
52
  # end
51
53
  def schemaexport(options = nil, &block)
52
- ant("schemaexport") do |ant|
54
+ ant "schemaexport" do |ant|
53
55
  ant.taskdef :name=>"schemaexport", :classname=>"org.hibernate.tool.hbm2ddl.SchemaExportTask", :classpath=>requires
54
56
  ant.schemaexport options, &block if options
55
57
  end
@@ -1,6 +1,7 @@
1
1
  require "java/java"
2
2
 
3
3
  module Buildr
4
+ # Provides JavaCC compile tasks. Require explicitly using <code>require "buildr/javacc"</code>.
4
5
  module JavaCC
5
6
 
6
7
  REQUIRES = [ "net.java.dev.javacc:javacc:jar:4.0", "net.java.dev.javacc:javacc:jar:4.0" ]
@@ -1,13 +1,40 @@
1
1
  module Buildr
2
+
3
+ # Addes the <code>jdepend:swing</code>, <code>jdepend:text</code> and <code>jdepend:xml</code> tasks.
4
+ # Require explicitly using <code>require "buildr/jdepend"</code>.
2
5
  module Jdepend
3
6
 
4
7
  REQUIRES = ["jdepend:jdepend:jar:2.9.1"]
5
8
 
6
- desc "Runs JDepend on all your projects"
7
- task "jdepend" do
8
- paths = Project.projects.map(&:compile).each(&:invoke).map(&:target).map(&:to_s).select { |path| File.exist?(path) }
9
- Buildr.java "jdepend.swingui.JDepend", paths, :classpath=>REQUIRES
9
+ class << self
10
+
11
+ def requires()
12
+ @requires ||= Buildr.artifacts(REQUIRES).each(&:invoke).map(&:to_s)
13
+ end
14
+
15
+ def paths()
16
+ Project.projects.map(&:compile).each(&:invoke).map(&:target).map(&:to_s).select { |path| File.exist?(path) }
17
+ end
18
+
10
19
  end
11
20
 
21
+ namespace "jdepend" do
22
+
23
+ desc "Runs JDepend on all your projects (Swing UI)"
24
+ task "swing" do
25
+ Buildr.java "jdepend.swingui.JDepend", paths, :classpath=>requires, :name=>"JDepend"
26
+ end
27
+
28
+ desc "Runs JDepend on all your projects (Text UI)"
29
+ task "text" do
30
+ Buildr.java "jdepend.textui.JDepend", paths, :classpath=>requires, :name=>"JDepend"
31
+ end
32
+
33
+ desc "Runs JDepend on all your projects (XML output to jdepend.xml)"
34
+ task "xml" do
35
+ Buildr.java "jdepend.xmlui.JDepend", "-file", "jdepend.xml", paths, :classpath=>requires, :name=>"JDepend"
36
+ puts "Created jdepend.xml"
37
+ end
38
+ end
12
39
  end
13
40
  end
@@ -4,6 +4,7 @@ require "core/project"
4
4
  require "java/artifact"
5
5
  require "java/java"
6
6
  require "thread"
7
+ #require "struct"
7
8
 
8
9
  module Buildr
9
10
 
@@ -16,9 +17,9 @@ module Buildr
16
17
  #
17
18
  # If you want to keep Jetty running across builds, and look at error messages, you can
18
19
  # start Jetty in a separate console with:
19
- # rake jetty:start
20
+ # buildr jetty:start
20
21
  # To stop this instance of Jetty, simply kill the process (Ctrl-C) or run:
21
- # rake jetty:stop
22
+ # buildr jetty:stop
22
23
  #
23
24
  # If you start Jetty separately from the build, the #use task will connect to that
24
25
  # existing server. Since you are using Jetty across several builds, you will want to
@@ -26,6 +27,17 @@ module Buildr
26
27
  # which are called when Jetty is first used in the build, and when the build ends.
27
28
  class Jetty
28
29
 
30
+ # Which version of Jetty we're using by default (change with options.jetty.version).
31
+ VERSION = "6.1.3"
32
+
33
+ # Libraries used by Jetty.
34
+ REQUIRES = [ "org.mortbay.jetty:jetty:jar:#{VERSION}", "org.mortbay.jetty:jetty-util:jar:#{VERSION}",
35
+ "org.mortbay.jetty:servlet-api-2.5:jar:#{VERSION}", "log4j:log4j:jar:1.2.13", "commons-logging:commons-logging:jar:1.1" ]
36
+ Java.rjb.onload { |rjb| rjb.classpath << REQUIRES << File.join(__DIR__, "jetty") }
37
+
38
+ # Default URL for Jetty (change with options.jetty.url).
39
+ URL = "http://localhost:8080"
40
+
29
41
  class << self
30
42
 
31
43
  # :call-seq:
@@ -33,24 +45,14 @@ module Buildr
33
45
  #
34
46
  # Returns an instance of Jetty.
35
47
  def instance()
36
- @instance ||= Jetty.new
48
+ @instance ||= Jetty.new("jetty", URL)
37
49
  end
38
50
 
39
51
  end
40
52
 
41
- # Artifacts required to run Jetty.
42
- REQUIRES = [ "org.mortbay.jetty:jetty:jar:6.1.1", "org.mortbay.jetty:jetty-util:jar:6.1.1",
43
- "org.mortbay.jetty:servlet-api-2.5:jar:6.1.1", "log4j:log4j:jar:1.2.13",
44
- "commons-logging:commons-logging:jar:1.1" ]
45
-
46
- Java.rjb.classpath << REQUIRES << File.join(__DIR__, "jetty")
47
-
48
- # Default URL for Jetty.
49
- URL = "http://localhost:8080"
50
-
51
- def initialize() #:nodoc:
52
- @url = URL
53
- namespace "jetty" do
53
+ def initialize(name, url) #:nodoc:
54
+ @url = url
55
+ namespace name do
54
56
  @setup = task("setup")
55
57
  @teardown = task("teardown")
56
58
  @use = task("use") { fire }
@@ -214,17 +216,13 @@ module Buildr
214
216
  task("stop") { Jetty.instance.stop }
215
217
  end
216
218
 
217
- class Project
218
-
219
- # :call-seq:
220
- # jetty() => Jetty
221
- #
222
- # Returns a Jetty object. You can use this to discover the Jetty#use task,
223
- # configure the Jetty#setup and Jetty#teardown tasks, deploy and undeploy to Jetty.
224
- def jetty()
225
- @jetty ||= Jetty.instance
226
- end
227
-
219
+ # :call-seq:
220
+ # jetty() => Jetty
221
+ #
222
+ # Returns a Jetty object. You can use this to discover the Jetty#use task,
223
+ # configure the Jetty#setup and Jetty#teardown tasks, deploy and undeploy to Jetty.
224
+ def jetty()
225
+ @jetty ||= Jetty.instance
228
226
  end
229
-
227
+
230
228
  end
@@ -1,6 +1,8 @@
1
1
  require "java/java"
2
2
 
3
3
  module Buildr
4
+
5
+ # Provides OpenJPA bytecode enhancement and Mapping tool task. Require explicitly using <code>require "buildr/openjpa"</code>.
4
6
  module OpenJPA
5
7
 
6
8
  VERSION = "0.9.7-incubating"
@@ -24,12 +26,12 @@ module Buildr
24
26
  artifacts = Buildr.artifacts(options[:classpath]).each { |a| a.invoke }.map(&:to_s) + [options[:output].to_s]
25
27
  properties = file(options[:properties]).tap { |task| task.invoke }.to_s
26
28
 
27
- Ant.executable("openjpa") do |ant|
29
+ Buildr.ant "openjpa" do |ant|
28
30
  ant.taskdef :name=>"enhancer", :classname=>"org.apache.openjpa.ant.PCEnhancerTask",
29
31
  :classpath=>requires.join(File::PATH_SEPARATOR)
30
32
  ant.enhancer :directory=>options[:output].to_s do
31
- config :propertiesFile=>properties
32
- classpath :path=>artifacts.join(File::PATH_SEPARATOR)
33
+ ant.config :propertiesFile=>properties
34
+ ant.classpath :path=>artifacts.join(File::PATH_SEPARATOR)
33
35
  end
34
36
  end
35
37
  end
@@ -39,12 +41,12 @@ module Buildr
39
41
  artifacts = Buildr.artifacts(options[:classpath]).each{ |a| a.invoke }.map(&:to_s)
40
42
  properties = file(options[:properties].to_s).tap { |task| task.invoke }.to_s
41
43
 
42
- Ant.executable("openjpa") do |ant|
44
+ Buildr.ant("openjpa") do |ant|
43
45
  ant.taskdef :name=>"mapping", :classname=>"org.apache.openjpa.jdbc.ant.MappingToolTask",
44
46
  :classpath=>requires.join(File::PATH_SEPARATOR)
45
47
  ant.mapping :schemaAction=>options[:action], :sqlFile=>options[:sql].to_s, :ignoreErrors=>"true" do
46
- config :propertiesFile=>properties
47
- classpath :path=>artifacts.join(File::PATH_SEPARATOR)
48
+ ant.config :propertiesFile=>properties
49
+ ant.classpath :path=>artifacts.join(File::PATH_SEPARATOR)
48
50
  end
49
51
  end
50
52
  end
@@ -2,6 +2,8 @@ require "java/java"
2
2
  require "java/ant"
3
3
 
4
4
  module Buildr
5
+
6
+ # Provides XMLBeans schema compiler. Require explicitly using <code>require "buildr/xmlbeans"</code>.
5
7
  module XMLBeans
6
8
 
7
9
  REQUIRES = [ "xmlbeans:xbean:jar:2.2.0", "stax:stax-api:jar:1.0" ]
@@ -13,12 +15,12 @@ module Buildr
13
15
  options[:verbose] ||= Rake.application.options.trace || false
14
16
  rake_check_options options, :verbose, :noop, :javasource, :jar, :compile, :output, :xsb
15
17
  puts "Running XMLBeans schema compiler" if verbose
16
- Ant.executable("xmlbeans") do |ant|
18
+ Buildr.ant "xmlbeans" do |ant|
17
19
  ant.taskdef :name=>"xmlbeans", :classname=>"org.apache.xmlbeans.impl.tool.XMLBean",
18
20
  :classpath=>requires.join(File::PATH_SEPARATOR)
19
21
  ant.xmlbeans :srconly=>"true", :srcgendir=>options[:output].to_s, :classgendir=>options[:output].to_s,
20
22
  :javasource=>options[:javasource] do
21
- args.flatten.each { |file| fileset File.directory?(file) ? { :dir=>file } : { :file=>file } }
23
+ args.flatten.each { |file| ant.fileset File.directory?(file) ? { :dir=>file } : { :file=>file } }
22
24
  end
23
25
  end
24
26
  # Touch paths to let other tasks know there's an update.
@@ -34,9 +36,12 @@ module Buildr
34
36
  end
35
37
 
36
38
  def compile_xml_beans(*args)
39
+ # Run whenever XSD file changes, but typically we're given an directory of XSD files, or even file patterns
40
+ # (the last FileList is there to deal with things like *.xsdconfig).
41
+ files = args.flatten.map { |file| File.directory?(file) ? FileList["#{file}/*.xsd"] : FileList[file] }.flatten
37
42
  # Generate sources and add them to the compile task.
38
- generated = file(path_to(:target, "generated/xmlbeans")=>FileList[args.flatten]) do |task|
39
- XMLBeans.compile task.prerequisites, :output=>task.name,
43
+ generated = file(path_to(:target, "generated/xmlbeans")=>files) do |task|
44
+ XMLBeans.compile args.flatten, :output=>task.name,
40
45
  :javasource=>compile.options.source, :xsb=>compile.target
41
46
  end
42
47
  compile.from(generated).with(JAVAX.stream, XMLBEANS)
@@ -1,4 +1,6 @@
1
1
  require "core/project"
2
+ require "core/common"
3
+ require "core/checks"
2
4
 
3
5
  module Buildr
4
6
 
@@ -12,47 +14,37 @@ module Buildr
12
14
  Project.local_task("install"=>"package") { |name| "Installing packages from #{name}" }
13
15
  desc "Remove previously installed packages"
14
16
  Project.local_task("uninstall") { |name| "Uninstalling packages from #{name}" }
15
- desc "Deploy packages created by the project"
16
- Project.local_task("deploy"=>"package") { |name| "Deploying packages from #{name}" }
17
+ desc "Upload packages created by the project"
18
+ Project.local_task("upload"=>"package") { |name| "Deploying packages from #{name}" }
17
19
 
18
- [ :build, :clean, :package, :install, :uninstall, :deploy ].each do |name|
20
+ [ :build, :clean, :package, :install, :uninstall, :upload ].each do |name|
19
21
  Project.on_define { |project| project.recursive_task name }
20
22
  end
21
23
 
24
+ task("deploy"=>"upload") do
25
+ warn_deprecated "Please use the 'upload' task instead of 'deploy'."
26
+ end
27
+
22
28
 
23
- # Collection of options for controlling Buildr. For example for running builds without running
24
- # test cases, or running builds in parallel.
25
29
  class Options
26
30
 
27
31
  # Runs the build in parallel when true (defaults to false). You can force a parallel build by
28
32
  # setting this option directly, or by running the parallel task ahead of the build task.
29
33
  #
30
34
  # This option only affects recurvise tasks. For example:
31
- # rake parallel package
35
+ # buildr parallel package
32
36
  # will run all package tasks (from the sub-projects) in parallel, but each sub-project's package
33
37
  # task runs its child tasks (prepare, compile, resources, etc) in sequence.
34
38
  attr_accessor :parallel
35
39
 
36
40
  end
37
41
 
38
- class << self
39
-
40
- # :call-seq:
41
- # options() => Options
42
- #
43
- # Returns the Buildr options. See Options.
44
- def options()
45
- @options ||= Options.new
46
- end
47
-
48
- end
49
-
50
42
  task("parallel") { Buildr.options.parallel = true }
51
43
 
52
44
 
53
45
  class Project
54
46
 
55
- # The target directory. By default, it's the target directory inside the project. Various tasks
47
+ # The target directory. By default, it's the "target" directory inside the project. Various tasks
56
48
  # use it to determine where to place files, e.g. when compiling or packaging. The clean task
57
49
  # nukes it.
58
50
  def target()
@@ -63,6 +55,17 @@ module Buildr
63
55
  @target = _(dir)
64
56
  end
65
57
 
58
+ # The reports directory. By default, it's the "reports" directory inside the project. Various tasks
59
+ # use it to determine where to place reports, e.g. when running test cases or code analysis.
60
+ # The clean task nukes it.
61
+ def reports()
62
+ @reports ||= _("reports")
63
+ end
64
+
65
+ def reports=(dir)
66
+ @reports = _(dir)
67
+ end
68
+
66
69
  # :call-seq:
67
70
  # build(*prereqs) => task
68
71
  # build { |task| .. } => task
@@ -73,8 +76,8 @@ module Buildr
73
76
  end
74
77
 
75
78
  # :call-seq:
76
- # build(*prereqs) => task
77
- # build { |task| .. } => task
79
+ # clean(*prereqs) => task
80
+ # clean { |task| .. } => task
78
81
  #
79
82
  # Returns the project's clean task. With arguments or block, also enhances that task.
80
83
  def clean(*prereqs, &block)
@@ -83,8 +86,14 @@ module Buildr
83
86
 
84
87
  end
85
88
 
89
+
86
90
  Project.on_define do |project|
87
- project.clean { verbose(false) { rm_rf project.path_to(:target) } }
91
+ project.clean do
92
+ verbose(true) do
93
+ rm_rf project.path_to(:target)
94
+ rm_rf project.path_to(:reports)
95
+ end
96
+ end
88
97
  end
89
98
 
90
99
  desc "The default task it build"
@@ -104,7 +113,7 @@ module Buildr
104
113
  # Make a release.
105
114
  def make()
106
115
  check
107
- version = with_next_version { |filename, version| sh "rake clean deploy DEBUG=no --rakefile #{filename}" }
116
+ version = with_next_version { |filename, version| sh "buildr clean upload DEBUG=no --buildfile #{filename}" }
108
117
  tag version
109
118
  commit version + "-SNAPSHOT"
110
119
  end
@@ -129,9 +138,9 @@ module Buildr
129
138
  # Yields to block with upgraded version number, before committing to use it. Returns the *new*
130
139
  # current version number.
131
140
  #
132
- # We need a Rakefile with upgraded version numbers to run the build, but we don't want the
133
- # Rakefile modified unless the build succeeds. So this method updates the version numbers in
134
- # a separate (Rakefile.next) file, yields to the block with that filename, and if successful
141
+ # We need a Buildfile with upgraded version numbers to run the build, but we don't want the
142
+ # Buildfile modified unless the build succeeds. So this method updates the version numbers in
143
+ # a separate (Buildfile.next) file, yields to the block with that filename, and if successful
135
144
  # copies the new file over the existing one.
136
145
  #
137
146
  # Version numbers are updated as follows. The next release version becomes the current one,
@@ -160,19 +169,19 @@ module Buildr
160
169
  end
161
170
 
162
171
  # :call-seq:
163
- # change_version() { |this, next| ... } => rakefile
172
+ # change_version() { |this, next| ... } => buildfile
164
173
  #
165
- # Change version numbers in the current Rakefile, but without writing a new file (yet).
166
- # Returns the contents of the Rakefile with the modified version numbers.
174
+ # Change version numbers in the current Buildfile, but without writing a new file (yet).
175
+ # Returns the contents of the Buildfile with the modified version numbers.
167
176
  #
168
177
  # This method yields to the block with the current (this) and next version numbers and expects
169
178
  # an array with the new this and next version numbers.
170
179
  def change_version()
171
180
  rakefile = File.read(Rake.application.rakefile)
172
181
  this_version = rakefile.scan(THIS_VERSION_PATTERN)[0][1] or
173
- fail "Looking for THIS_VERSION = \"...\" in your Rakefile, none found"
182
+ fail "Looking for THIS_VERSION = \"...\" in your Buildfile, none found"
174
183
  next_version = rakefile.scan(NEXT_VERSION_PATTERN)[0][1] or
175
- fail "Looking for NEXT_VERSION = \"...\" in your Rakefile, none found"
184
+ fail "Looking for NEXT_VERSION = \"...\" in your Buildfile, none found"
176
185
  this_version, next_version = yield(this_version, next_version)
177
186
  if verbose
178
187
  puts "Upgrading version numbers:"
@@ -222,23 +231,4 @@ module Buildr
222
231
  Release.make
223
232
  end
224
233
 
225
-
226
- namespace "buildr" do
227
-
228
- desc "Freezes the Rakefile so it always uses Buildr version #{Buildr::VERSION}"
229
- task "freeze" do
230
- gem = %Q{gem "buildr", "#{Buildr::VERSION}"}
231
- rakefile = read(Rake.application.rakefile)
232
- puts "Freezing the Rakefile so it always uses Buildr version #{Buildr::VERSION}"
233
- write Rake.application.rakefile, rakefile =~ /gem\s*(["'])buildr\1/ ?
234
- rakefile.sub(/gem\s*(["'])buildr\1\s*,\s*(["']).*\2/, gem) : gem + "\n" + rakefile
235
- end
236
-
237
- desc "Unfreezes the Rakefile to use the latest version of Buildr"
238
- task "unfreeze" do
239
- puts "Unfreezing the Rakefile to use the latest version of Buildr from your Gems repository"
240
- write Rake.application.rakefile, read(Rake.application.rakefile).sub(/^\s*gem\s*(["'])buildr\1.*\n/, "")
241
- end
242
-
243
- end
244
234
  end