diff --git a/Rakefile b/Rakefile index 705edee3c36..6f379944a86 100644 --- a/Rakefile +++ b/Rakefile @@ -5,100 +5,88 @@ begin require 'spree/testing_support/common_rake' rescue LoadError raise "Could not find spree/testing_support/common_rake. You need to run this command using Bundler." - exit end -spec = eval(File.read('spree.gemspec')) -Gem::PackageTask.new(spec) do |pkg| - pkg.gem_spec = spec -end +SPREE_GEMS = %w(core api cmd backend frontend sample).freeze task default: :test desc "Runs all tests in all Spree engines" -task :test do - Rake::Task['test_app'].invoke - %w(api backend core frontend sample).each do |gem_name| +task test: :test_app do + SPREE_GEMS.each do |gem_name| Dir.chdir("#{File.dirname(__FILE__)}/#{gem_name}") do - system("rspec") or exit!(1) + sh 'rspec' end end end desc "Generates a dummy app for testing for every Spree engine" task :test_app do - require File.expand_path('../core/lib/generators/spree/install/install_generator', __FILE__) - %w(api backend core frontend sample).each do |engine| - ENV['LIB_NAME'] = File.join('spree', engine) - ENV['DUMMY_PATH'] = File.expand_path("../#{engine}/spec/dummy", __FILE__) - Rake::Task['common:test_app'].execute + SPREE_GEMS.each do |gem_name| + Dir.chdir("#{File.dirname(__FILE__)}/#{gem_name}") do + sh 'rake test_app' + end end end desc "clean the whole repository by removing all the generated files" task :clean do - puts "Deleting sandbox..." - FileUtils.rm_rf("sandbox") - puts "Deleting pkg directory.." - FileUtils.rm_rf("pkg") + rm_f "Gemfile.lock" + rm_rf "sandbox" + rm_rf "pkg" - %w(api backend cmd core frontend).each do |gem_name| - puts "Cleaning #{gem_name}:" - puts " Deleting #{gem_name}/Gemfile" - FileUtils.rm_f("#{gem_name}/Gemfile") - puts " Deleting #{gem_name}/pkg" - FileUtils.rm_rf("#{gem_name}/pkg") - puts " Deleting #{gem_name}'s dummy application" - Dir.chdir("#{gem_name}/spec") do - FileUtils.rm_rf("dummy") - end + SPREE_GEMS.each do |gem_name| + rm_f "#{gem_name}/Gemfile.lock" + rm_rf "#{gem_name}/pkg" + rm_rf "#{gem_name}/spec/dummy" end end namespace :gem do - desc "run rake gem for all gems" - task :build do - %w(core api backend frontend sample cmd).each do |gem_name| - puts "########################### #{gem_name} #########################" - puts "Deleting #{gem_name}/pkg" - FileUtils.rm_rf("#{gem_name}/pkg") - cmd = "cd #{gem_name} && bundle exec rake gem"; puts cmd; system cmd + def version + require 'spree/core/version' + Spree.version + end + + def for_each_gem + SPREE_GEMS.each do |gem_name| + yield "pkg/spree_#{gem_name}-#{version}.gem" end - puts "Deleting pkg directory" - FileUtils.rm_rf("pkg") - cmd = "bundle exec rake gem"; puts cmd; system cmd + yield "pkg/spree-#{version}.gem" end -end -namespace :gem do - desc "run gem install for all gems" - task :install do - version = File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip + desc "Build all spree gems" + task :build do + pkgdir = File.expand_path("../pkg", __FILE__) + FileUtils.mkdir_p pkgdir - %w(core api backend frontend sample cmd).each do |gem_name| - puts "########################### #{gem_name} #########################" - puts "Deleting #{gem_name}/pkg" - FileUtils.rm_rf("#{gem_name}/pkg") - cmd = "cd #{gem_name} && bundle exec rake gem"; puts cmd; system cmd - cmd = "cd #{gem_name}/pkg && gem install spree_#{gem_name}-#{version}.gem"; puts cmd; system cmd + SPREE_GEMS.each do |gem_name| + Dir.chdir(gem_name) do + sh "gem build spree_#{gem_name}.gemspec" + mv "spree_#{gem_name}-#{version}.gem", pkgdir + end end - puts "Deleting pkg directory" - FileUtils.rm_rf("pkg") - cmd = "bundle exec rake gem"; puts cmd; system cmd - cmd = "gem install pkg/spree-#{version}.gem"; puts cmd; system cmd + + sh "gem build spree.gemspec" + mv "spree-#{version}.gem", pkgdir end -end -namespace :gem do - desc "Release all gems to gemcutter. Package spree components, then push spree" - task :release do - version = File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip + desc "Install all spree gems" + task install: :build do + for_each_gem do |gem_path| + Bundler.with_clean_env do + sh "gem install #{gem_path}" + end + end + end + + desc "Release all gems to rubygems" + task release: :build do + sh "git tag -a -m \"Version #{version}\" v#{version}" - %w(core api backend frontend sample cmd).each do |gem_name| - puts "########################### #{gem_name} #########################" - cmd = "cd #{gem_name}/pkg && gem push spree_#{gem_name}-#{version}.gem"; puts cmd; system cmd + for_each_gem do |gem_path| + sh "gem push '#{gem_path}'" end - cmd = "gem push pkg/spree-#{version}.gem"; puts cmd; system cmd end end diff --git a/SPREE_VERSION b/SPREE_VERSION deleted file mode 100644 index 30afce968e0..00000000000 --- a/SPREE_VERSION +++ /dev/null @@ -1 +0,0 @@ -3.1.0.beta diff --git a/api/Rakefile b/api/Rakefile index 078a9e191f9..b9121c35249 100644 --- a/api/Rakefile +++ b/api/Rakefile @@ -1,27 +1,13 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/packagetask' -require 'rubygems/package_task' require 'rspec/core/rake_task' require 'spree/testing_support/common_rake' require 'rails/all' -Bundler::GemHelper.install_tasks RSpec::Core::RakeTask.new -spec = eval(File.read('spree_api.gemspec')) -Gem::PackageTask.new(spec) do |p| - p.gem_spec = spec -end - -desc "Release to gemcutter" -task :release do - version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip - cmd = "cd pkg && gem push spree_api-#{version}.gem"; puts cmd; system cmd -end - -task :default => :spec +task default: :spec desc "Generates a dummy app for testing" task :test_app do diff --git a/api/spree_api.gemspec b/api/spree_api.gemspec index dbfcfa33949..9aa145b313c 100644 --- a/api/spree_api.gemspec +++ b/api/spree_api.gemspec @@ -1,22 +1,22 @@ # -*- encoding: utf-8 -*- -version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip +require_relative '../core/lib/spree/core/version.rb' -Gem::Specification.new do |gem| - gem.authors = ["Ryan Bigg"] - gem.email = ["ryan@spreecommerce.com"] - gem.description = %q{Spree's API} - gem.summary = %q{Spree's API} - gem.homepage = 'https://spreecommerce.com' - gem.license = %q{BSD-3} +Gem::Specification.new do |s| + s.authors = ["Ryan Bigg"] + s.email = ["ryan@spreecommerce.com"] + s.description = %q{Spree's API} + s.summary = %q{Spree's API} + s.homepage = 'https://spreecommerce.com' + s.license = 'BSD-3' - gem.files = `git ls-files`.split($\) - gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) } - gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) - gem.name = "spree_api" - gem.require_paths = ["lib"] - gem.version = version + s.files = `git ls-files`.split($\) + s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) } + s.test_files = s.files.grep(%r{^(test|spec|features)/}) + s.name = "spree_api" + s.require_paths = ["lib"] + s.version = Spree.version - gem.add_dependency 'spree_core', version - gem.add_dependency 'rabl', '~> 0.11.6' - gem.add_dependency 'versioncake', '~> 2.3.1' + s.add_dependency 'spree_core', s.version + s.add_dependency 'rabl', '~> 0.11.6' + s.add_dependency 'versioncake', '~> 2.3.1' end diff --git a/backend/Rakefile b/backend/Rakefile index a7518215f96..157d91b8ae0 100644 --- a/backend/Rakefile +++ b/backend/Rakefile @@ -1,26 +1,12 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/packagetask' -require 'rubygems/package_task' require 'rspec/core/rake_task' require 'spree/testing_support/common_rake' -Bundler::GemHelper.install_tasks RSpec::Core::RakeTask.new -spec = eval(File.read('spree_backend.gemspec')) -Gem::PackageTask.new(spec) do |p| - p.gem_spec = spec -end - -desc "Release to gemcutter" -task :release do - version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip - cmd = "cd pkg && gem push spree_backend-#{version}.gem"; puts cmd; system cmd -end - -task :default => :spec +task default: :spec desc "Generates a dummy app for testing" task :test_app do diff --git a/backend/spree_backend.gemspec b/backend/spree_backend.gemspec index 78f5cf82fb0..423b799f55d 100644 --- a/backend/spree_backend.gemspec +++ b/backend/spree_backend.gemspec @@ -1,25 +1,25 @@ # encoding: UTF-8 -version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip +require_relative '../core/lib/spree/core/version.rb' Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree_backend' - s.version = version + s.version = Spree.version s.summary = 'backend e-commerce functionality for the Spree project.' s.description = 'Required dependency for Spree' s.author = 'Sean Schofield' s.email = 'sean@spreecommerce.com' s.homepage = 'https://spreecommerce.com' - s.license = %q{BSD-3} + s.license = 'BSD-3' s.rubyforge_project = 'spree_backend' s.files = `git ls-files`.split("\n") s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_api', version - s.add_dependency 'spree_core', version + s.add_dependency 'spree_api', s.version + s.add_dependency 'spree_core', s.version s.add_dependency 'bootstrap-sass', '~> 3.3' s.add_dependency 'jquery-rails', '~> 4.1' diff --git a/cmd/lib/spree_cmd/extension.rb b/cmd/lib/spree_cmd/extension.rb index ac5a89e5f9b..a5e63eb2d07 100644 --- a/cmd/lib/spree_cmd/extension.rb +++ b/cmd/lib/spree_cmd/extension.rb @@ -1,10 +1,9 @@ module SpreeCmd - class Extension < Thor::Group include Thor::Actions desc "builds a spree extension" - argument :file_name, :type => :string, :desc => 'rails app_path', :default => '.' + argument :file_name, type: :string, desc: 'rails app_path', default: '.' source_root File.expand_path('../templates/extension', __FILE__) @@ -30,16 +29,14 @@ def generate end def final_banner - say %Q{ + say %{ #{'*' * 80} - Your extension has been generated with a gemspec dependency on Spree #{spree_version}. + Your extension has been generated with a gemspec dependency on Spree #{Spree.version}. For more information on the versioning of Spree. See https://guides.spreecommerce.com/developer/extensions_tutorial.html#versioning-your-extension - Consider listing your extension in the official extension registry https://spreecommerce.com/extensions - #{'*' * 80} } end @@ -49,16 +46,11 @@ def class_name Thor::Util.camel_case file_name end - def spree_version - '3.1.0.beta' - end - def use_prefix(prefix) unless file_name =~ /^#{prefix}/ @file_name = prefix + Thor::Util.snake_case(file_name) end end end - end end diff --git a/cmd/lib/spree_cmd/templates/extension/extension.gemspec b/cmd/lib/spree_cmd/templates/extension/extension.gemspec index 67d9671b0a3..7a0a420bc03 100644 --- a/cmd/lib/spree_cmd/templates/extension/extension.gemspec +++ b/cmd/lib/spree_cmd/templates/extension/extension.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = '<%= file_name %>' - s.version = '<%= spree_version %>' + s.version = '<%= Spree.version %>' s.summary = 'TODO: Add gem summary here' s.description = 'TODO: Add (optional) gem description here' s.required_ruby_version = '>= 2.0.0' @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_core', '~> <%= spree_version %>' + s.add_dependency 'spree_core', '~> <%= Spree.version %>' s.add_development_dependency 'capybara', '~> 2.4' s.add_development_dependency 'coffee-rails' diff --git a/cmd/spree_cmd.gemspec b/cmd/spree_cmd.gemspec index 4384a9a09c1..f708f5c08f4 100644 --- a/cmd/spree_cmd.gemspec +++ b/cmd/spree_cmd.gemspec @@ -1,14 +1,14 @@ # -*- encoding: utf-8 -*- $:.push File.expand_path("../lib", __FILE__) -version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip +require_relative '../core/lib/spree/core/version.rb' Gem::Specification.new do |s| s.name = "spree_cmd" - s.version = version + s.version = Spree.version s.authors = ["Chris Mar"] s.email = ["chris@spreecommerce.com"] s.homepage = "http://spreecommerce.com" - s.license = %q{BSD-3} + s.license = 'BSD-3' s.summary = %q{Spree Commerce command line utility} s.description = %q{tools to create new Spree stores and extensions} diff --git a/core/Rakefile b/core/Rakefile index d28e3ed8fae..360c0b3cad3 100644 --- a/core/Rakefile +++ b/core/Rakefile @@ -1,27 +1,12 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/packagetask' -require 'rubygems/package_task' require 'rspec/core/rake_task' require 'spree/testing_support/common_rake' -load 'lib/tasks/exchanges.rake' -Bundler::GemHelper.install_tasks RSpec::Core::RakeTask.new -spec = eval(File.read('spree_core.gemspec')) -Gem::PackageTask.new(spec) do |p| - p.gem_spec = spec -end - -desc "Release to gemcutter" -task :release do - version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip - cmd = "cd pkg && gem push spree_core-#{version}.gem"; puts cmd; system cmd -end - -task :default => :spec +task default: :spec desc "Generates a dummy app for testing" task :test_app do diff --git a/core/lib/generators/spree/install/install_generator.rb b/core/lib/generators/spree/install/install_generator.rb index d7a07932c0b..b8af436aa6c 100644 --- a/core/lib/generators/spree/install/install_generator.rb +++ b/core/lib/generators/spree/install/install_generator.rb @@ -38,14 +38,6 @@ def add_files template 'config/initializers/spree.rb', 'config/initializers/spree.rb' end - def config_spree_yml - create_file "config/spree.yml" do - settings = { 'version' => Spree.version } - - settings.to_yaml - end - end - def additional_tweaks return unless File.exists? 'public/robots.txt' append_file "public/robots.txt", <<-ROBOTS diff --git a/core/lib/spree/migrations.rb b/core/lib/spree/migrations.rb index 1f19d2dadc9..9c91954d4a4 100644 --- a/core/lib/spree/migrations.rb +++ b/core/lib/spree/migrations.rb @@ -21,7 +21,7 @@ def initialize(config, engine_name) # Shouldn't run on test mode because migrations inside engine don't have # engine name on the file name def check - if File.exists?("config/spree.yml") && File.directory?("db/migrate") + if File.directory?("db/migrate") engine_in_app = app_migrations.map do |file_name| name, engine = file_name.split(".", 2) next unless match_engine?(engine) diff --git a/core/spec/lib/spree/migrations_spec.rb b/core/spec/lib/spree/migrations_spec.rb index 11835df8ad5..488c71bf53f 100644 --- a/core/spec/lib/spree/migrations_spec.rb +++ b/core/spec/lib/spree/migrations_spec.rb @@ -10,7 +10,6 @@ module Spree subject { described_class.new(config, "spree") } before do - expect(File).to receive(:exists?).with("config/spree.yml").and_return true expect(File).to receive(:directory?).with("db/migrate").and_return true end diff --git a/core/spree_core.gemspec b/core/spree_core.gemspec index f4959c8afc6..6c8c56fccc7 100644 --- a/core/spree_core.gemspec +++ b/core/spree_core.gemspec @@ -1,10 +1,10 @@ # encoding: UTF-8 -version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip +require_relative 'lib/spree/core/version.rb' Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree_core' - s.version = version + s.version = Spree.version s.summary = 'The bare bones necessary for Spree.' s.description = 'The bare bones necessary for Spree.' @@ -14,7 +14,7 @@ Gem::Specification.new do |s| s.author = 'Sean Schofield' s.email = 'sean@spreecommerce.com' s.homepage = 'http://spreecommerce.com' - s.license = %q{BSD-3} + s.license = 'BSD-3' s.files = `git ls-files`.split("\n") s.require_path = 'lib' diff --git a/frontend/Rakefile b/frontend/Rakefile index d8673a6caa1..cf2bff13cda 100644 --- a/frontend/Rakefile +++ b/frontend/Rakefile @@ -1,26 +1,12 @@ require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/packagetask' -require 'rubygems/package_task' require 'rspec/core/rake_task' require 'spree/testing_support/common_rake' -Bundler::GemHelper.install_tasks RSpec::Core::RakeTask.new -spec = eval(File.read('spree_frontend.gemspec')) -Gem::PackageTask.new(spec) do |p| - p.gem_spec = spec -end - -desc "Release to gemcutter" -task :release do - version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip - cmd = "cd pkg && gem push spree_frontend-#{version}.gem"; puts cmd; system cmd -end - -task :default => :spec +task default: :spec desc "Generates a dummy app for testing" task :test_app do diff --git a/frontend/spree_frontend.gemspec b/frontend/spree_frontend.gemspec index a2f32eb07bd..7c1958227ce 100644 --- a/frontend/spree_frontend.gemspec +++ b/frontend/spree_frontend.gemspec @@ -1,25 +1,25 @@ # encoding: UTF-8 -version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip +require_relative '../core/lib/spree/core/version.rb' Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree_frontend' - s.version = version + s.version = Spree.version s.summary = 'Frontend e-commerce functionality for the Spree project.' s.description = s.summary s.author = 'Sean Schofield' s.email = 'sean@spreecommerce.com' s.homepage = 'https://spreecommerce.com' - s.license = %q{BSD-3} + s.license = 'BSD-3' s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_api', version - s.add_dependency 'spree_core', version + s.add_dependency 'spree_api', s.version + s.add_dependency 'spree_core', s.version s.add_dependency 'bootstrap-sass', '>= 3.3.5.1', '< 3.4' s.add_dependency 'canonical-rails', '~> 0.0.4' diff --git a/sample/Rakefile b/sample/Rakefile index e3ae1803560..8dec729fa6e 100644 --- a/sample/Rakefile +++ b/sample/Rakefile @@ -1,28 +1,15 @@ +require 'rubygems' require 'rake' require 'rake/testtask' -require 'rake/packagetask' -require 'rubygems/package_task' require 'rspec/core/rake_task' require 'spree/testing_support/common_rake' -spec = eval(File.read('spree_sample.gemspec')) - -Gem::PackageTask.new(spec) do |p| - p.gem_spec = spec -end +RSpec::Core::RakeTask.new -desc "Release to gemcutter" -task :release do - version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip - cmd = "cd pkg && gem push spree_sample-#{version}.gem"; puts cmd; system cmd -end +task default: :spec desc "Generates a dummy app for testing" task :test_app do ENV['LIB_NAME'] = 'spree/sample' Rake::Task['common:test_app'].invoke - Rake::Task['common:seed'].invoke end - -RSpec::Core::RakeTask.new -task :default => :spec diff --git a/sample/spree_sample.gemspec b/sample/spree_sample.gemspec index 9f21a9afdc3..b419bbd87e9 100644 --- a/sample/spree_sample.gemspec +++ b/sample/spree_sample.gemspec @@ -1,21 +1,21 @@ # encoding: UTF-8 -version = File.read(File.expand_path("../../SPREE_VERSION", __FILE__)).strip +require_relative '../core/lib/spree/core/version.rb' Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree_sample' - s.version = version + s.version = Spree.version s.summary = 'Sample data (including images) for use with Spree.' s.description = 'Required dependency for Spree' s.author = 'Sean Schofield' s.email = 'sean@spreecommerce.com' s.homepage = 'http://spreecommerce.com' - s.license = %q{BSD-3} + s.license = 'BSD-3' s.files = `git ls-files`.split("\n") s.require_path = 'lib' s.requirements << 'none' - s.add_dependency 'spree_core', version + s.add_dependency 'spree_core', s.version end diff --git a/spree.gemspec b/spree.gemspec index 670dce64a05..84a1ed88fe2 100644 --- a/spree.gemspec +++ b/spree.gemspec @@ -1,12 +1,12 @@ # encoding: UTF-8 -version = File.read(File.expand_path('../SPREE_VERSION',__FILE__)).strip +require_relative 'core/lib/spree/core/version.rb' Gem::Specification.new do |s| s.platform = Gem::Platform::RUBY s.name = 'spree' - s.version = version + s.version = Spree.version s.summary = 'Full-stack e-commerce framework for Ruby on Rails.' - s.description = 'Spree is an open source e-commerce framework for Ruby on Rails. Join us on the spree-user google group or in #spree on IRC' + s.description = 'Spree is an open source e-commerce framework for Ruby on Rails. Join us on http://slack.spreecommerce.com' s.files = Dir['README.md', 'lib/**/*'] s.require_path = 'lib' @@ -15,12 +15,12 @@ Gem::Specification.new do |s| s.author = 'Sean Schofield' s.email = 'sean@spreecommerce.com' s.homepage = 'http://spreecommerce.com' - s.license = %q{BSD-3} + s.license = 'BSD-3' - s.add_dependency 'spree_core', version - s.add_dependency 'spree_api', version - s.add_dependency 'spree_backend', version - s.add_dependency 'spree_frontend', version - s.add_dependency 'spree_sample', version - s.add_dependency 'spree_cmd', version + s.add_dependency 'spree_core', s.version + s.add_dependency 'spree_api', s.version + s.add_dependency 'spree_backend', s.version + s.add_dependency 'spree_frontend', s.version + s.add_dependency 'spree_sample', s.version + s.add_dependency 'spree_cmd', s.version end