Skip to content

Commit

Permalink
Document change process (#39)
Browse files Browse the repository at this point in the history
  • Loading branch information
erikkessler1 committed Dec 8, 2020
1 parent b167d31 commit a0f7baa
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,30 @@ This gem also includes a dependency on `rubocop-rspec` that will be updated to
the latest compatible version each time that the MAJOR.MINOR version of `rubocop`
is updated.

## Change Process

This configuration is meant to represent the general opinion of Salsify's Ruby community around best practices for
writing readable Ruby code. As a result, changes to this configuration should go through a discussion phase in the
#rubocop-changes Slack channel to ensure the broader Salsify Ruby community is on board with the change. Non-Salsify
developers should file an issue via GitHub with proposed changes.

When enabling a cop we try to keep the following points in mind to avoid overburdening consumers:

* Does the cop support safe auto-correction? If not, do we expect a large number of offenses needing manual remediation?
* Does the cop help avoid bugs or is it merely stylistic?
* For stylistic cops, does the enforced style reflect that of Salsify developers?

### Updating RuboCop

Updating to a new minor version of `rubocop` may add new "pending" cops which are not enabled until the next major
version (see: [RuboCop Versioning](https://docs.rubocop.org/rubocop/versioning.html)). However, we may wish to eagerly
enable or explicitly disable newly introduced cops. Any such decisions around "pending" cops should go through the
change process described above.

When updating to a new major version or updating other dependencies that don't follow the same versioning pattern, we
should check if there are any newly enabled cops included in the update. Any new cops should go through a review process
in #rubocop-changes to ensure we truly want to enable the cop.

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec salsify_rubocop` to use the gem in this directory, ignoring other installed copies of this gem.
Expand Down

0 comments on commit a0f7baa

Please sign in to comment.