summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanielsdeleo <dan@getchef.com>2015-05-13 17:05:40 -0700
committerdanielsdeleo <dan@getchef.com>2015-05-20 15:13:56 -0700
commit1428270b0f2d0f2ae5d62ecb2aa512ffa7ac773e (patch)
tree9d98fa3d2a9f1b7ffcd49cd1465b8aa3269e6430
parent12a608c962d2eaa6c8b410794530fb104167162c (diff)
downloadchef-1428270b0f2d0f2ae5d62ecb2aa512ffa7ac773e.tar.gz
Update rake tasks for componentization
-rw-r--r--Rakefile88
-rw-r--r--VERSION1
-rw-r--r--chef-config/Rakefile55
-rw-r--r--chef-config/chef-config.gemspec2
-rw-r--r--chef-config/lib/chef-config/version.rb23
-rw-r--r--chef.gemspec2
-rw-r--r--lib/chef/version.rb10
-rw-r--r--tasks/rspec.rb12
8 files changed, 181 insertions, 12 deletions
diff --git a/Rakefile b/Rakefile
index d07ee0c247..d01a139c30 100644
--- a/Rakefile
+++ b/Rakefile
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require File.dirname(__FILE__) + '/lib/chef/version'
+VERSION = IO.read(File.expand_path("../VERSION", __FILE__)).strip
require 'rubygems'
require 'rubygems/package_task'
@@ -27,22 +27,99 @@ require_relative 'tasks/external_tests'
GEM_NAME = "chef"
+desc "build Gems of Chef's components"
+task :package_components do
+ Dir.chdir("chef-config") do
+ sh "rake package"
+ end
+end
+
+task :package => :package_components
+
+desc "build and install chef's components"
+task :install_components => :package_components do
+ Dir.chdir("chef-config") do
+ sh "rake install"
+ end
+end
+
+task :install => :install_components
+
+desc "clean up builds of Chef's components"
+task :clobber_component_packages do
+ Dir.chdir("chef-config") do
+ sh "rake clobber_package"
+ end
+end
+
+task :clobber_package => :clobber_component_packages
+
+desc "Update the version number for Chef's components"
+task :update_components_versions do
+ Dir.chdir("chef-config") do
+ sh "rake version"
+ end
+end
+
+desc "Regenerate lib/chef/version.rb from VERSION file"
+task :version => :update_components_versions do
+ contents = <<-VERSION_RB
+# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# NOTE: This file is generated by running `rake version` in the top level of
+# this repo. Do not edit this manually. Edit the VERSION file and run the rake
+# task instead.
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+class Chef
+ CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__)))
+ VERSION = '#{VERSION}'
+end
+
+#
+# NOTE: the Chef::Version class is defined in version_class.rb
+#
+# NOTE: DO NOT Use the Chef::Version class on Chef::VERSIONs. The
+# Chef::Version class is for _cookbooks_ only, and cannot handle
+# pre-release chef-client versions like "10.14.0.rc.2". Please
+# use Rubygem's Gem::Version class instead.
+#
+VERSION_RB
+ version_rb_path = File.expand_path("../lib/chef/version.rb", __FILE__)
+ IO.write(version_rb_path, contents)
+end
+
Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path|
gemspec = eval(IO.read(gemspec_path))
Gem::PackageTask.new(gemspec).define
end
-task :install => :package do
- sh %{gem install pkg/#{GEM_NAME}-#{Chef::VERSION}.gem --no-rdoc --no-ri}
+desc "Build and install a chef gem"
+task :install => [:package] do
+ sh %{gem install pkg/#{GEM_NAME}-#{VERSION}.gem --no-rdoc --no-ri}
end
task :uninstall do
- sh %{gem uninstall #{GEM_NAME} -x -v #{Chef::VERSION} }
+ sh %{gem uninstall #{GEM_NAME} -x -v #{VERSION} }
end
desc "Build it, tag it and ship it"
task :ship => [:clobber_package, :gem] do
- sh("git tag #{Chef::VERSION}")
+ sh("git tag #{VERSION}")
sh("git push opscode --tags")
Dir[File.expand_path("../pkg/*.gem", __FILE__)].reverse.each do |built_gem|
sh("gem push #{built_gem}")
@@ -80,3 +157,4 @@ begin
rescue LoadError
puts "yard is not available. (sudo) gem install yard to generate yard documentation."
end
+
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000000..1e37dfcda9
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+12.4.0.dev.0
diff --git a/chef-config/Rakefile b/chef-config/Rakefile
index 809eb5616a..6eb195f672 100644
--- a/chef-config/Rakefile
+++ b/chef-config/Rakefile
@@ -1,2 +1,55 @@
-require "bundler/gem_tasks"
+require 'rspec/core/rake_task'
+require 'rubygems/package_task'
+
+VERSION = IO.read(File.expand_path("../../VERSION", __FILE__)).strip
+
+Dir[File.expand_path("../*gemspec", __FILE__)].reverse.each do |gemspec_path|
+ gemspec = eval(IO.read(gemspec_path))
+ Gem::PackageTask.new(gemspec).define
+end
+
+desc "Build and install a chef-config gem"
+task :install => [:package] do
+ sh %{gem install pkg/chef-config-#{ChefConfig::VERSION}.gem --no-rdoc --no-ri}
+end
+
+task :default => :spec
+
+desc "Run standard specs"
+RSpec::Core::RakeTask.new(:spec) do |t|
+ t.pattern = FileList['spec/**/*_spec.rb']
+end
+
+desc "Regenerate lib/chef/version.rb from VERSION file"
+task :version do
+ contents = <<-VERSION_RB
+# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# NOTE: This file is generated by running `rake version` in the top level of
+# this repo. Do not edit this manually. Edit the VERSION file and run the rake
+# task instead.
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+module ChefConfig
+ VERSION = '#{VERSION}'
+end
+
+VERSION_RB
+ version_rb_path = File.expand_path("../lib/chef-config/version.rb", __FILE__)
+ IO.write(version_rb_path, contents)
+end
diff --git a/chef-config/chef-config.gemspec b/chef-config/chef-config.gemspec
index 74789a7328..f0a569f3c1 100644
--- a/chef-config/chef-config.gemspec
+++ b/chef-config/chef-config.gemspec
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
spec.add_development_dependency(rspec, "~> 3.2")
end
- spec.files = %w(Rakefile LICENSE README.md CONTRIBUTING.md) +
+ spec.files = %w(Rakefile LICENSE README.md) +
Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
spec.bindir = "bin"
diff --git a/chef-config/lib/chef-config/version.rb b/chef-config/lib/chef-config/version.rb
index ffc0f707c9..2371f31d98 100644
--- a/chef-config/lib/chef-config/version.rb
+++ b/chef-config/lib/chef-config/version.rb
@@ -1,4 +1,25 @@
-# TODO: license header
+# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# NOTE: This file is generated by running `rake version` in the top level of
+# this repo. Do not edit this manually. Edit the VERSION file and run the rake
+# task instead.
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
module ChefConfig
VERSION = '12.4.0.dev.0'
end
+
diff --git a/chef.gemspec b/chef.gemspec
index fb9f640d88..f4f8a31207 100644
--- a/chef.gemspec
+++ b/chef.gemspec
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
s.required_ruby_version = ">= 2.0.0"
- s.add_dependency "chef-config", "~> #{Chef::VERSION}"
+ s.add_dependency "chef-config", "= #{Chef::VERSION}"
s.add_dependency "mixlib-cli", "~> 1.4"
s.add_dependency "mixlib-log", "~> 1.3"
diff --git a/lib/chef/version.rb b/lib/chef/version.rb
index 30ede54095..f7466084b6 100644
--- a/lib/chef/version.rb
+++ b/lib/chef/version.rb
@@ -1,6 +1,4 @@
-
-# Author:: Daniel DeLeo (<dan@opscode.com>)
-# Copyright:: Copyright (c) 2010-2011 Opscode, Inc.
+# Copyright:: Copyright (c) 2010-2015 Chef Software, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,6 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+# NOTE: This file is generated by running `rake version` in the top level of
+# this repo. Do not edit this manually. Edit the VERSION file and run the rake
+# task instead.
+#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
class Chef
CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__)))
VERSION = '12.4.0.dev.0'
diff --git a/tasks/rspec.rb b/tasks/rspec.rb
index d45e6bc2df..18af440e81 100644
--- a/tasks/rspec.rb
+++ b/tasks/rspec.rb
@@ -25,8 +25,20 @@ CHEF_ROOT = File.join(File.dirname(__FILE__), "..")
begin
require 'rspec/core/rake_task'
+
+ desc "Run specs for Chef's Components"
+ task :component_specs do
+ Dir.chdir("chef-config") do
+ Bundler.with_clean_env do
+ sh("bundle exec rake spec")
+ end
+ end
+ end
+
task :default => :spec
+ task :spec => :component_specs
+
desc "Run standard specs (minus long running specs)"
RSpec::Core::RakeTask.new(:spec) do |t|
# right now this just limits to functional + unit, but could also remove