-# Contributing to Black
-
-Welcome! Happy to see you willing to make the project better. Have you
-read the entire [user documentation](http://black.readthedocs.io/en/latest/)
-yet?
+# Contributing to _Black_
+Welcome! Happy to see you willing to make the project better. Have you read the entire
+[user documentation](https://black.readthedocs.io/en/latest/) yet?
## Bird's eye view
-In terms of inspiration, *Black* is about as configurable as *gofmt* and
-*rustfmt* are. This is deliberate.
-
-Bug reports and fixes are always welcome! Please follow the issue
-template on GitHub for best results.
+In terms of inspiration, _Black_ is about as configurable as _gofmt_. This is
+deliberate.
-Before you suggest a new feature or configuration knob, ask yourself why
-you want it. If it enables better integration with some workflow, fixes
-an inconsistency, speeds things up, and so on - go for it! On the other
-hand, if your answer is "because I don't like a particular formatting"
-then you're not ready to embrace *Black* yet. Such changes are unlikely
-to get accepted. You can still try but prepare to be disappointed.
+Bug reports and fixes are always welcome! Please follow the
+[issue template on GitHub](https://github.com/psf/black/issues/new) for best results.
+Before you suggest a new feature or configuration knob, ask yourself why you want it. If
+it enables better integration with some workflow, fixes an inconsistency, speeds things
+up, and so on - go for it! On the other hand, if your answer is "because I don't like a
+particular formatting" then you're not ready to embrace _Black_ yet. Such changes are
+unlikely to get accepted. You can still try but prepare to be disappointed.
## Technicalities
-Development on the latest version of Python is preferred. As of this
-writing it's 3.6.4. You can use any operating system. I am using macOS
-myself and CentOS at work.
+Development on the latest version of Python is preferred. As of this writing it's 3.8.
+You can use any operating system. I am using macOS myself and CentOS at work.
Install all development dependencies using:
+
```
$ pipenv install --dev
+$ pipenv shell
$ pre-commit install
```
-If you haven't used `pipenv` before but are comfortable with virtualenvs,
-just run `pip install pipenv` in the virtualenv you're already using and
-invoke the command above from the cloned Black repo. It will do the
-correct thing.
+
+If you haven't used `pipenv` before but are comfortable with virtualenvs, just run
+`pip install pipenv` in the virtualenv you're already using and invoke the command above
+from the cloned _Black_ repo. It will do the correct thing.
Before submitting pull requests, run tests with:
+
```
$ python setup.py test
```
-
## Hygiene
-If you're fixing a bug, add a test. Run it first to confirm it fails,
-then fix the bug, run it again to confirm it's really fixed.
-
-If adding a new feature, add a test. In fact, always add a test. But
-wait, before adding any large feature, first open an issue for us to
-discuss the idea first.
+If you're fixing a bug, add a test. Run it first to confirm it fails, then fix the bug,
+run it again to confirm it's really fixed.
+If adding a new feature, add a test. In fact, always add a test. But wait, before adding
+any large feature, first open an issue for us to discuss the idea first.
## Finally
-Thanks again for your interest in improving the project! You're taking
-action when most people decide to sit and watch.
+Thanks again for your interest in improving the project! You're taking action when most
+people decide to sit and watch.