Skip to content

Commit

Permalink
chore: Simplify gem versioning (#210)
Browse files Browse the repository at this point in the history
* Simplify gem versioning

Rely on a single VERSION constant from judoscale-ruby, require that
relatively to the specific lib gemspec so we can properly build the gem
when releasing (which gets generated automatically via release-please).

This means we don't need to "sync" gem versions anymore manually, or try
to automate that as part of our release-please workflows, since there's
a single source of truth for the version, and all libs share / release
the same version anyway, even if there are no changes, let's just always
require / use that single version file.

* Remove bin/sync-versions since it is no longer needed

By keeping a single VERSION string/file, we don't need to sync versions
across gems anymore.
  • Loading branch information
carlosantoniodasilva authored May 13, 2024
1 parent e80d504 commit efc61b6
Show file tree
Hide file tree
Showing 38 changed files with 72 additions and 159 deletions.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@ To install each gem onto your local machine, run `bundle exec rake install`.
To release a new version:

1. Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary), and release branches will be created automatically via [Release Please](https://github.com/google-github-actions/release-please-action). This updates the changelog and the version of judoscale-ruby.
1. On the release branch, run `bin/sync-versions` to update the `VERSION` constants for each gem. Commit and push this change to the release branch.
1. Merge the release branch, and GitHub Actions will run `bin/release` to publish all gems to [Rubygems](https://rubygems.org).

_Note: We keep all gem versions in sync to provide a better developer experience for our users._
Expand Down
23 changes: 0 additions & 23 deletions bin/sync-versions

This file was deleted.

6 changes: 3 additions & 3 deletions judoscale-delayed_job/judoscale-delayed_job.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/delayed_job/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "judoscale-delayed_job"
spec.version = Judoscale::DelayedJob::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -25,6 +25,6 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 2.6.0"

spec.add_dependency "judoscale-ruby", Judoscale::DelayedJob::VERSION
spec.add_dependency "judoscale-ruby", Judoscale::VERSION
spec.add_dependency "delayed_job_active_record", ">= 4.0"
end
4 changes: 2 additions & 2 deletions judoscale-delayed_job/lib/judoscale/delayed_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

require "judoscale-ruby"
require "judoscale/config"
require "judoscale/delayed_job/version"
require "judoscale/version"
require "judoscale/delayed_job/metrics_collector"
require "delayed_job_active_record"

Judoscale.add_adapter :"judoscale-delayed_job",
{
adapter_version: Judoscale::DelayedJob::VERSION,
adapter_version: Judoscale::VERSION,
framework_version: Gem.loaded_specs["delayed_job_active_record"].version.to_s # DJ doesn't have a `VERSION` constant
},
metrics_collector: Judoscale::DelayedJob::MetricsCollector,
Expand Down
7 changes: 0 additions & 7 deletions judoscale-delayed_job/lib/judoscale/delayed_job/version.rb

This file was deleted.

6 changes: 3 additions & 3 deletions judoscale-delayed_job/rails-autoscale-delayed_job.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/delayed_job/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "rails-autoscale-delayed_job"
spec.version = Judoscale::DelayedJob::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
spec.files = Dir["lib/**/*"].select { |f| f.match?(%r{rails-autoscale}) }
spec.require_paths = ["lib"]

spec.add_dependency "judoscale-delayed_job", Judoscale::DelayedJob::VERSION
spec.add_dependency "judoscale-delayed_job", Judoscale::VERSION
end
6 changes: 3 additions & 3 deletions judoscale-good_job/judoscale-good_job.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/good_job/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "judoscale-good_job"
spec.version = Judoscale::GoodJob::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -25,6 +25,6 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 2.6.0"

spec.add_dependency "judoscale-ruby", Judoscale::GoodJob::VERSION
spec.add_dependency "judoscale-ruby", Judoscale::VERSION
spec.add_dependency "good_job", ">= 3.0"
end
4 changes: 2 additions & 2 deletions judoscale-good_job/lib/judoscale/good_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
require "good_job"
require "judoscale-ruby"
require "judoscale/config"
require "judoscale/good_job/version"
require "judoscale/version"
require "judoscale/good_job/metrics_collector"

Judoscale.add_adapter :"judoscale-good_job",
{
adapter_version: Judoscale::GoodJob::VERSION,
adapter_version: Judoscale::VERSION,
framework_version: ::GoodJob::VERSION
},
metrics_collector: Judoscale::GoodJob::MetricsCollector,
Expand Down
7 changes: 0 additions & 7 deletions judoscale-good_job/lib/judoscale/good_job/version.rb

This file was deleted.

6 changes: 3 additions & 3 deletions judoscale-good_job/rails-autoscale-good_job.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/good_job/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "rails-autoscale-good_job"
spec.version = Judoscale::GoodJob::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
spec.files = Dir["lib/**/*"].select { |f| f.match?(%r{rails-autoscale}) }
spec.require_paths = ["lib"]

spec.add_dependency "judoscale-good_job", Judoscale::GoodJob::VERSION
spec.add_dependency "judoscale-good_job", Judoscale::VERSION
end
6 changes: 3 additions & 3 deletions judoscale-que/judoscale-que.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/que/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "judoscale-que"
spec.version = Judoscale::Que::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -25,6 +25,6 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 2.6.0"

spec.add_dependency "judoscale-ruby", Judoscale::Que::VERSION
spec.add_dependency "judoscale-ruby", Judoscale::VERSION
spec.add_dependency "que", ">= 1.0"
end
4 changes: 2 additions & 2 deletions judoscale-que/lib/judoscale/que.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

require "judoscale-ruby"
require "judoscale/config"
require "judoscale/que/version"
require "judoscale/version"
require "judoscale/que/metrics_collector"
require "que"

Judoscale.add_adapter :"judoscale-que",
{
adapter_version: Judoscale::Que::VERSION,
adapter_version: Judoscale::VERSION,
framework_version: ::Que::VERSION
},
metrics_collector: Judoscale::Que::MetricsCollector,
Expand Down
7 changes: 0 additions & 7 deletions judoscale-que/lib/judoscale/que/version.rb

This file was deleted.

6 changes: 3 additions & 3 deletions judoscale-que/rails-autoscale-que.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/que/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "rails-autoscale-que"
spec.version = Judoscale::Que::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
spec.files = Dir["lib/**/*"].select { |f| f.match?(%r{rails-autoscale}) }
spec.require_paths = ["lib"]

spec.add_dependency "judoscale-que", Judoscale::Que::VERSION
spec.add_dependency "judoscale-que", Judoscale::VERSION
end
6 changes: 3 additions & 3 deletions judoscale-rack/judoscale-rack.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/rack/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "judoscale-rack"
spec.version = Judoscale::Rack::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -25,6 +25,6 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 2.6.0"

spec.add_dependency "judoscale-ruby", Judoscale::Rack::VERSION
spec.add_dependency "judoscale-ruby", Judoscale::VERSION
spec.add_dependency "rack"
end
4 changes: 2 additions & 2 deletions judoscale-rack/lib/judoscale/rack.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

require "judoscale-ruby"
require "judoscale/rack/version"
require "judoscale/version"
require "judoscale/web_metrics_collector"
require "judoscale/request_middleware"
require "rack"
Expand All @@ -10,6 +10,6 @@
# the app's middleware chain.

Judoscale.add_adapter :"judoscale-rack", {
adapter_version: Judoscale::Rack::VERSION,
adapter_version: Judoscale::VERSION,
framework_version: ::Rack.version
}, metrics_collector: Judoscale::WebMetricsCollector
7 changes: 0 additions & 7 deletions judoscale-rack/lib/judoscale/rack/version.rb

This file was deleted.

6 changes: 3 additions & 3 deletions judoscale-rack/rails-autoscale-rack.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/rack/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "rails-autoscale-rack"
spec.version = Judoscale::Rack::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
spec.files = Dir["lib/**/*"].select { |f| f.match?(%r{rails-autoscale}) }
spec.require_paths = ["lib"]

spec.add_dependency "judoscale-rack", Judoscale::Rack::VERSION
spec.add_dependency "judoscale-rack", Judoscale::VERSION
end
6 changes: 3 additions & 3 deletions judoscale-rails/judoscale-rails.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/rails/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "judoscale-rails"
spec.version = Judoscale::Rails::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -25,6 +25,6 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 2.6.0"

spec.add_dependency "judoscale-ruby", Judoscale::Rails::VERSION
spec.add_dependency "judoscale-ruby", Judoscale::VERSION
spec.add_dependency "railties"
end
4 changes: 2 additions & 2 deletions judoscale-rails/lib/judoscale/rails.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# frozen_string_literal: true

require "judoscale-ruby"
require "judoscale/rails/version"
require "judoscale/version"
require "judoscale/rails/railtie"
require "judoscale/web_metrics_collector"
require "rails/version"

Judoscale.add_adapter :"judoscale-rails", {
adapter_version: Judoscale::Rails::VERSION,
adapter_version: Judoscale::VERSION,
framework_version: ::Rails.version
}, metrics_collector: Judoscale::WebMetricsCollector
7 changes: 0 additions & 7 deletions judoscale-rails/lib/judoscale/rails/version.rb

This file was deleted.

6 changes: 3 additions & 3 deletions judoscale-rails/rails-autoscale-web.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/rails/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "rails-autoscale-web"
spec.version = Judoscale::Rails::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
spec.files = Dir["lib/**/*"].select { |f| f.match?(%r{rails-autoscale}) }
spec.require_paths = ["lib"]

spec.add_dependency "judoscale-rails", Judoscale::Rails::VERSION
spec.add_dependency "judoscale-rails", Judoscale::VERSION
end
6 changes: 3 additions & 3 deletions judoscale-resque/judoscale-resque.gemspec
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# frozen_string_literal: true

require_relative "lib/judoscale/resque/version"
require_relative "../judoscale-ruby/lib/judoscale/version"

Gem::Specification.new do |spec|
spec.name = "judoscale-resque"
spec.version = Judoscale::Resque::VERSION
spec.version = Judoscale::VERSION
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
spec.email = ["hello@judoscale.com"]

Expand All @@ -25,6 +25,6 @@ Gem::Specification.new do |spec|

spec.required_ruby_version = ">= 2.6.0"

spec.add_dependency "judoscale-ruby", Judoscale::Resque::VERSION
spec.add_dependency "judoscale-ruby", Judoscale::VERSION
spec.add_dependency "resque", ">= 2.0"
end
4 changes: 2 additions & 2 deletions judoscale-resque/lib/judoscale/resque.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

require "judoscale-ruby"
require "judoscale/config"
require "judoscale/resque/version"
require "judoscale/version"
require "judoscale/resque/metrics_collector"
require "resque"
require "judoscale/resque/latency_extension"

Judoscale.add_adapter :"judoscale-resque",
{
adapter_version: Judoscale::Resque::VERSION,
adapter_version: Judoscale::VERSION,
framework_version: ::Resque::VERSION
},
metrics_collector: Judoscale::Resque::MetricsCollector,
Expand Down
Loading

0 comments on commit efc61b6

Please sign in to comment.