next_rails 1.1.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e37620e9fa92eea06f9faa05a1ace3cd1b9ff2585da96b838e165f1b98b06129
4
- data.tar.gz: 47335d3ccaf72cfb828deeeab67ae93700fe83f38a7aeb7194ddccad5ebb0f3d
3
+ metadata.gz: 7c82f6a12b6cd481313202fce9894ca2690c222d4397a14398f74c4dd0e6d31f
4
+ data.tar.gz: 546438cf1893b369c1f4c0d05f507a99c96a3dbd939b78b8e3bacbed560f2150
5
5
  SHA512:
6
- metadata.gz: d449a18c9279d4bc1a2889440843c800dc5f8b1e1d50cacdb2ace1cdebb5b7eb7c14fb6247059e30f7e39412bbb97f15d5ec7b674320bf8bc8c840edf1144fa2
7
- data.tar.gz: 8b22f60cdb23275ee943e68835374ea18c54d4ecb1718db2f2e9b0b701bad9a73da2dcc73c03438ed0269b610ed67bbcd7b5bd2eb9906d2c758394abbe0bf8e3
6
+ metadata.gz: a1330ca26c90f32978737bbf780156458bc8254377addbfdb860c63b1ff697f06a554e640d457bc7c7d1433a3baa7f2cd0115d4860bf451b85d468f8d0501eec
7
+ data.tar.gz: a5b5da58d00c288258931320c395cbccf1341f4eed15f56b680693f2ef3919d96ec97542a9bc2c3c11e5cf82ee5371f44d64162e9630901a4c702ded146e1415
@@ -6,46 +6,32 @@ labels: bug
6
6
  assignees: ""
7
7
  ---
8
8
 
9
- **IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.**
9
+ <!--- Before creating a bug report, please, answer the following questions -->
10
+ <!--- Did you check the documentation for answers? -->
11
+ <!--- Did you make sure that this bug has not already been reported? -->
10
12
 
11
- **Before we start...:**
13
+ ## Expected Behavior
14
+ <!--- Tell us what should happen -->
15
+ <!--- For example: When I [do X], it should [produce Y] -->
12
16
 
13
- - [ ] I checked the documentation and found no answer
14
- - [ ] I checked to make sure that this issue has not already been filed
15
- - [ ] I'm reporting the issue to the correct repository (for multi-repository projects)
17
+ ## Actual Behavior
18
+ <!--- Tell us what happens instead -->
19
+ <!--- For example: When I [did X], it [produced Y] -->
16
20
 
17
- **Version, Branch, or Commit:**
21
+ ## Possible Fix
22
+ <!--- Optionally suggest a fix or work around -->
18
23
 
19
- What branch/commit/version of "next_rails" you are using?
24
+ ## To Reproduce
25
+ <!--- Optionally provide a link to a live example -->
20
26
 
21
- **Expected behavior:**
27
+ <!--- Otherwise, please provide a set of reproduction steps -->
28
+ 1.
29
+ 2.
30
+ 3.
31
+ 4.
22
32
 
23
- Please include a detailed description of the behavior you were expecting when you encountered this issue.
24
-
25
- **Actual behavior:**
26
-
27
- Please include a detailed description of the actual behavior of the application.
28
-
29
- **Steps to reproduce:**
30
-
31
- How do I achieve this behavior? Use the following format to provide a step-by-step guide:
32
-
33
- 1. Step 1: ...
34
- 2. Step 2: ...
35
-
36
- **Context and environment:**
37
-
38
- Provide any relevant information about your setup (Customize the list accordingly based on what info is relevant to this project)
39
-
40
- 1. Version of the software the issue is being opened for.
41
- 2. Operating System
42
- 3. Operating System version
43
- 4. Ruby version
44
-
45
- _Delete any information that is not relevant._
46
-
47
- **Logs**
48
-
49
- Include relevant log snippets or files here.
33
+ ## Additional Information
34
+ <!--- Include any relevant details about your environment (branch, browser, OS) -->
35
+ <!--- and the bug (screenshots, logs, etc) -->
50
36
 
51
37
  **I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
@@ -6,35 +6,18 @@ labels: enhancement
6
6
  assignees: ""
7
7
  ---
8
8
 
9
- **IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.**
9
+ <!--- Before creating a feature request, please, answer the following questions -->
10
+ <!--- Did you check the documentation for this feature? -->
11
+ <!--- Did you make sure that this feature has not already been requested? -->
10
12
 
11
- **Before we start...:**
13
+ ## Description
14
+ <!--- Provide a description of the change or addition you are proposing -->
12
15
 
13
- - [ ] I checked the documentation and didn't find this feature
14
- - [ ] I checked to make sure that this feature has not already been requested
16
+ ## Possible Implementation
17
+ <!--- Optionally suggest an idea to implement or a workaround to fix the issue -->
15
18
 
16
- **Branch/Commit:**
17
-
18
- Inform what branch/commit/version of "next_rails" you are using.
19
-
20
- **Describe the feature:**
21
-
22
- Please include a detailed description of the feature you are requesting and any detail on it’s expected behavior.
23
-
24
- > **As a \<role name\>** > **I do \<something\>** > **And then I do \<another action\>** > **And I see \<some result\>**
25
-
26
- **Problem:**
27
-
28
- Please include a detailed description of the problem this feature would solve.
29
-
30
- > **As a \<role name\>** > **I want to \<do something\>** > **So that I can achieve a \<goal\>**
31
-
32
- **Mockups:**
33
-
34
- Include any mockup idea related to the requested feature if it applies.
35
-
36
- **Resources:**
37
-
38
- If you have resources related to the implementation or research for this feature, add them here.
19
+ ## Resources:
20
+ <!--- If you have resources related to the implementation or research for this feature, add them here. -->
21
+ <!--- If possible, include any mockup ideas related to the requested feature. -->
39
22
 
40
23
  **I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
@@ -1,20 +1,26 @@
1
- name: Run rake task
1
+ name: Continuous Integration
2
2
 
3
- on: [push, pull_request]
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
4
10
 
5
11
  jobs:
6
12
  test:
7
13
  runs-on: ubuntu-latest
