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 +4 -4
- data/.github/ISSUE_TEMPLATE/bug_report.md +21 -35
- data/.github/ISSUE_TEMPLATE/feature_request.md +10 -27
- data/.github/workflows/main.yml +17 -11
- data/CHANGELOG.md +64 -17
- data/CONTRIBUTING.md +60 -0
- data/README.md +65 -3
- data/exe/bundle_report +16 -2
- data/exe/deprecations +3 -1
- data/lib/deprecation_tracker.rb +22 -5
- data/lib/next_rails/bundle_report/ruby_version_compatibility.rb +46 -0
- data/lib/next_rails/bundle_report.rb +101 -45
- data/lib/next_rails/gem_info.rb +20 -5
- data/lib/next_rails/version.rb +3 -1
- data/lib/next_rails.rb +21 -1
- data/next_rails.gemspec +6 -5
- data/pull_request_template.md +11 -5
- metadata +45 -17
- data/.travis.yml +0 -10
- data/CODEOWNERS +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c82f6a12b6cd481313202fce9894ca2690c222d4397a14398f74c4dd0e6d31f
|
4
|
+
data.tar.gz: 546438cf1893b369c1f4c0d05f507a99c96a3dbd939b78b8e3bacbed560f2150
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1330ca26c90f32978737bbf780156458bc8254377addbfdb860c63b1ff697f06a554e640d457bc7c7d1433a3baa7f2cd0115d4860bf451b85d468f8d0501eec
|
7
|
+
data.tar.gz: a5b5da58d00c288258931320c395cbccf1341f4eed15f56b680693f2ef3919d96ec97542a9bc2c3c11e5cf82ee5371f44d64162e9630901a4c702ded146e1415
|
@@ -6,46 +6,32 @@ labels: bug
|
|
6
6
|
assignees: ""
|
7
7
|
---
|
8
8
|
|
9
|
-
|
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
|
-
|
13
|
+
## Expected Behavior
|
14
|
+
<!--- Tell us what should happen -->
|
15
|
+
<!--- For example: When I [do X], it should [produce Y] -->
|
12
16
|
|
13
|
-
|
14
|
-
|
15
|
-
|
17
|
+
## Actual Behavior
|
18
|
+
<!--- Tell us what happens instead -->
|
19
|
+
<!--- For example: When I [did X], it [produced Y] -->
|
16
20
|
|
17
|
-
|
21
|
+
## Possible Fix
|
22
|
+
<!--- Optionally suggest a fix or work around -->
|
18
23
|
|
19
|
-
|
24
|
+
## To Reproduce
|
25
|
+
<!--- Optionally provide a link to a live example -->
|
20
26
|
|
21
|
-
|
27
|
+
<!--- Otherwise, please provide a set of reproduction steps -->
|
28
|
+
1.
|
29
|
+
2.
|
30
|
+
3.
|
31
|
+
4.
|
22
32
|
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
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
|
-
|
13
|
+
## Description
|
14
|
+
<!--- Provide a description of the change or addition you are proposing -->
|
12
15
|
|
13
|
-
|
14
|
-
|
16
|
+
## Possible Implementation
|
17
|
+
<!--- Optionally suggest an idea to implement or a workaround to fix the issue -->
|
15
18
|
|
16
|
-
|
17
|
-
|
18
|
-
|
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)**
|
data/.github/workflows/main.yml
CHANGED
@@ -1,20 +1,26 @@
|
|
1
|
-
name:
|
1
|
+
name: Continuous Integration
|
2
2
|
|
3
|
-
on:
|
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.
|
16
|
+
ruby-version: ["3.3", "3.2", "3.1", "3.0", "2.7", "2.6"]
|
11
17
|
|
12
18
|
steps:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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
|
1
|
+
# main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.4.0...main)
|
2
2
|
|
3
|
-
*
|
3
|
+
* Your changes/patches go here.
|
4
4
|
|
5
|
-
|
5
|
+
# v1.4.0 / 2024-09-24 [(commits)](https://github.com/fastruby/next_rails/compare/v1.3.0...v1.4.0)
|
6
6
|
|
7
|
-
|
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
|
-
|
13
|
+
# v1.3.0 / 2023-06-16 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.4...v1.3.0)
|
10
14
|
|
11
|
-
|
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
|
-
|
18
|
+
# v1.2.4 / 2023-04-21 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.3...v1.2.4)
|
14
19
|
|
15
|
-
|
20
|
+
- [BUGFIX: Update the warn method signature to support for Ruby 3]
|
16
21
|
|
17
|
-
|
22
|
+
# v1.2.3 / 2023-04-12 [(commits)](https://github.com/fastruby/next_rails/compare/v1.2.2...v1.2.3)
|
18
23
|
|
19
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
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
|
-
|
35
|
-
|
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
|
-
|
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
|
-
|
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/
|
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
|
-
|
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 "
|
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]
|
data/lib/deprecation_tracker.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
require "
|
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
|
-
|
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
|
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
|
-
|
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 "
|
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
|
-
|
9
|
-
|
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
|
-
|
19
|
-
|
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
|
-
|
47
|
-
|
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
|
-
|
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
|
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
|
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
|
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
|
-
|
105
|
-
|
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
|
108
|
-
#{header.bold.white}: released #{
|
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
|
-
|
113
|
-
|
114
|
-
#{
|
115
|
-
#{
|
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
|
data/lib/next_rails/gem_info.rb
CHANGED
@@ -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
|
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
|
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
|
data/lib/next_rails/version.rb
CHANGED
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
|
-
|
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.
|
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 "
|
25
|
+
spec.add_dependency "rainbow", ">= 3"
|
27
26
|
spec.add_development_dependency "bundler", ">= 1.16", "< 3.0"
|
28
|
-
spec.add_development_dependency "rake"
|
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 "
|
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
|
data/pull_request_template.md
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
-
|
1
|
+
## Description
|
2
|
+
<!--- Describe your changes in detail -->
|
2
3
|
|
3
|
-
|
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
|
-
|
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
|
-
|
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.
|
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:
|
12
|
+
date: 2024-09-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: rainbow
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
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:
|
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: '
|
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: '
|
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:
|
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.
|
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.
|
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
data/CODEOWNERS
DELETED