Development on the latest version of Python is preferred. As of this writing it's 3.9.
You can use any operating system.
-Install all development dependencies using:
+Install development dependencies inside a virtual environment of your choice, for
+example:
```console
-$ 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.
-
-Non pipenv install works too:
-
-```console
-$ pip install -r test_requirements
-$ pip install -e .[d]
+$ python3 -m venv .venv
+$ source .venv/bin/activate
+(.venv)$ pip install -r test_requirements.txt
+(.venv)$ pip install -e .[d]
+(.venv)$ pre-commit install
```
Before submitting pull requests, run lints and tests with the following commands from
```console
# Linting
-$ pre-commit run -a
+(.venv)$ pre-commit run -a
# Unit tests
-$ tox -e py
+(.venv)$ tox -e py
# Optional Fuzz testing
-$ tox -e fuzz
+(.venv)$ tox -e fuzz
# Optional CI run to test your changes on many popular python projects
-$ black-primer [-k -w /tmp/black_test_repos]
+(.venv)$ black-primer [-k -w /tmp/black_test_repos]
```
### News / Changelog Requirement
If a change would affect the advertised code style, please modify the documentation (The
_Black_ code style) to reflect that change. Patches that fix unintended bugs in
-formatting don't need to be mentioned separately though.
+formatting don't need to be mentioned separately though. If the change is implemented
+with the `--preview` flag, please include the change in the future style document
+instead and write the changelog entry under a dedicated "Preview changes" heading.
### Docs Testing
If you make changes to docs, you can test they still build locally too.
```console
-$ pip install -r docs/requirements.txt
-$ pip install [-e] .[d]
-$ sphinx-build -a -b html -W docs/ docs/_build/
+(.venv)$ pip install -r docs/requirements.txt
+(.venv)$ pip install [-e] .[d]
+(.venv)$ sphinx-build -a -b html -W docs/ docs/_build/
```
## black-primer