8
14
  strategy:
9
15
  matrix:
10
- ruby-version: [3.1, 2.7.5]
16
+ ruby-version: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6"]
11
17
 
12
18
  steps:
13
- - uses: actions/checkout@v2
14
- - name: Set up Ruby ${{ matrix.ruby-version }}
15
- uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: ${{ matrix.ruby-version }}
18
- bundler-cache: true
19
- - name: Run rake task
20
- run: bundle exec rake
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby ${{ matrix.ruby-version }}
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby-version }}
24
+ bundler-cache: true
25
+ - name: Run rake task
26
+ run: bundle exec rake
data/CHANGELOG.md CHANGED
@@ -1,38 +1,85 @@
1
- # main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.0.4...main)
1
+ # main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.4.0...main)
2
2
 
3
- * [FEATURE: Try to find the latest **compatible** version of a gem if the latest version is not compatible with the desired Rails version when checking compatibility](https://github.com/fastruby/next_rails/pull/49)
3
+ * Your changes/patches go here.
4
4
 
5
- * [FEATURE: Added option --version to get the version of the gem being used](https://github.com/fastruby/next_rails/pull/38)
5
+ # v1.4.0 / 2024-09-24 [(commits)](https://github.com/fastruby/next_rails/compare/v1.3.0...v1.4.0)
6
6
 
7
- * [Added github action workflow](https://github.com/fastruby/next_rails/pull/40)
7
+ - [CHORE: Use next_rails namespace on spec tests.](https://github.com/fastruby/next_rails/pull/117)
8
+ - [CHORE: Remove 2.0.0, 2.1, 2.2 Ruby support](https://github.com/fastruby/next_rails/pull/126)
9
+ - [CHORE: Update compatibility for Ruby versions to use Rainbow](https://github.com/fastruby/next_rails/pull/125)
10
+ - [FEATURE: Support compatibility for Ruby versions](https://github.com/fastruby/next_rails/pull/116)
11
+ - [CHORE: Remove GPL licensed dependency Colorize and replace it with Rainbow]
8
12
 
9
- * [FEATURE: Add support to use DeprecationTracker with Minitest](Add support to use DeprecationTracker with Minitest)
13
+ # v1.3.0 / 2023-06-16 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.4...v1.3.0)
10
14
 
11
- * [FEATURE: Add dependabot](https://github.com/fastruby/next_rails/pull/41)
15
+ - [FEATURE: Add NextRails.next? for application usage (e.g. Rails shims)](https://github.com/fastruby/next_rails/pull/97)
16
+ - [BUGFIX: Support ERB versions older than 2.2.0](https://github.com/fastruby/next_rails/pull/100)
12
17
 
13
- * [DOCUMENTATION: Update the code of conduct link in PR template](https://github.com/fastruby/next_rails/pull/46)
18
+ # v1.2.4 / 2023-04-21 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.3...v1.2.4)
14
19
 
15
- * [DOCUMENTATION: Add FEATURE REQUEST and BUG REPORT templates ](https://github.com/fastruby/next_rails/pull/48)
20
+ - [BUGFIX: Update the warn method signature to support for Ruby 3]
16
21
 
17
- * [BUGFIX: Make behavior arguments optional](https://github.com/fastruby/next_rails/pull/44)
22
+ # v1.2.3 / 2023-04-12 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.2...v1.2.3)
18
23
 
19
- * [FEATURE: Command line option to check for recommended ruby version for the desired Rails version](https://github.com/fastruby/next_rails/pull/39)
24
+ - [Fix ERB deprecation warning in Ruby 3.1]
20
25
 
26
+ - [Remove Rails gems from compatibility check]
27
+
28
+ # v1.2.2 / 2023-03-03 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.1...v1.2.2)
29
+ * [BUGFIX: Fixed `KernelWarnTracker#warn signature to match `Kernel#warn` for ruby 2.5+](https://github.com/fastruby/next_rails/pull/82)
30
+ * [CHORE: Added updated templates for bug fixes, feature requests and pull requests](https://github.com/fastruby/next_rails/pull/64) as per [this RFC](https://github.com/fastruby/RFCs/blob/main/2021-10-13-github-templates.md)
31
+ * [FEATURE: Turn BundleReport into a module](https://github.com/fastruby/next_rails/pull/63)
32
+
33
+ # v1.2.1 / 2022-09-26 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.0...v1.2.1)
34
+
35
+ - [BUGFIX: SimpleCov was not reporting accurately due to a bug in the spec helper code](https://github.com/fastruby/next_rails/pull/66)
36
+
37
+ - [FEATURE: Better documentation for contributing and releasing versions of this gem](https://github.com/fastruby/next_rails/pull/53)
38
+
39
+ - [BUGFIX: bundle_report outdated was giving an exception due to missing method latest_version](https://github.com/fastruby/next_rails/pull/62)
40
+
41
+ - [FEATURE: `bundle_report outdated` outputs in JSON format when passed optional argument](https://github.com/fastruby/next_rails/pull/61)
42
+
43
+ # v1.2.0 / 2022-08-12 [(commits)](https://github.com/fastruby/next_rails/compare/v1.1.0...v1.2.0)
44
+
45
+ - [FEATURE: Support Ruby versions as old as Ruby 2.0](https://github.com/fastruby/next_rails/pull/54)
46
+
47
+ - [FEATURE: Better documentation for contributing and releasing versions of this gem](https://github.com/fastruby/next_rails/pull/53)
48
+
49
+ # v1.1.0 / 2022-06-30 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.5...v1.1.0)
50
+
51
+ - [FEATURE: Try to find the latest **compatible** version of a gem if the latest version is not compatible with the desired Rails version when checking compatibility](https://github.com/fastruby/next_rails/pull/49)
52
+
53
+ - [FEATURE: Added option --version to get the version of the gem being used](https://github.com/fastruby/next_rails/pull/38)
54
+
55
+ - [Added github action workflow](https://github.com/fastruby/next_rails/pull/40)
56
+
57
+ - [FEATURE: Add support to use DeprecationTracker with Minitest](Add support to use DeprecationTracker with Minitest)
58
+
59
+ - [FEATURE: Add dependabot](https://github.com/fastruby/next_rails/pull/41)
60
+
61
+ - [DOCUMENTATION: Update the code of conduct link in PR template](https://github.com/fastruby/next_rails/pull/46)
62
+
63
+ - [DOCUMENTATION: Add FEATURE REQUEST and BUG REPORT templates ](https://github.com/fastruby/next_rails/pull/48)
64
+
65
+ - [BUGFIX: Make behavior arguments optional](https://github.com/fastruby/next_rails/pull/44)
66
+
67
+ - [FEATURE: Command line option to check for recommended ruby version for the desired Rails version](https://github.com/fastruby/next_rails/pull/39)
21
68
 
22
69
  # v1.0.5 / 2022-03-29 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.4...v1.0.5)
23
70
 
24
- * [FEATURE: Initialize the Gemfile.next.lock to avoid major version jumps when used without an initial Gemfile.next.lock](https://github.com/fastruby/next_rails/pull/25)
25
- * [FEATURE: Drop `actionview` dependency because it is not really used](https://github.com/fastruby/next_rails/pull/26)
26
- * [BUGFIX: If shitlist path does not exist, create it for the user of the gem](https://github.com/fastruby/next_rails/pull/37)
71
+ - [FEATURE: Initialize the Gemfile.next.lock to avoid major version jumps when used without an initial Gemfile.next.lock](https://github.com/fastruby/next_rails/pull/25)
72
+ - [FEATURE: Drop `actionview` dependency because it is not really used](https://github.com/fastruby/next_rails/pull/26)
73
+ - [BUGFIX: If shitlist path does not exist, create it for the user of the gem](https://github.com/fastruby/next_rails/pull/37)
27
74
 
28
75
  # v1.0.4 / 2021-04-09 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.3...v1.0.4)
29
76
 
30
- * [BUGFIX: Fixes issue with `bundle_report` and `actionview`](https://github.com/fastruby/next_rails/pull/22)
77
+ - [BUGFIX: Fixes issue with `bundle_report` and `actionview`](https://github.com/fastruby/next_rails/pull/22)
31
78
 
32
79
  # v1.0.3 / 2021-04-05 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.2...v1.0.3)
33
80
 
34
- * [BUGFIX: Update README.md to better document this `ten_years_rails` fork](https://github.com/fastruby/next_rails/pull/11)
35
- * [BUGFIX: Make ActionView an optional dependency](https://github.com/fastruby/next_rails/pull/6)
81
+ - [BUGFIX: Update README.md to better document this `ten_years_rails` fork](https://github.com/fastruby/next_rails/pull/11)
82
+ - [BUGFIX: Make ActionView an optional dependency](https://github.com/fastruby/next_rails/pull/6)
36
83
 
37
84
  # v1.0.2 / 2020-01-20
38
85
 
@@ -40,4 +87,4 @@
40
87
 
41
88
  # v1.0.0 / 2019-07-24
42
89
 
43
- * Official Release
90
+ - Official Release
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,60 @@
1
+ # Contributing to next_rails
2
+
3
+ Have a fix for a problem you've been running into or an idea for a new feature you think would be useful? Bug reports and pull requests are welcome on GitHub at [https://github.com/fastruby/next_rails](https://github.com/fastruby/next_rails).
4
+
5
+ Here's what you need to do:
6
+
7
+ - Read and understand the [Code of Conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md).
8
+ - Fork this repo and clone your fork to somewhere on your machine.
9
+ - [Ensure that you have a working environment](#setting-up-your-environment)
10
+ - Read up on [run the tests](#running-all-tests).
11
+ - Open a new branch and write a failing test for the feature or bug fix you plan on implementing.
12
+ - [Update the changelog when applicable](#a-word-on-the-changelog).
13
+ - Push to your fork and submit a pull request.
14
+ - [Make sure the test suite passes on GitHub Actions and make any necessary changes to your branch to bring it to green.](#continuous-integration).
15
+
16
+ ## Setting up your environment
17
+ To install the dependencies, run:
18
+
19
+ ```bash
20
+ bin/setup
21
+ ```
22
+
23
+ You can also run `bin/console` for an interactive prompt that will allow you to experiment with the gem.
24
+
25
+ To install this gem onto your local machine, run:
26
+
27
+ `bundle exec rake install`.
28
+
29
+ ### Running all tests
30
+
31
+ To run all of the tests, simply run:
32
+
33
+ ```bash
34
+ bundle exec rake
35
+ ```
36
+
37
+ ## A word on the changelog
38
+
39
+ You may also notice that we have a changelog in the form of [CHANGELOG.md](CHANGELOG.md). We use a format based on [Keep A Changelog](https://keepachangelog.com/en/1.0.0/).
40
+
41
+ The important things to keep in mind are:
42
+
43
+ - If your PR closes any open GitHub issue, make sure you include `Closes #XXXX` in your comment.
44
+ - New additions get added under the main (unreleased) heading;
45
+ - Attach a link to the PR with the following format:
46
+
47
+ * [<FEATURE | BUGFIX | CHORE>: Description of changes](github.com/link/to/pr).
48
+
49
+ ## When Submitting a Pull Request:
50
+
51
+ * If your PR closes any open GitHub issues, please include `Closes #XXXX` in your comment.
52
+ * Please include a summary of the change and which issue is fixed or which feature is introduced.
53
+ * If changes to the behavior are made, clearly describe what are the changes and why.
54
+ * If changes to the UI are made, please include screenshots of the before and after.
55
+
56
+ ## Continuous integration
57
+
58
+ After opening your Pull Request, please make sure that all tests pass on the CI, to make sure your changes work in all possible environments. GitHub Actions will kick in after you push up a branch or open a PR.
59
+
60
+ If the build fails, click on a failed job and scroll through its output to verify what is the problem. Push your changes to your branch until the build is green.
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Next Rails
2
2
 
3
+ [![Continuous Integration](https://github.com/fastruby/next_rails/actions/workflows/main.yml/badge.svg)](https://github.com/fastruby/next_rails/actions/workflows/main.yml)
4
+
3
5
  This is a toolkit to upgrade your next Rails application. It will help you
4
6
  set up dual booting, track deprecation warnings, and get a report on outdated
5
7
  dependencies for any Rails application.
@@ -29,15 +31,46 @@ Learn about your Gemfile and see what needs updating.
29
31
  ```bash
30
32
  # Show all out-of-date gems
31
33
  bundle_report outdated
34
+
32
35
  # Show five oldest, out-of-date gems
33
36
  bundle_report outdated | head -n 5
37
+
38
+ # Show all out-of-date gems in machine readable JSON format
39
+ bundle_report outdated --json
40
+
34
41
  # Show gems that don't work with Rails 5.2.0
35
42
  bundle_report compatibility --rails-version=5.2.0
36
- bundle_report --help
43
+
44
+ # Show gems that don't work with Ruby 3.0
45
+ bundle_report compatibility --ruby-version=3.0
46
+
37
47
  # Find minimum compatible ruby version with Rails 7.0.0
38
48
  bundle_report ruby_check --rails-version=7.0.0
49
+
50
+ # Show the usual help message
51
+ bundle_report --help
52
+ ```
53
+
54
+ ### Application usage
55
+
56
+ Every now and then it will be necessary to add code like this to your
57
+ application:
58
+
59
+ ```ruby
60
+ if NextRails.next?
61
+ # Do things "the Rails 7 way"
62
+ else
63
+ # Do things "the Rails 6.1 way"
64
+ end
39
65
  ```
40
66
 
67
+ The `NextRails.next?` method will use your environment
68
+ (e.g. `ENV['BUNDLE_GEMFILE]`) to determine whether your application is
69
+ running with the next set of dependencies or the current set of dependencies.
70
+
71
+ This might come in handy if you need to inject
72
+ [Ruby or Rails shims](https://www.fastruby.io/blog/rails/upgrades/rails-upgrade-shims.html).
73
+
41
74
  ### Deprecation tracking
42
75
 
43
76
  If you're using RSpec, add this snippet to `rails_helper.rb` or `spec_helper.rb` (whichever loads Rails).
@@ -91,7 +124,7 @@ deprecations run
91
124
  deprecations --help # For more options and examples
92
125
  ```
93
126
 
94
- Right now, the path to the shitlist is hardcoded so make sure you store yours at `spec/support/deprecations.shitlist.json`.
127
+ Right now, the path to the shitlist is hardcoded so make sure you store yours at `spec/support/deprecation_warning.shitlist.json`.
95
128
 
96
129
  #### `next_rails` command
97
130
 
@@ -115,7 +148,9 @@ next rails s # Start server using Gemfile.next
115
148
 
116
149
  ## Installation
117
150
 
118
- Add this line to your application's Gemfile:
151
+ Add this line to your application's Gemfile
152
+
153
+ > NOTE: If you add this gem to a group, make sure it is the test env group
119
154
 
120
155
  ```ruby
121
156
  gem 'next_rails'
@@ -140,6 +175,33 @@ The Gemfile.next.lock is initialized with the contents of your existing
140
175
  Gemfile.lock lock file. We initialize the Gemfile.next.lock to prevent
141
176
  major version jumps when running the next version of Rails.
142
177
 
178
+ ## Contributing
179
+
180
+ Have a fix for a problem you've been running into or an idea for a new feature you think would be useful? Want to see how you can support `next_rails`?
181
+
182
+ Take a look at the [Contributing document](CONTRIBUTING.md) for instructions to set up the repo on your machine!
183
+
184
+ ## Releases
185
+
186
+ `next_rails` adheres to [semver](https://semver.org). So given a version number MAJOR.MINOR.PATCH, we will increment the:
187
+
188
+ 1. MAJOR version when you make incompatible API changes,
189
+ 2. MINOR version when you add functionality in a backwards compatible manner, and
190
+ 3. PATCH version when you make backwards compatible bug fixes.
191
+
192
+ Here are the steps to release a new version:
193
+
194
+ 1. Update the `version.rb` file with the proper version number
195
+ 2. Update `CHANGELOG.md` to have the right headers
196
+ 3. Commit your changes to a `release/v-1-1-0` branch
197
+ 4. Push your changes and submit a pull request
198
+ 5. Merge your pull request to the `main` branch
199
+ 6. Git tag the latest version of the `main` branch (`git tag v1.1.0`)
200
+ 7. Push tags to GitHub (`git push --tags`)
201
+ 8. Build the gem (`gem build next_rails.gemspec`)
202
+ 9. Push the .gem package to Rubygems.org (`gem push next_rails-1.1.0.gem`)
203
+ 10. You are all done!
204
+
143
205
  ## License
144
206
 
145
207
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/exe/bundle_report CHANGED
@@ -16,7 +16,9 @@ at_exit do
16
16
 
17
17
  Examples:
18
18
  #{$0} compatibility --rails-version 5.0
19
+ #{$0} compatibility --ruby-version 3.3
19
20
  #{$0} outdated
21
+ #{$0} outdated --json
20
22
 
21
23
  ruby_check To find a compatible ruby version for the target rails version
22
24
 
@@ -32,10 +34,18 @@ at_exit do
32
34
  options[:rails_version] = rails_version
33
35
  end
34
36
 
37
+ opts.on("--ruby-version [STRING]", "Ruby version to check compatibility against (defaults to 2.3)") do |ruby_version|
38
+ options[:ruby_version] = ruby_version
39
+ end
40
+
35
41
  opts.on("--include-rails-gems", "Include Rails gems in compatibility report (defaults to false)") do
36
42
  options[:include_rails_gems] = true
37
43
  end
38
44
 
45
+ opts.on("--json", "Output JSON in outdated report (defaults to false)") do
46
+ options[:format] = 'json'
47
+ end
48
+
39
49
  opts.on_tail("-h", "--help", "Show this message") do
40
50
  puts opts
41
51
  exit
@@ -54,9 +64,13 @@ at_exit do
54
64
 
55
65
  case report_type
56
66
  when "ruby_check" then NextRails::BundleReport.compatible_ruby_version(rails_version: options.fetch(:rails_version))
57
- when "outdated" then NextRails::BundleReport.outdated
67
+ when "outdated" then NextRails::BundleReport.outdated(options.fetch(:format, nil))
58
68
  else
59
- NextRails::BundleReport.compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
69
+ if options[:ruby_version]
70
+ NextRails::BundleReport.compatibility(ruby_version: options.fetch(:ruby_version, "2.3"))
71
+ else
72
+ NextRails::BundleReport.compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
73
+ end
60
74
  end
61
75
  end
62
76
 
data/exe/deprecations CHANGED
@@ -1,9 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
  require "json"
3
- require "colorize"
3
+ require "rainbow/refinement"
4
4
  require "optparse"
5
5
  require "set"
6
6
 
7
+ using Rainbow
8
+
7
9
  def run_tests(deprecation_warnings, opts = {})
8
10
  tracker_mode = opts[:tracker_mode]
9
11
  next_mode = opts[:next_mode]
@@ -1,6 +1,8 @@
1
- require "colorize"
1
+ require "rainbow/refinement"
2
2
  require "json"
3
3
 
4
+ using Rainbow
5
+
4
6
  # A shitlist for deprecation warnings during test runs. It has two modes: "save" and "compare"
5
7
  #
6
8
  # DEPRECATION_TRACKER=save
@@ -18,12 +20,18 @@ class DeprecationTracker
18
20
  @callbacks ||= []
19
21
  end
20
22
 
21
- def warn(*messages)
23
+ def warn(*messages, uplevel: nil, category: nil)
22
24
  KernelWarnTracker.callbacks.each do |callback|
23
25
  messages.each { |message| callback.(message) }
24
26
  end
25
27
 
26
- super
28
+ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new("2.5.0")
29
+ super(*messages)
30
+ elsif Gem::Version.new(RUBY_VERSION) < Gem::Version.new("3.0")
31
+ super(*messages, uplevel: nil)
32
+ else
33
+ super
34
+ end
27
35
  end
28
36
  end
29
37
 
@@ -47,7 +55,11 @@ class DeprecationTracker
47
55
  end
48
56
 
49
57
  # There are two forms of the `warn` method: one for class Kernel and one for instances of Kernel (i.e., every Object)
50
- Object.prepend(KernelWarnTracker)
58
+ if Object.respond_to?(:prepend)
59
+ Object.prepend(KernelWarnTracker)
60
+ else
61
+ Object.extend(KernelWarnTracker)
62
+ end
51
63
 
52
64
  # Ruby 2.2 and lower doesn't appear to allow overriding of Kernel.warn using `singleton_class.prepend`.
53
65
  if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.3.0")
@@ -198,7 +210,12 @@ class DeprecationTracker
198
210
  hash[bucket] = messages.sort
199
211
  end
200
212
 
201
- normalized.reject {|_key, value| value.empty? }.sort_by {|key, _value| key }.to_h
213
+ # not using `to_h` here to support older ruby versions
214
+ {}.tap do |h|
215
+ normalized.reject {|_key, value| value.empty? }.sort_by {|key, _value| key }.each do |k ,v|
216
+ h[k] = v
217
+ end
218
+ end
202
219
  end
203
220
 
204
221
  def read_shitlist
@@ -0,0 +1,46 @@
1
+ require "rainbow/refinement"
2
+
3
+ class NextRails::BundleReport::RubyVersionCompatibility
4
+ using Rainbow
5
+
6
+ MINIMAL_VERSION = 1.0
7
+ attr_reader :gems, :options
8
+
9
+ def initialize(gems: NextRails::GemInfo.all, options: {})
10
+ @gems = gems
11
+ @options = options
12
+ end
13
+
14
+ def generate
15
+ return invalid_message unless valid?
16
+
17
+ message
18
+ end
19
+
20
+ private
21
+
22
+ def message
23
+ output = "=> Incompatible gems with Ruby #{ruby_version}:".white.bold
24
+ incompatible.each do |gem|
25
+ output += "\n#{gem.name} - required Ruby version: #{gem.gem_specification.required_ruby_version}".magenta
26
+ end
27
+ output += "\n\n#{incompatible.length} incompatible #{incompatible.one? ? 'gem' : 'gems' } with Ruby #{ruby_version}".red
28
+ output
29
+ end
30
+
31
+ def incompatible
32
+ gems.reject { |gem| gem.compatible_with_ruby?(ruby_version) }
33
+ end
34
+
35
+ def ruby_version
36
+ options[:ruby_version].to_f
37
+ end
38
+
39
+ def invalid_message
40
+ "=> Invalid Ruby version: #{options[:ruby_version]}.".red.bold
41
+ end
42
+
43
+ def valid?
44
+ ruby_version > MINIMAL_VERSION
45
+ end
46
+ end
@@ -1,12 +1,18 @@
1
- require "colorize"
1
+ require "rainbow/refinement"
2
2
  require "cgi"
3
3
  require "erb"
4
4
  require "json"
5
5
  require "net/http"
6
6
 
7
+ using Rainbow
8
+
7
9
  module NextRails
8
- class BundleReport
9
- def self.compatibility(rails_version:, include_rails_gems:)
10
+ module BundleReport
11
+ extend self
12
+
13
+ def compatibility(rails_version: nil, ruby_version: nil, include_rails_gems: nil)
14
+ return puts RubyVersionCompatibility.new(options: { ruby_version: ruby_version }).generate if ruby_version
15
+
10
16
  incompatible_gems = NextRails::GemInfo.all.reject do |gem|
11
17
  gem.compatible_with_rails?(rails_version: rails_version) || (!include_rails_gems && gem.from_rails?)
12
18
  end.sort_by { |gem| gem.name }
@@ -15,48 +21,61 @@ module NextRails
15
21
 
16
22
  incompatible_gems_by_state = incompatible_gems.group_by { |gem| gem.state(rails_version) }
17
23
 
18
- template = <<~ERB
19
- <% if incompatible_gems_by_state[:found_compatible] -%>
20
- <%= "=> Incompatible with Rails #{rails_version} (with new versions that are compatible):".white.bold %>
21
- <%= "These gems will need to be upgraded before upgrading to Rails #{rails_version}.".italic %>
22
-
23
- <% incompatible_gems_by_state[:found_compatible].each do |gem| -%>
24
- <%= gem_header(gem) %> - upgrade to <%= gem.latest_compatible_version.version %>
25
- <% end -%>
26
-
27
- <% end -%>
28
- <% if incompatible_gems_by_state[:incompatible] -%>
29
- <%= "=> Incompatible with Rails #{rails_version} (with no new compatible versions):".white.bold %>
30
- <%= "These gems will need to be removed or replaced before upgrading to Rails #{rails_version}.".italic %>
31
-
32
- <% incompatible_gems_by_state[:incompatible].each do |gem| -%>
33
- <%= gem_header(gem) %> - new version, <%= gem.latest_version.version %>, is not compatible with Rails #{rails_version}
34
- <% end -%>
35
-
36
- <% end -%>
37
- <% if incompatible_gems_by_state[:no_new_version] -%>
38
- <%= "=> Incompatible with Rails #{rails_version} (with no new versions):".white.bold %>
39
- <%= "These gems will need to be upgraded by us or removed before upgrading to Rails #{rails_version}.".italic %>
40
- <%= "This list is likely to contain internal gems, like Cuddlefish.".italic %>
41
-
42
- <% incompatible_gems_by_state[:no_new_version].each do |gem| -%>
43
- <%= gem_header(gem) %> - new version not found
44
- <% end -%>
24
+ puts erb_output(incompatible_gems_by_state, incompatible_gems, rails_version)
25
+ end
45
26
 
46
- <% end -%>
47
- <%= incompatible_gems.length.to_s.red %> gems incompatible with Rails <%= rails_version %>
27
+ def erb_output(incompatible_gems_by_state, incompatible_gems, rails_version)
28
+ template = <<-ERB
29
+ <% if incompatible_gems_by_state[:found_compatible] -%>
30
+ <%= "=> Incompatible with Rails #{rails_version} (with new versions that are compatible):".white.bold %>
31
+ <%= "These gems will need to be upgraded before upgrading to Rails #{rails_version}.".italic %>
32
+
33
+ <% incompatible_gems_by_state[:found_compatible].each do |gem| -%>
34
+ <%= gem_header(gem) %> - upgrade to <%= gem.latest_compatible_version.version %>
35
+ <% end -%>
36
+
37
+ <% end -%>
38
+ <% if incompatible_gems_by_state[:incompatible] -%>
39
+ <%= "=> Incompatible with Rails #{rails_version} (with no new compatible versions):".white.bold %>
40
+ <%= "These gems will need to be removed or replaced before upgrading to Rails #{rails_version}.".italic %>
41
+
42
+ <% incompatible_gems_by_state[:incompatible].each do |gem| -%>
43
+ <%= gem_header(gem) %> - new version, <%= gem.latest_version.version %>, is not compatible with Rails #{rails_version}
44
+ <% end -%>
45
+
46
+ <% end -%>
47
+ <% if incompatible_gems_by_state[:no_new_version] -%>
48
+ <%= "=> Incompatible with Rails #{rails_version} (with no new versions):".white.bold %>
49
+ <%= "These gems will need to be upgraded by us or removed before upgrading to Rails #{rails_version}.".italic %>
50
+ <%= "This list is likely to contain internal gems, like Cuddlefish.".italic %>
51
+
52
+ <% incompatible_gems_by_state[:no_new_version].each do |gem| -%>
53
+ <%= gem_header(gem) %> - new version not found
54
+ <% end -%>
55
+
56
+ <% end -%>
57
+ <%= incompatible_gems.length.to_s.red %> gems incompatible with Rails <%= rails_version %>
48
58
  ERB
49
59
 
50
- puts ERB.new(template, nil, "-").result(binding)
60
+ erb_version = ERB.version
61
+ if erb_version =~ /erb.rb \[([\d\.]+) .*\]/
62
+ erb_version = $1
63
+ end
64
+
65
+ if Gem::Version.new(erb_version) < Gem::Version.new("2.2")
66
+ ERB.new(template, nil, "-").result(binding)
67
+ else
68
+ ERB.new(template, trim_mode: "-").result(binding)
69
+ end
51
70
  end
52
71
 
53
- def self.gem_header(_gem)
72
+ def gem_header(_gem)
54
73
  header = "#{_gem.name} #{_gem.version}".bold
55
74
  header << " (loaded from git)".magenta if _gem.sourced_from_git?
56
75
  header
57
76
  end
58
77
 
59
- def self.compatible_ruby_version(rails_version)
78
+ def compatible_ruby_version(rails_version)
60
79
  # find all the versions of rails gem
61
80
  uri = URI('https://rubygems.org/api/v1/versions/rails.json')
62
81
  res = Net::HTTP.get_response(uri)
@@ -95,25 +114,62 @@ module NextRails
95
114
  end
96
115
  end
97
116
 
98
- def self.outdated
117
+ def outdated(format = nil)
99
118
  gems = NextRails::GemInfo.all
100
119
  out_of_date_gems = gems.reject(&:up_to_date?).sort_by(&:created_at)
101
- percentage_out_of_date = ((out_of_date_gems.count / gems.count.to_f) * 100).round
102
120
  sourced_from_git = gems.select(&:sourced_from_git?)
103
121
 
104
- out_of_date_gems.each do |_gem|
105
- header = "#{_gem.name} #{_gem.version}"
122
+ if format == 'json'
123
+ output_to_json(out_of_date_gems, gems.count, sourced_from_git.count)
124
+ else
125
+ output_to_stdout(out_of_date_gems, gems.count, sourced_from_git.count)
126
+ end
127
+ end
128
+
129
+ def output_to_json(out_of_date_gems, total_gem_count, sourced_from_git_count)
130
+ obj = build_json(out_of_date_gems, total_gem_count, sourced_from_git_count)
131
+ puts JSON.pretty_generate(obj)
132
+ end
133
+
134
+ def build_json(out_of_date_gems, total_gem_count, sourced_from_git_count)
135
+ output = Hash.new { [] }
136
+ out_of_date_gems.each do |gem|
137
+ output[:outdated_gems] += [
138
+ {
139
+ name: gem.name,
140
+ installed_version: gem.version,
141
+ installed_age: gem.age,
142
+ latest_version: gem.latest_version.version,
143
+ latest_age: gem.latest_version.age
144
+ }
145
+ ]
146
+ end
147
+
148
+ output.merge(
149
+ {
150
+ sourced_from_git_count: sourced_from_git_count,
151
+ total_gem_count: total_gem_count
152
+ }
153
+ )
154
+ end
155
+
156
+ def output_to_stdout(out_of_date_gems, total_gem_count, sourced_from_git_count)
157
+ out_of_date_gems.each do |gem|
158
+ header = "#{gem.name} #{gem.version}"
106
159
 
107
- puts <<~MESSAGE
108
- #{header.bold.white}: released #{_gem.age} (latest version, #{_gem.latest_version.version}, released #{_gem.latest_version.age})
160
+ puts <<-MESSAGE
161
+ #{header.bold.white}: released #{gem.age} (latest version, #{gem.latest_version.version}, released #{gem.latest_version.age})
109
162
  MESSAGE
110
163
  end
111
164
 
112
- puts ""
113
- puts <<~MESSAGE
114
- #{"#{sourced_from_git.count}".yellow} gems are sourced from git
115
- #{"#{out_of_date_gems.length}".red} of the #{gems.count} gems are out-of-date (#{percentage_out_of_date}%)
165
+ percentage_out_of_date = ((out_of_date_gems.count / total_gem_count.to_f) * 100).round
166
+ footer = <<-MESSAGE
167
+ #{sourced_from_git_count.to_s.yellow} gems are sourced from git
168
+ #{out_of_date_gems.count.to_s.red} of the #{total_gem_count} gems are out-of-date (#{percentage_out_of_date}%)
116
169
  MESSAGE
170
+
171
+ puts ''
172
+ puts footer
117
173
  end
118
174
  end
119
175
  end
@@ -39,6 +39,8 @@ module NextRails
39
39
  "activejob",
40
40
  "activestorage",
41
41
  "activesupport",
42
+ "actionmailbox",
43
+ "actiontext",
42
44
  "railties",
43
45
  ].freeze
44
46
 
@@ -79,7 +81,7 @@ module NextRails
79
81
  def state(rails_version)
80
82
  if compatible_with_rails?(rails_version: rails_version)
81
83
  :compatible
82
- elsif latest_compatible_version.version == "NOT FOUND"
84
+ elsif latest_compatible_version && latest_compatible_version.version == "NOT FOUND"
83
85
  :no_new_version
84
86
  elsif latest_compatible_version
85
87
  :found_compatible
@@ -88,15 +90,24 @@ module NextRails
88
90
  end
89
91
  end
90
92
 
91
- def compatible_with_rails?(rails_version:)
93
+ def latest_version
94
+ latest_gem_specification = Gem.latest_spec_for(name)
95
+ return NullGemInfo.new unless latest_gem_specification
96
+
97
+ GemInfo.new(latest_gem_specification)
98
+ rescue
99
+ NullGemInfo.new
100
+ end
101
+
102
+ def compatible_with_rails?(rails_version: nil)
92
103
  unsatisfied_rails_dependencies(rails_version: rails_version).empty?
93
104
  end
94
105
 
95
- def unsatisfied_rails_dependencies(rails_version:)
106
+ def unsatisfied_rails_dependencies(rails_version: nil)
96
107
  spec_compatible_with_rails?(specification: gem_specification, rails_version: rails_version)
97
108
  end
98
109
 
99
- def find_latest_compatible(rails_version:)
110
+ def find_latest_compatible(rails_version: nil)
100
111
  dependency = Gem::Dependency.new(@name)
101
112
  fetcher = Gem::SpecFetcher.new
102
113
 
@@ -129,12 +140,16 @@ module NextRails
129
140
  end
130
141
  end
131
142
 
132
- def spec_compatible_with_rails?(specification:, rails_version:)
143
+ def spec_compatible_with_rails?(specification: nil, rails_version: nil)
133
144
  rails_dependencies = specification.runtime_dependencies.select {|dependency| RAILS_GEMS.include?(dependency.name) }
134
145
 
135
146
  rails_dependencies.reject do |rails_dependency|
136
147
  rails_dependency.requirement.satisfied_by?(Gem::Version.new(rails_version))
137
148
  end
138
149
  end
150
+
151
+ def compatible_with_ruby?(ruby_version)
152
+ gem_specification.required_ruby_version.satisfied_by?(Gem::Version.new(ruby_version))
153
+ end
139
154
  end
140
155
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module NextRails
2
- VERSION = "1.1.0"
4
+ VERSION = "1.4.0"
3
5
  end
data/lib/next_rails.rb CHANGED
@@ -1,8 +1,28 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "next_rails/gem_info"
2
4
  require "next_rails/version"
3
5
  require "next_rails/bundle_report"
6
+ require "next_rails/bundle_report/ruby_version_compatibility"
4
7
  require "deprecation_tracker"
5
8
 
6
9
  module NextRails
7
- # Your code goes here...
10
+ @@next_bundle_gemfile = nil
11
+
12
+ # This method will check your environment
13
+ # (e.g. `ENV['BUNDLE_GEMFILE]`) to determine whether your application is
14
+ # running with the next set of dependencies or the current set of dependencies.
15
+ #
16
+ # @return [Boolean]
17
+ def self.next?
18
+ return @@next_bundle_gemfile unless @@next_bundle_gemfile.nil?
19
+
20
+ @@next_bundle_gemfile = File.exist?(ENV["BUNDLE_GEMFILE"]) && File.basename(ENV["BUNDLE_GEMFILE"]) == "Gemfile.next"
21
+ end
22
+
23
+ # This method will reset the @@next_bundle_gemfile variable. Then next time
24
+ # you call `NextRails.next?` it will check the environment once again.
25
+ def self.reset_next_bundle_gemfile
26
+ @@next_bundle_gemfile = nil
27
+ end
8
28
  end
data/next_rails.gemspec CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "next_rails/version"
@@ -14,7 +13,7 @@ Gem::Specification.new do |spec|
14
13
  spec.homepage = "https://github.com/fastruby/next_rails"
15
14
  spec.license = "MIT"
16
15
 
17
- spec.required_ruby_version = ">= 2.3.0"
16
+ spec.required_ruby_version = ">= 2.0"
18
17
 
19
18
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
19
  f.match(%r{^(test|spec|features)/})
@@ -23,11 +22,13 @@ Gem::Specification.new do |spec|
23
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
23
  spec.require_paths = ["lib"]
25
24
 
26
- spec.add_dependency "colorize", ">= 0.8.1"
25
+ spec.add_dependency "rainbow", ">= 3"
27
26
  spec.add_development_dependency "bundler", ">= 1.16", "< 3.0"
28
- spec.add_development_dependency "rake", "~> 13.0"
27
+ spec.add_development_dependency "rake"
29
28
  spec.add_development_dependency "rspec", "~> 3.0"
30
29
  spec.add_development_dependency "simplecov", "~> 0.17.1"
31
30
  spec.add_development_dependency "timecop", "~> 0.9.1"
32
- spec.add_development_dependency "webmock"
31
+ spec.add_development_dependency "byebug"
32
+ spec.add_development_dependency "rexml", "3.1.7.3" # limited on purpose, new versions don't work with old rubies
33
+ spec.add_development_dependency "webmock", "3.16.2" # limited on purpose, new versions don't work with old rubies
33
34
  end
@@ -1,9 +1,15 @@
1
- **IMPORTANT**: Please read the README before submitting pull requests for this project. Additionally, if your PR closes any open GitHub issues, make sure you include Closes #XXXX in your comment or use the option on the PR's sidebar to add related issues to auto-close the issue that your PR fixes.
1
+ ## Description
2
+ <!--- Describe your changes in detail -->
2
3
 
3
- - [ ] Add an entry to `CHANGELOG.md` that links to this PR under the "main (unreleased)" heading.
4
+ ## Motivation and Context
5
+ <!--- Why is this change required? What problem does it solve? -->
6
+ <!--- If it fixes an open issue, please link to the issue here. -->
4
7
 
5
- Description:
8
+ ## How Has This Been Tested?
9
+ <!--- Include any relevant details about your testing environment and the steps you followed -->
10
+ <!--- For example: I am using [Safari|Firefox|Chrome] then I visit [the users path] -->
6
11
 
7
- Please include a summary of the change and which issue is fixed or which feature is introduced. If changes to the behavior are made, clearly describe what changes.
12
+ ## Screenshots:
13
+ <!-- Add screenshots (applicable to any UI changes) -->
8
14
 
9
- I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md).
15
+ **I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
metadata CHANGED
@@ -1,30 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: next_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernesto Tagwerker
8
8
  - Luis Sagastume
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-06-30 00:00:00.000000000 Z
12
+ date: 2024-09-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: colorize
15
+ name: rainbow
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 0.8.1
20
+ version: '3'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 0.8.1
27
+ version: '3'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bundler
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -49,16 +49,16 @@ dependencies:
49
49
  name: rake
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '13.0'
54
+ version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '13.0'
61
+ version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -102,7 +102,7 @@ dependencies:
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.9.1
104
104
  - !ruby/object:Gem::Dependency
105
- name: webmock
105
+ name: byebug
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
@@ -115,6 +115,34 @@ dependencies:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
+ - !ruby/object:Gem::Dependency
119
+ name: rexml
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 3.1.7.3
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 3.1.7.3
132
+ - !ruby/object:Gem::Dependency
133
+ name: webmock
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: 3.16.2
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 3.16.2
118
146
  description: A set of handy tools to upgrade your Rails application and keep it up
119
147
  to date
120
148
  email:
@@ -136,10 +164,9 @@ files:
136
164
  - ".github/workflows/main.yml"
137
165
  - ".gitignore"
138
166
  - ".rspec"
139
- - ".travis.yml"
140
167
  - CHANGELOG.md
141
- - CODEOWNERS
142
168
  - CODE_OF_CONDUCT.md
169
+ - CONTRIBUTING.md
143
170
  - Gemfile
144
171
  - LICENSE.txt
145
172
  - README.md
@@ -156,6 +183,7 @@ files:
156
183
  - lib/deprecation_tracker.rb
157
184
  - lib/next_rails.rb
158
185
  - lib/next_rails/bundle_report.rb
186
+ - lib/next_rails/bundle_report/ruby_version_compatibility.rb
159
187
  - lib/next_rails/gem_info.rb
160
188
  - lib/next_rails/version.rb
161
189
  - next_rails.gemspec
@@ -164,7 +192,7 @@ homepage: https://github.com/fastruby/next_rails
164
192
  licenses:
165
193
  - MIT
166
194
  metadata: {}
167
- post_install_message:
195
+ post_install_message:
168
196
  rdoc_options: []
169
197
  require_paths:
170
198
  - lib
@@ -172,15 +200,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
172
200
  requirements:
173
201
  - - ">="
174
202
  - !ruby/object:Gem::Version
175
- version: 2.3.0
203
+ version: '2.0'
176
204
  required_rubygems_version: !ruby/object:Gem::Requirement
177
205
  requirements:
178
206
  - - ">="
179
207
  - !ruby/object:Gem::Version
180
208
  version: '0'
181
209
  requirements: []
182
- rubygems_version: 3.1.6
183
- signing_key:
210
+ rubygems_version: 3.5.9
211
+ signing_key:
184
212
  specification_version: 4
185
213
  summary: A toolkit to upgrade your next Rails application
186
214
  test_files: []
data/.travis.yml DELETED
@@ -1,10 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.3
5
- - 2.4.10
6
- - 2.5.8
7
- - 2.6.6
8
- - 2.7.2
9
- - 3.0.2
10
- before_install: gem install bundler -v 1.16.1
data/CODEOWNERS DELETED
@@ -1,4 +0,0 @@
1
- # These code owners will be the default owners to everything in the repository.
2
- # Unless a posterior rule has precedence, they will be automatically requested
3
- # for review when a pull request is opened.
4
- * @fastruby/black-bunny-brigade