Contributing

Issues

Report issues and suggest features and improvements on the GitHub issue tracker.

If you want to file an issue (bug report or feature request), please provide all the necessary info listed in our issue reporting template (it’s loaded automatically when you create a new GitHub issue).

Please, don’t ask support-like questions on the issue tracker (e.g. "How can I configure RuboCop to do X?" - use the support channels instead.

Patches

Patches in any form are always welcome! GitHub pull requests are even better! :-)

Before submitting a patch or a pull request make sure all tests are passing and that your patch is in line with the contribution guidelines.

A handy way to test only the files that you have modified in the last commit (with rspec and rubocop) is to use rake check_commit.

Also see the Development section.

Documentation

Good documentation is just as important as good code. Please, help us improve RuboCop’s documentation.

You should also check out the cop documentation section of the docs and consider adding or improving Cop descriptions.

Working on the Docs

The manual is generated from the AsciiDoc files in the docs folder of RuboCop’s GitHub repo and is published to https://docs.rubocop.org. Antora is used to convert the manual into HTML. The filesystem layout is described at https://docs.antora.org/antora/2.0/component-structure/.

To make changes to the manual you simply have to change the files under doc. The manual will be regenerated manually periodically.

Installing Antora

The instructions here assume you already have (the right version of) node.js installed.

Installing the Antora is super simple:

$ npm i -g @antora/cli@2.0 @antora/site-generator-default@2.0

Check out the detailed installation instructions if you run into any problems.

Building the Site

You can build the documentation locally from the docs.rubocop.org repo.

$ cd docs.rubocop.org
$ antora --pull antora-playbook.yml

After you’re done with the initial setup you can use the deploy script to push changes to the site:

./deploy
You’ll need commit access to the repository for this to work.

To check the generated site you can simply open docs/index.html in your favourite browser.

If you want to make changes to the manual’s page structure you’ll have to edit nav.adoc.

Funding

While RuboCop is free software and will always be, the project would benefit immensely from some funding. Raising a monthly budget of a couple of thousand dollars would make it possible to pay people to work on certain complex features, fund other development related stuff (e.g. hardware, conference trips) and so on. Raising a monthly budget of over $5000 would open the possibility of someone working full-time on the project which would speed up the pace of development significantly.

We welcome both individual and corporate sponsors! We also offer a wide array of funding channels to account for your preferences (although currently Open Collective is our preferred funding platform).

If you’re working in a company that’s making significant use of RuboCop we’d appreciate it if you suggest to your company to become a RuboCop sponsor.

You can support the development of RuboCop via GitHub Sponsors, Patreon, PayPal, and Open Collective.