From e2e5f3c4b7f352052b7610577cc455599f34a880 Mon Sep 17 00:00:00 2001 From: George Ma Date: Wed, 3 Apr 2024 11:50:39 -0400 Subject: [PATCH] Centralize Ruby Version to `.ruby-version` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `.ruby-version` file is the ecosystem standard for defining a Ruby version. This PR adds the `.ruby-version` file, ensures a `required_ruby_version` is set, and removes all other references to Ruby in this repository, aligning it with the standard. > [!IMPORTANT] > Please verify the following before merging: Verify that the changes in the PR meets the following requirements or adjust manually to make it compliant: - [ ] `.ruby-version` file is present with the correct Ruby version defined - [ ] A `required_ruby_version` in your gemspec is set - [ ] There is no Ruby version present in the `dev.yml` Ruby task (before: `- ruby: x.x.x`, after: `- ruby`) - [ ] There is no Ruby version/requirement referenced in the `Gemfile` (no lines with `ruby `) - [ ] A `Gemfile.lock` is built with the defined Ruby version - [ ] The version of Rubocop installed is 1.61.0 or greater - [ ] There is no `TargetRubyVersion` defined in `rubocop.yml` (reads from `required_ruby_version` on Rubocop 1.61.0) - [ ] There is no Ruby argument present in `ruby/setup-ruby` Github Actions that do **not** run on a Ruby matrix (no lines with `ruby-version: “x.x”`) To establish consistency, the `required_ruby_version`is set to 2.7. If you think that another version is a better fit, please make the applicable changes. Please merge this PR if it looks good, this PR will be addressed if there isn't any activity after 4 weeks. --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++ .gitignore | 1 - .ruby-version | 1 + Gemfile.lock | 47 ++++++++++++++++++++++++++++++++++++++++ active_utils.gemspec | 2 ++ 5 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .ruby-version create mode 100644 Gemfile.lock diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a472663 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +name: CI +on: + pull_request: + branches: + - '**' + push: + branches: + - master +jobs: + build: + name: Ruby ${{ matrix.version }} ${{ matrix.gemfile }} + runs-on: ubuntu-latest + strategy: + matrix: + ruby: [ '2.7', '3.0', '3.1', '3.2', '3.3' ] + gemfile: + - Gemfile + steps: + - uses: actions/checkout@v4 + - name: Set up Ruby ${{ matrix.version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.version }} + bundler-cache: true + - name: Test + run: bundle exec rake test diff --git a/.gitignore b/.gitignore index 2ac8271..247384c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ pkg/* *.gem .bundle .DS_Store -Gemfile.lock diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..a603bb5 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.7.5 diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..27e6353 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,47 @@ +PATH + remote: . + specs: + active_utils (3.4.1) + activesupport (>= 4.2) + i18n + +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.1.3.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + base64 (0.2.0) + bigdecimal (3.1.7) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + drb (2.2.1) + i18n (1.14.4) + concurrent-ruby (~> 1.0) + minitest (5.22.3) + mocha (2.1.0) + ruby2_keywords (>= 0.0.5) + mutex_m (0.2.0) + rake (13.2.0) + ruby2_keywords (0.0.5) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + +PLATFORMS + arm64-darwin-21 + +DEPENDENCIES + active_utils! + minitest + mocha + rake + +BUNDLED WITH + 2.4.18 diff --git a/active_utils.gemspec b/active_utils.gemspec index 185d0c0..cd30355 100644 --- a/active_utils.gemspec +++ b/active_utils.gemspec @@ -12,6 +12,8 @@ Gem::Specification.new do |s| s.summary = %q{Common utils used by active_merchant, active_fulfillment, and active_shipping} s.license = 'MIT' + spec.required_ruby_version = ">= 2.7" + s.rubyforge_project = "active_utils" s.add_dependency('activesupport', '>= 4.2')