Skip to content

Commit 251bc09

Browse files
committed
Extend the versioning documentation
1 parent bd6c945 commit 251bc09

File tree

1 file changed

+54
-5
lines changed

1 file changed

+54
-5
lines changed

manual/versioning.md

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,60 @@
1-
## Versioning
1+
# Versioning
22

3-
RuboCop is stable between major versions, both in terms of API and cops.
3+
!!! Note
44

5-
New cops introduced between major versions are set to a special pending
5+
Some of the information here is forward looking, as RuboCop 1.0 is still not released.
6+
7+
RuboCop is stable between major versions, both in terms of API and cop
8+
configuration.
9+
10+
## Release Policy
11+
12+
We're following http://semver.org/[SemVer] (as much as one can be
13+
following it when the major version is 0). At this point bumps of the
14+
minor (second) version number are considered major releases and always
15+
include new features or significant changes to existing features. API
16+
compatibility between major releases is not a (big) concern (although we try
17+
to break the API rarely and only for a good reason).
18+
19+
The development cycle for the next major
20+
release starts immediately after the previous one has been
21+
shipped. Bugfix/point releases (if any) address only serious bugs and
22+
never contain new features.
23+
24+
Here are a few examples:
25+
26+
* 0.5.0 - Feature release
27+
* 0.5.1 - Bug-fix release
28+
* 0.5.2 - Bug-fix release
29+
* 0.6.0 - Feature release
30+
31+
## Pending Cops
32+
33+
In the early versions of RuboCop a common source of frustration was that
34+
new cops were added to pretty much every release, and as they were enabled
35+
by default, every upgrade resulted in broken CI builds and trying to figure
36+
out what exactly was changed. After considering many options to address
37+
this eventually we opted for an approach that limits these type of changes
38+
to major RuboCop releases.
39+
40+
Now new cops introduced between major versions are set to a special pending
641
status and are not enabled by default. A warning is emitted if such cops
7-
are not explicitly enabled or disabled in the user configuration.
8-
Please set `Enabled` to either `true` or `false` in your `.rubocop.yml` file.
42+
are not explicitly enabled or disabled in the user configuration. Here's
43+
one such message:
44+
45+
```
46+
The following cops were added to RuboCop, but are not configured. Please
47+
set Enabled to either `true` or `false` in your `.rubocop.yml` file:
48+
- Style/HashEachMethods (0.80)
49+
- Style/HashTransformKeys (0.80)
50+
- Style/HashTransformValues (0.80)
51+
For more information: https://docs.rubocop.org/en/latest/versioning/
52+
```
53+
54+
You can see that 3 new cops were added in RuboCop 0.80 and it's up to you
55+
to decide if you want to enable or disable them.
56+
57+
To suppress this message set `Enabled` to either `true` or `false` in your `.rubocop.yml` file.
958

1059
`Style/ANewCop` is an example of a newly added pending cop:
1160

0 commit comments

Comments
 (0)