next_rails 1.0.4 → 1.2.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 +51 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +40 -0
- data/.github/dependabot.yml +11 -0
- data/.github/workflows/main.yml +26 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +37 -5
- data/CODEOWNERS +4 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/CONTRIBUTING.md +60 -0
- data/README.md +64 -2
- data/exe/bundle_report +7 -0
- data/exe/next.sh +7 -0
- data/exe/next_rails +29 -0
- data/lib/deprecation_tracker.rb +71 -13
- data/lib/next_rails/bundle_report.rb +73 -36
- data/lib/next_rails/gem_info.rb +61 -36
- data/lib/next_rails/version.rb +1 -1
- data/next_rails.gemspec +4 -3
- data/pull_request_template.md +9 -0
- metadata +40 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fdec8942101c58f6081b681319339b6ed5703dd14af0f1d43498afb894bba26
|
4
|
+
data.tar.gz: 32bfa4c31e2d53b9100e4a46a3fbf053ff90b38d15256867b3a5f4b6e4fc0d44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a030398c55b7e09de54ad9607745410c14d1a64e8fa753e32dd0c41b5555640a9af23f31f9f40cb550fb1b11b8c461adf95727e281d6d05250089dd9ee8b509
|
7
|
+
data.tar.gz: 8b7d02f997ca2b7db31ff7e2c131e72df4ccb979979f792ecdefdf0f8500f619fb78a8187f4be712a40503af9bf27bc143678bfa27b95e52594fdc537132b3a0
|
@@ -0,0 +1,51 @@
|
|
1
|
+
---
|
2
|
+
name: Bug report
|
3
|
+
about: Create a report to help us improve
|
4
|
+
title: "[BUG] "
|
5
|
+
labels: bug
|
6
|
+
assignees: ""
|
7
|
+
---
|
8
|
+
|
9
|
+
**IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.**
|
10
|
+
|
11
|
+
**Before we start...:**
|
12
|
+
|
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)
|
16
|
+
|
17
|
+
**Version, Branch, or Commit:**
|
18
|
+
|
19
|
+
What branch/commit/version of "next_rails" you are using?
|
20
|
+
|
21
|
+
**Expected behavior:**
|
22
|
+
|
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.
|
50
|
+
|
51
|
+
**I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
name: Feature request
|
3
|
+
about: Request a new feature
|
4
|
+
title: "[REQUEST]"
|
5
|
+
labels: enhancement
|
6
|
+
assignees: ""
|
7
|
+
---
|
8
|
+
|
9
|
+
**IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.**
|
10
|
+
|
11
|
+
**Before we start...:**
|
12
|
+
|
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
|
15
|
+
|
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.
|
39
|
+
|
40
|
+
**I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md)**
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
3
|
+
# Please see the documentation for all configuration options:
|
4
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
5
|
+
|
6
|
+
version: 2
|
7
|
+
updates:
|
8
|
+
- package-ecosystem: "bundler"
|
9
|
+
directory: "/"
|
10
|
+
schedule:
|
11
|
+
interval: "daily"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Run rake task
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
pull_request:
|
8
|
+
branches:
|
9
|
+
- main
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
test:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby-version: [3.1, 2.7.5, 2.3, 2.2, 2.1.9, 2.0.0]
|
17
|
+
|
18
|
+
steps:
|
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/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,45 @@
|
|
1
|
-
# main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.0
|
1
|
+
# main [(unreleased)](https://github.com/fastruby/next_rails/compare/v1.2.0...main)
|
2
|
+
|
3
|
+
# v1.2.0 / 2022-08-12 [(commits)](https://github.com/fastruby/next_rails/compare/v1.1.0...v1.2.0)
|
4
|
+
|
5
|
+
- [FEATURE: Support Ruby versions as old as Ruby 2.0](https://github.com/fastruby/next_rails/pull/54)
|
6
|
+
|
7
|
+
- [FEATURE: Better documentation for contributing and releasing versions of this gem](https://github.com/fastruby/next_rails/pull/53)
|
8
|
+
|
9
|
+
# v1.1.0 / 2022-06-30 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.5...v1.1.0)
|
10
|
+
|
11
|
+
- [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)
|
12
|
+
|
13
|
+
- [FEATURE: Added option --version to get the version of the gem being used](https://github.com/fastruby/next_rails/pull/38)
|
14
|
+
|
15
|
+
- [Added github action workflow](https://github.com/fastruby/next_rails/pull/40)
|
16
|
+
|
17
|
+
- [FEATURE: Add support to use DeprecationTracker with Minitest](Add support to use DeprecationTracker with Minitest)
|
18
|
+
|
19
|
+
- [FEATURE: Add dependabot](https://github.com/fastruby/next_rails/pull/41)
|
20
|
+
|
21
|
+
- [DOCUMENTATION: Update the code of conduct link in PR template](https://github.com/fastruby/next_rails/pull/46)
|
22
|
+
|
23
|
+
- [DOCUMENTATION: Add FEATURE REQUEST and BUG REPORT templates ](https://github.com/fastruby/next_rails/pull/48)
|
24
|
+
|
25
|
+
- [BUGFIX: Make behavior arguments optional](https://github.com/fastruby/next_rails/pull/44)
|
26
|
+
|
27
|
+
- [FEATURE: Command line option to check for recommended ruby version for the desired Rails version](https://github.com/fastruby/next_rails/pull/39)
|
28
|
+
|
29
|
+
# v1.0.5 / 2022-03-29 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.4...v1.0.5)
|
30
|
+
|
31
|
+
- [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)
|
32
|
+
- [FEATURE: Drop `actionview` dependency because it is not really used](https://github.com/fastruby/next_rails/pull/26)
|
33
|
+
- [BUGFIX: If shitlist path does not exist, create it for the user of the gem](https://github.com/fastruby/next_rails/pull/37)
|
2
34
|
|
3
35
|
# v1.0.4 / 2021-04-09 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.3...v1.0.4)
|
4
36
|
|
5
|
-
|
37
|
+
- [BUGFIX: Fixes issue with `bundle_report` and `actionview`](https://github.com/fastruby/next_rails/pull/22)
|
6
38
|
|
7
39
|
# v1.0.3 / 2021-04-05 [(commits)](https://github.com/fastruby/next_rails/compare/v1.0.2...v1.0.3)
|
8
40
|
|
9
|
-
|
10
|
-
|
41
|
+
- [BUGFIX: Update README.md to better document this `ten_years_rails` fork](https://github.com/fastruby/next_rails/pull/11)
|
42
|
+
- [BUGFIX: Make ActionView an optional dependency](https://github.com/fastruby/next_rails/pull/6)
|
11
43
|
|
12
44
|
# v1.0.2 / 2020-01-20
|
13
45
|
|
@@ -15,4 +47,4 @@
|
|
15
47
|
|
16
48
|
# v1.0.0 / 2019-07-24
|
17
49
|
|
18
|
-
|
50
|
+
- Official Release
|
data/CODEOWNERS
ADDED
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to make participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
9
|
+
level of experience, education, socio-economic status, nationality, personal
|
10
|
+
appearance, race, religion, or sexual identity and orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies within all project spaces, and it also applies when
|
49
|
+
an individual is representing the project or its community in public spaces.
|
50
|
+
Examples of representing a project or community include using an official
|
51
|
+
project e-mail address, posting via an official social media account, or acting
|
52
|
+
as an appointed representative at an online or offline event. Representation of
|
53
|
+
a project may be further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at oss@ombulabs.com. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
72
|
+
|
73
|
+
[homepage]: https://www.contributor-covenant.org
|
74
|
+
|
75
|
+
For answers to common questions about this code of conduct, see
|
76
|
+
https://www.contributor-covenant.org/faq
|
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
@@ -34,6 +34,8 @@ bundle_report outdated | head -n 5
|
|
34
34
|
# Show gems that don't work with Rails 5.2.0
|
35
35
|
bundle_report compatibility --rails-version=5.2.0
|
36
36
|
bundle_report --help
|
37
|
+
# Find minimum compatible ruby version with Rails 7.0.0
|
38
|
+
bundle_report ruby_check --rails-version=7.0.0
|
37
39
|
```
|
38
40
|
|
39
41
|
### Deprecation tracking
|
@@ -54,7 +56,20 @@ RSpec.configure do |config|
|
|
54
56
|
end
|
55
57
|
```
|
56
58
|
|
57
|
-
|
59
|
+
If using minitest, add this somewhere close to the top of your `test_helper.rb`:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
# Tracker deprecation messages in each file
|
63
|
+
if ENV["DEPRECATION_TRACKER"]
|
64
|
+
DeprecationTracker.track_minitest(
|
65
|
+
shitlist_path: "test/support/deprecation_warning.shitlist.json",
|
66
|
+
mode: ENV["DEPRECATION_TRACKER"],
|
67
|
+
transform_message: -> (message) { message.gsub("#{Rails.root}/", "") }
|
68
|
+
)
|
69
|
+
end
|
70
|
+
```
|
71
|
+
|
72
|
+
> Keep in mind this is currently not compatible with the `minitest/parallel_fork` gem!
|
58
73
|
|
59
74
|
Once you have that, you can start using deprecation tracking in your tests:
|
60
75
|
|
@@ -78,12 +93,21 @@ deprecations --help # For more options and examples
|
|
78
93
|
|
79
94
|
Right now, the path to the shitlist is hardcoded so make sure you store yours at `spec/support/deprecations.shitlist.json`.
|
80
95
|
|
96
|
+
#### `next_rails` command
|
97
|
+
|
98
|
+
You can use `next_rails` to fetch the version of the gem installed.
|
99
|
+
|
100
|
+
```bash
|
101
|
+
next_rails --version
|
102
|
+
next_rails --help # For more options and examples
|
103
|
+
```
|
104
|
+
|
81
105
|
### Dual-boot Rails next
|
82
106
|
|
83
107
|
This command helps you dual-boot your application.
|
84
108
|
|
85
109
|
```bash
|
86
|
-
next --init # Create Gemfile.next
|
110
|
+
next --init # Create Gemfile.next and Gemfile.next.lock
|
87
111
|
vim Gemfile # Tweak your dependencies conditionally using `next?`
|
88
112
|
next bundle install # Install new gems
|
89
113
|
next rails s # Start server using Gemfile.next
|
@@ -105,6 +129,44 @@ Or install it yourself as:
|
|
105
129
|
|
106
130
|
$ gem install next_rails
|
107
131
|
|
132
|
+
## Setup
|
133
|
+
|
134
|
+
Execute:
|
135
|
+
|
136
|
+
$ next --init
|
137
|
+
|
138
|
+
Init will create a Gemfile.next and an initialized Gemfile.next.lock.
|
139
|
+
The Gemfile.next.lock is initialized with the contents of your existing
|
140
|
+
Gemfile.lock lock file. We initialize the Gemfile.next.lock to prevent
|
141
|
+
major version jumps when running the next version of Rails.
|
142
|
+
|
143
|
+
## Contributing
|
144
|
+
|
145
|
+
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`?
|
146
|
+
|
147
|
+
Take a look at the [Contributing document](CONTRIBUTING.md) for instructions to set up the repo on your machine!
|
148
|
+
|
149
|
+
## Releases
|
150
|
+
|
151
|
+
`next_rails` adheres to [semver](https://semver.org). So given a version number MAJOR.MINOR.PATCH, we will increment the:
|
152
|
+
|
153
|
+
1. MAJOR version when you make incompatible API changes,
|
154
|
+
2. MINOR version when you add functionality in a backwards compatible manner, and
|
155
|
+
3. PATCH version when you make backwards compatible bug fixes.
|
156
|
+
|
157
|
+
Here are the steps to release a new version:
|
158
|
+
|
159
|
+
1. Update the `version.rb` file with the proper version number
|
160
|
+
2. Update `CHANGELOG.md` to have the right headers
|
161
|
+
3. Commit your changes to a `release/v-1-1-0` branch
|
162
|
+
4. Push your changes and submit a pull request
|
163
|
+
5. Merge your pull request to the `main` branch
|
164
|
+
6. Git tag the latest version of the `main` branch (`git tag v1.1.0`)
|
165
|
+
7. Push tags to GitHub (`git push --tags`)
|
166
|
+
8. Build the gem (`gem build next_rails.gemspec`)
|
167
|
+
9. Push the .gem package to Rubygems.org (`gem push next_rails-1.1.0.gem`)
|
168
|
+
10. You are all done!
|
169
|
+
|
108
170
|
## License
|
109
171
|
|
110
172
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/exe/bundle_report
CHANGED
@@ -17,6 +17,12 @@ at_exit do
|
|
17
17
|
Examples:
|
18
18
|
#{$0} compatibility --rails-version 5.0
|
19
19
|
#{$0} outdated
|
20
|
+
|
21
|
+
ruby_check To find a compatible ruby version for the target rails version
|
22
|
+
|
23
|
+
Examples:
|
24
|
+
#{$0} ruby_check --rails-version 7.0.0
|
25
|
+
|
20
26
|
EOS
|
21
27
|
|
22
28
|
opts.separator ""
|
@@ -47,6 +53,7 @@ at_exit do
|
|
47
53
|
report_type = ARGV.first
|
48
54
|
|
49
55
|
case report_type
|
56
|
+
when "ruby_check" then NextRails::BundleReport.compatible_ruby_version(rails_version: options.fetch(:rails_version))
|
50
57
|
when "outdated" then NextRails::BundleReport.outdated
|
51
58
|
else
|
52
59
|
NextRails::BundleReport.compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
|
data/exe/next.sh
CHANGED
@@ -10,6 +10,13 @@ STRING
|
|
10
10
|
mv Gemfile.tmp Gemfile
|
11
11
|
|
12
12
|
ln -s Gemfile Gemfile.next
|
13
|
+
|
14
|
+
# Initialize the Gemfile.next.lock
|
15
|
+
# Prevents major version jumps when we start without a Gemfile.next.lock
|
16
|
+
if [ -f "Gemfile.lock" ] && [ ! -f "Gemfile.next.lock" ]; then
|
17
|
+
cp Gemfile.lock Gemfile.next.lock
|
18
|
+
fi
|
19
|
+
|
13
20
|
echo <<-MESSAGE
|
14
21
|
Created Gemfile.next (a symlink to your Gemfile). Your Gemfile has been modified to support dual-booting!
|
15
22
|
|
data/exe/next_rails
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "optparse"
|
3
|
+
require "next_rails/version"
|
4
|
+
|
5
|
+
options = {}
|
6
|
+
option_parser = OptionParser.new do |opts|
|
7
|
+
opts.banner = <<-MESSAGE
|
8
|
+
Usage: #{__FILE__.to_s} [options]
|
9
|
+
|
10
|
+
Examples:
|
11
|
+
bin/next_rails --version info # Show the version of the gem installed
|
12
|
+
MESSAGE
|
13
|
+
|
14
|
+
opts.on("--version", "show version of the gem") do
|
15
|
+
options[:version] = true
|
16
|
+
end
|
17
|
+
|
18
|
+
opts.on_tail("-h", "--help", "Prints this help") do
|
19
|
+
puts opts
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
option_parser.parse!
|
25
|
+
|
26
|
+
if options.fetch(:version, false)
|
27
|
+
puts NextRails::VERSION
|
28
|
+
exit 2
|
29
|
+
end
|
data/lib/deprecation_tracker.rb
CHANGED
@@ -27,8 +27,31 @@ class DeprecationTracker
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
module MinitestExtension
|
31
|
+
def self.new(deprecation_tracker)
|
32
|
+
@@deprecation_tracker = deprecation_tracker
|
33
|
+
|
34
|
+
Module.new do
|
35
|
+
def before_setup
|
36
|
+
test_file_name = method(name).source_location.first.to_s
|
37
|
+
@@deprecation_tracker.bucket = test_file_name.gsub(Rails.root.to_s, ".")
|
38
|
+
super
|
39
|
+
end
|
40
|
+
|
41
|
+
def after_teardown
|
42
|
+
super
|
43
|
+
@@deprecation_tracker.bucket = nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
30
49
|
# There are two forms of the `warn` method: one for class Kernel and one for instances of Kernel (i.e., every Object)
|
31
|
-
Object.prepend
|
50
|
+
if Object.respond_to?(:prepend)
|
51
|
+
Object.prepend(KernelWarnTracker)
|
52
|
+
else
|
53
|
+
Object.extend(KernelWarnTracker)
|
54
|
+
end
|
32
55
|
|
33
56
|
# Ruby 2.2 and lower doesn't appear to allow overriding of Kernel.warn using `singleton_class.prepend`.
|
34
57
|
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.3.0")
|
@@ -39,16 +62,24 @@ class DeprecationTracker
|
|
39
62
|
end
|
40
63
|
end
|
41
64
|
|
42
|
-
def self.
|
65
|
+
def self.init_tracker(opts = {})
|
43
66
|
shitlist_path = opts[:shitlist_path]
|
44
67
|
mode = opts[:mode]
|
45
68
|
transform_message = opts[:transform_message]
|
46
|
-
deprecation_tracker = DeprecationTracker.new(shitlist_path, transform_message)
|
69
|
+
deprecation_tracker = DeprecationTracker.new(shitlist_path, transform_message, mode)
|
47
70
|
if defined?(ActiveSupport)
|
48
|
-
ActiveSupport::Deprecation.behavior << -> (message, _callstack, _deprecation_horizon, _gem_name
|
71
|
+
ActiveSupport::Deprecation.behavior << -> (message, _callstack = nil, _deprecation_horizon = nil, _gem_name = nil) {
|
72
|
+
deprecation_tracker.add(message)
|
73
|
+
}
|
49
74
|
end
|
50
75
|
KernelWarnTracker.callbacks << -> (message) { deprecation_tracker.add(message) }
|
51
76
|
|
77
|
+
deprecation_tracker
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.track_rspec(rspec_config, opts = {})
|
81
|
+
deprecation_tracker = init_tracker(opts)
|
82
|
+
|
52
83
|
rspec_config.around do |example|
|
53
84
|
deprecation_tracker.bucket = example.metadata.fetch(:rerun_file_path)
|
54
85
|
|
@@ -60,21 +91,27 @@ class DeprecationTracker
|
|
60
91
|
end
|
61
92
|
|
62
93
|
rspec_config.after(:suite) do
|
63
|
-
|
64
|
-
deprecation_tracker.save
|
65
|
-
elsif mode == "compare"
|
66
|
-
deprecation_tracker.compare
|
67
|
-
end
|
94
|
+
deprecation_tracker.after_run
|
68
95
|
end
|
69
96
|
end
|
70
97
|
|
71
|
-
|
72
|
-
|
98
|
+
def self.track_minitest(opts = {})
|
99
|
+
tracker = init_tracker(opts)
|
73
100
|
|
74
|
-
|
101
|
+
Minitest.after_run do
|
102
|
+
tracker.after_run
|
103
|
+
end
|
104
|
+
|
105
|
+
ActiveSupport::TestCase.include(MinitestExtension.new(tracker))
|
106
|
+
end
|
107
|
+
|
108
|
+
attr_reader :deprecation_messages, :shitlist_path, :transform_message, :bucket, :mode
|
109
|
+
|
110
|
+
def initialize(shitlist_path, transform_message = nil, mode = :save)
|
75
111
|
@shitlist_path = shitlist_path
|
76
112
|
@transform_message = transform_message || -> (message) { message }
|
77
113
|
@deprecation_messages = {}
|
114
|
+
@mode = mode.to_sym
|
78
115
|
end
|
79
116
|
|
80
117
|
def add(message)
|
@@ -88,6 +125,14 @@ class DeprecationTracker
|
|
88
125
|
@deprecation_messages[value] ||= [] unless value.nil?
|
89
126
|
end
|
90
127
|
|
128
|
+
def after_run
|
129
|
+
if mode == :save
|
130
|
+
save
|
131
|
+
elsif mode == :compare
|
132
|
+
compare
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
91
136
|
def compare
|
92
137
|
shitlist = read_shitlist
|
93
138
|
|
@@ -130,11 +175,19 @@ class DeprecationTracker
|
|
130
175
|
|
131
176
|
def save
|
132
177
|
new_shitlist = create_temp_shitlist
|
178
|
+
create_if_shitlist_path_does_not_exist
|
133
179
|
FileUtils.cp(new_shitlist.path, shitlist_path)
|
134
180
|
ensure
|
135
181
|
new_shitlist.delete if new_shitlist
|
136
182
|
end
|
137
183
|
|
184
|
+
def create_if_shitlist_path_does_not_exist
|
185
|
+
dirname = File.dirname(shitlist_path)
|
186
|
+
unless File.directory?(dirname)
|
187
|
+
FileUtils.mkdir_p(dirname)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
138
191
|
def create_temp_shitlist
|
139
192
|
temp_file = Tempfile.new("temp-deprecation-tracker-shitlist")
|
140
193
|
temp_file.write(JSON.pretty_generate(normalized_deprecation_messages))
|
@@ -149,7 +202,12 @@ class DeprecationTracker
|
|
149
202
|
hash[bucket] = messages.sort
|
150
203
|
end
|
151
204
|
|
152
|
-
|
205
|
+
# not using `to_h` here to support older ruby versions
|
206
|
+
{}.tap do |h|
|
207
|
+
normalized.reject {|_key, value| value.empty? }.sort_by {|key, _value| key }.each do |k ,v|
|
208
|
+
h[k] = v
|
209
|
+
end
|
210
|
+
end
|
153
211
|
end
|
154
212
|
|
155
213
|
def read_shitlist
|
@@ -2,51 +2,49 @@ require "colorize"
|
|
2
2
|
require "cgi"
|
3
3
|
require "erb"
|
4
4
|
require "json"
|
5
|
+
require "net/http"
|
5
6
|
|
6
7
|
module NextRails
|
7
8
|
class BundleReport
|
8
|
-
def self.compatibility(rails_version
|
9
|
+
def self.compatibility(rails_version: nil, include_rails_gems: nil)
|
9
10
|
incompatible_gems = NextRails::GemInfo.all.reject do |gem|
|
10
11
|
gem.compatible_with_rails?(rails_version: rails_version) || (!include_rails_gems && gem.from_rails?)
|
11
|
-
end.sort_by
|
12
|
-
|
13
|
-
|
14
|
-
gem.name
|
15
|
-
].join("-")
|
16
|
-
end
|
12
|
+
end.sort_by { |gem| gem.name }
|
13
|
+
|
14
|
+
incompatible_gems.each { |gem| gem.find_latest_compatible(rails_version: rails_version) }
|
17
15
|
|
18
16
|
incompatible_gems_by_state = incompatible_gems.group_by { |gem| gem.state(rails_version) }
|
19
17
|
|
20
|
-
template =
|
21
|
-
|
22
|
-
|
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 %>
|
24
22
|
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
<% incompatible_gems_by_state[:found_compatible].each do |gem| -%>
|
24
|
+
<%= gem_header(gem) %> - upgrade to <%= gem.latest_compatible_version.version %>
|
25
|
+
<% end -%>
|
28
26
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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 %>
|
33
31
|
|
34
|
-
|
35
|
-
|
36
|
-
|
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 -%>
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
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 %>
|
43
41
|
|
44
|
-
|
45
|
-
|
46
|
-
|
42
|
+
<% incompatible_gems_by_state[:no_new_version].each do |gem| -%>
|
43
|
+
<%= gem_header(gem) %> - new version not found
|
44
|
+
<% end -%>
|
47
45
|
|
48
|
-
|
49
|
-
|
46
|
+
<% end -%>
|
47
|
+
<%= incompatible_gems.length.to_s.red %> gems incompatible with Rails <%= rails_version %>
|
50
48
|
ERB
|
51
49
|
|
52
50
|
puts ERB.new(template, nil, "-").result(binding)
|
@@ -58,6 +56,45 @@ module NextRails
|
|
58
56
|
header
|
59
57
|
end
|
60
58
|
|
59
|
+
def self.compatible_ruby_version(rails_version)
|
60
|
+
# find all the versions of rails gem
|
61
|
+
uri = URI('https://rubygems.org/api/v1/versions/rails.json')
|
62
|
+
res = Net::HTTP.get_response(uri)
|
63
|
+
all_versions_res = JSON.parse(res.body)
|
64
|
+
|
65
|
+
# push all the versions in an array
|
66
|
+
all_versions = []
|
67
|
+
all_versions_res.each { |rv| all_versions << rv['number'] }
|
68
|
+
|
69
|
+
rv = rails_version[:rails_version]
|
70
|
+
matched_versions = all_versions.select { |h| h.start_with?(rv) }
|
71
|
+
|
72
|
+
# the list can either have the exact version or the latest version in the series of versions
|
73
|
+
# you are looking at
|
74
|
+
# ex: matched_versions = ["6.1.4.2", "6.1.4.1", "6.1.4"]
|
75
|
+
# if you have passed "6.1.4" and the list has the exact version, it will match and send
|
76
|
+
# the ruby version for it bu tif you had passed "6.1", then it will look for the
|
77
|
+
# latest version matching "6.1" which is "6.1.4.2" in this case and will return ruby
|
78
|
+
# version for it.
|
79
|
+
exact_version = matched_versions.include?(rv) ? rv : matched_versions[0]
|
80
|
+
|
81
|
+
if exact_version
|
82
|
+
uri = URI("https://rubygems.org/api/v2/rubygems/rails/versions/#{exact_version}.json")
|
83
|
+
res = Net::HTTP.get_response(uri)
|
84
|
+
ruby_version = JSON.parse(res.body)["ruby_version"]
|
85
|
+
else
|
86
|
+
ruby_version = nil
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
if ruby_version
|
91
|
+
puts "The required ruby version is #{ruby_version} for matched rails version #{exact_version}"
|
92
|
+
ruby_version
|
93
|
+
else
|
94
|
+
puts "Could not find a compatible ruby version"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
61
98
|
def self.outdated
|
62
99
|
gems = NextRails::GemInfo.all
|
63
100
|
out_of_date_gems = gems.reject(&:up_to_date?).sort_by(&:created_at)
|
@@ -67,15 +104,15 @@ module NextRails
|
|
67
104
|
out_of_date_gems.each do |_gem|
|
68
105
|
header = "#{_gem.name} #{_gem.version}"
|
69
106
|
|
70
|
-
puts
|
71
|
-
|
107
|
+
puts <<-MESSAGE
|
108
|
+
#{header.bold.white}: released #{_gem.age} (latest version, #{_gem.latest_version.version}, released #{_gem.latest_version.age})
|
72
109
|
MESSAGE
|
73
110
|
end
|
74
111
|
|
75
112
|
puts ""
|
76
|
-
puts
|
77
|
-
|
78
|
-
|
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}%)
|
79
116
|
MESSAGE
|
80
117
|
end
|
81
118
|
end
|
data/lib/next_rails/gem_info.rb
CHANGED
@@ -28,13 +28,28 @@ module NextRails
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
RAILS_GEMS = [
|
32
|
+
"rails",
|
33
|
+
"activemodel",
|
34
|
+
"activerecord",
|
35
|
+
"actionmailer",
|
36
|
+
"actioncable",
|
37
|
+
"actionpack",
|
38
|
+
"actionview",
|
39
|
+
"activejob",
|
40
|
+
"activestorage",
|
41
|
+
"activesupport",
|
42
|
+
"railties",
|
43
|
+
].freeze
|
44
|
+
|
31
45
|
def self.all
|
32
46
|
Gem::Specification.each.map do |gem_specification|
|
33
47
|
new(gem_specification)
|
34
48
|
end
|
35
49
|
end
|
36
50
|
|
37
|
-
attr_reader :gem_specification, :version, :name
|
51
|
+
attr_reader :gem_specification, :version, :name, :latest_compatible_version
|
52
|
+
|
38
53
|
def initialize(gem_specification)
|
39
54
|
@gem_specification = gem_specification
|
40
55
|
@version = gem_specification.version
|
@@ -57,59 +72,69 @@ module NextRails
|
|
57
72
|
version == latest_version.version
|
58
73
|
end
|
59
74
|
|
75
|
+
def from_rails?
|
76
|
+
RAILS_GEMS.include?(name)
|
77
|
+
end
|
78
|
+
|
60
79
|
def state(rails_version)
|
61
80
|
if compatible_with_rails?(rails_version: rails_version)
|
62
81
|
:compatible
|
63
|
-
elsif
|
64
|
-
:latest_compatible
|
65
|
-
elsif latest_version.version == "NOT FOUND"
|
82
|
+
elsif latest_compatible_version.version == "NOT FOUND"
|
66
83
|
:no_new_version
|
84
|
+
elsif latest_compatible_version
|
85
|
+
:found_compatible
|
67
86
|
else
|
68
87
|
:incompatible
|
69
88
|
end
|
70
89
|
end
|
71
90
|
|
72
|
-
def
|
73
|
-
|
74
|
-
latest_gem_specification = Gem.latest_spec_for(name)
|
75
|
-
if latest_gem_specification
|
76
|
-
GemInfo.new(latest_gem_specification)
|
77
|
-
else
|
78
|
-
NullGemInfo.new
|
79
|
-
end
|
80
|
-
end
|
91
|
+
def compatible_with_rails?(rails_version: nil)
|
92
|
+
unsatisfied_rails_dependencies(rails_version: rails_version).empty?
|
81
93
|
end
|
82
94
|
|
83
|
-
def
|
84
|
-
|
95
|
+
def unsatisfied_rails_dependencies(rails_version: nil)
|
96
|
+
spec_compatible_with_rails?(specification: gem_specification, rails_version: rails_version)
|
85
97
|
end
|
86
98
|
|
87
|
-
def
|
88
|
-
|
99
|
+
def find_latest_compatible(rails_version: nil)
|
100
|
+
dependency = Gem::Dependency.new(@name)
|
101
|
+
fetcher = Gem::SpecFetcher.new
|
89
102
|
|
90
|
-
|
91
|
-
|
103
|
+
# list all available data for released gems
|
104
|
+
list, errors = fetcher.available_specs(:released)
|
105
|
+
|
106
|
+
specs = []
|
107
|
+
# filter only specs for the current gem and older versions
|
108
|
+
list.each do |source, gem_tuples|
|
109
|
+
gem_tuples.each do |gem_tuple|
|
110
|
+
if gem_tuple.name == @name && gem_tuple.version > @version
|
111
|
+
specs << source.fetch_spec(gem_tuple)
|
112
|
+
end
|
113
|
+
end
|
92
114
|
end
|
93
|
-
end
|
94
115
|
|
95
|
-
|
96
|
-
|
116
|
+
# if nothing is found, consider gem incompatible
|
117
|
+
if specs.empty?
|
118
|
+
@latest_compatible_version = NullGemInfo.new
|
119
|
+
return
|
120
|
+
end
|
121
|
+
|
122
|
+
# if specs are found, look for the first one from that is compatible
|
123
|
+
# with the desired rails version starting from the end
|
124
|
+
specs.reverse.each do |spec|
|
125
|
+
if spec_compatible_with_rails?(specification: spec, rails_version: rails_version).empty?
|
126
|
+
@latest_compatible_version = spec
|
127
|
+
break
|
128
|
+
end
|
129
|
+
end
|
97
130
|
end
|
98
131
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
"actioncable",
|
106
|
-
"actionpack",
|
107
|
-
"actionview",
|
108
|
-
"activejob",
|
109
|
-
"activestorage",
|
110
|
-
"activesupport",
|
111
|
-
"railties",
|
112
|
-
]
|
132
|
+
def spec_compatible_with_rails?(specification: nil, rails_version: nil)
|
133
|
+
rails_dependencies = specification.runtime_dependencies.select {|dependency| RAILS_GEMS.include?(dependency.name) }
|
134
|
+
|
135
|
+
rails_dependencies.reject do |rails_dependency|
|
136
|
+
rails_dependency.requirement.satisfied_by?(Gem::Version.new(rails_version))
|
137
|
+
end
|
113
138
|
end
|
114
139
|
end
|
115
140
|
end
|
data/lib/next_rails/version.rb
CHANGED
data/next_rails.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.homepage = "https://github.com/fastruby/next_rails"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
-
spec.required_ruby_version = ">= 2.
|
17
|
+
spec.required_ruby_version = ">= 2.0"
|
18
18
|
|
19
19
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
20
|
f.match(%r{^(test|spec|features)/})
|
@@ -25,9 +25,10 @@ Gem::Specification.new do |spec|
|
|
25
25
|
|
26
26
|
spec.add_dependency "colorize", ">= 0.8.1"
|
27
27
|
spec.add_development_dependency "bundler", ">= 1.16", "< 3.0"
|
28
|
-
spec.add_development_dependency "rake"
|
28
|
+
spec.add_development_dependency "rake"
|
29
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
30
|
spec.add_development_dependency "simplecov", "~> 0.17.1"
|
31
31
|
spec.add_development_dependency "timecop", "~> 0.9.1"
|
32
|
-
spec.add_development_dependency "
|
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.14.0" # limited on purpose, new versions don't work with old rubies
|
33
34
|
end
|
@@ -0,0 +1,9 @@
|
|
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.
|
2
|
+
|
3
|
+
- [ ] Add an entry to `CHANGELOG.md` that links to this PR under the "main (unreleased)" heading.
|
4
|
+
|
5
|
+
Description:
|
6
|
+
|
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.
|
8
|
+
|
9
|
+
I will abide by the [code of conduct](https://github.com/fastruby/next_rails/blob/main/CODE_OF_CONDUCT.md).
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: next_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.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: 2022-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: colorize
|
@@ -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,19 +102,33 @@ dependencies:
|
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 0.9.1
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
105
|
+
name: rexml
|
106
106
|
requirement: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 3.1.7.3
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 3.1.7.3
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: webmock
|
120
|
+
requirement: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.14.0
|
125
|
+
type: :development
|
126
|
+
prerelease: false
|
127
|
+
version_requirements: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '='
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
131
|
+
version: 3.14.0
|
118
132
|
description: A set of handy tools to upgrade your Rails application and keep it up
|
119
133
|
to date
|
120
134
|
email:
|
@@ -126,13 +140,21 @@ executables:
|
|
126
140
|
- gem-next-diff
|
127
141
|
- next
|
128
142
|
- next.sh
|
143
|
+
- next_rails
|
129
144
|
extensions: []
|
130
145
|
extra_rdoc_files: []
|
131
146
|
files:
|
147
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
148
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
149
|
+
- ".github/dependabot.yml"
|
150
|
+
- ".github/workflows/main.yml"
|
132
151
|
- ".gitignore"
|
133
152
|
- ".rspec"
|
134
153
|
- ".travis.yml"
|
135
154
|
- CHANGELOG.md
|
155
|
+
- CODEOWNERS
|
156
|
+
- CODE_OF_CONDUCT.md
|
157
|
+
- CONTRIBUTING.md
|
136
158
|
- Gemfile
|
137
159
|
- LICENSE.txt
|
138
160
|
- README.md
|
@@ -145,17 +167,19 @@ files:
|
|
145
167
|
- exe/gem-next-diff
|
146
168
|
- exe/next
|
147
169
|
- exe/next.sh
|
170
|
+
- exe/next_rails
|
148
171
|
- lib/deprecation_tracker.rb
|
149
172
|
- lib/next_rails.rb
|
150
173
|
- lib/next_rails/bundle_report.rb
|
151
174
|
- lib/next_rails/gem_info.rb
|
152
175
|
- lib/next_rails/version.rb
|
153
176
|
- next_rails.gemspec
|
177
|
+
- pull_request_template.md
|
154
178
|
homepage: https://github.com/fastruby/next_rails
|
155
179
|
licenses:
|
156
180
|
- MIT
|
157
181
|
metadata: {}
|
158
|
-
post_install_message:
|
182
|
+
post_install_message:
|
159
183
|
rdoc_options: []
|
160
184
|
require_paths:
|
161
185
|
- lib
|
@@ -163,15 +187,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
187
|
requirements:
|
164
188
|
- - ">="
|
165
189
|
- !ruby/object:Gem::Version
|
166
|
-
version: 2.
|
190
|
+
version: '2.0'
|
167
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
192
|
requirements:
|
169
193
|
- - ">="
|
170
194
|
- !ruby/object:Gem::Version
|
171
195
|
version: '0'
|
172
196
|
requirements: []
|
173
|
-
rubygems_version: 3.1.
|
174
|
-
signing_key:
|
197
|
+
rubygems_version: 3.1.6
|
198
|
+
signing_key:
|
175
199
|
specification_version: 4
|
176
200
|
summary: A toolkit to upgrade your next Rails application
|
177
201
|
test_files: []
|