Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve contributing instructions #986

Merged
merged 4 commits into from Mar 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
26 changes: 23 additions & 3 deletions CONTRIBUTING.md
Expand Up @@ -7,7 +7,25 @@ still need proper phrasing - if you'd like to help - be sure to make a PR.
Please know that we do appreciate all contributions - bug reports as well as
Pull Requests.

## PR Merge Criteria
## Setting up a development environment and running tests

After you've cloned the repository,

1. Set up a Python virtualenv (the methods vary depending on tooling and operating system)
and activate it.
2. Install Babel in editable mode with development dependencies: `pip install -e .[dev]`
3. Run `make import-cldr` to import the CLDR database.
This will download the CLDR database and convert it to a format that Babel can use.
4. Run `make test` to run the tests. You can also run e.g. `pytest --cov babel .` to
run the tests with coverage reporting enabled.

You can also use [Tox][tox] to run the tests in separate virtualenvs
for all supported Python versions; a `tox.ini` configuration (which is what the CI process
uses) is included in the repository.

## On pull requests

### PR Merge Criteria

For a PR to be merged, the following statements must hold true:

Expand All @@ -19,14 +37,16 @@ For a PR to be merged, the following statements must hold true:
To begin contributing have a look at the open [easy issues](https://github.com/python-babel/babel/issues?q=is%3Aopen+is%3Aissue+label%3Adifficulty%2Flow)
which could be fixed.

## Correcting PRs
### Correcting PRs

Rebasing PRs is preferred over merging master into the source branches again
and again cluttering our history. If a reviewer has suggestions, the commit
shall be amended so the history is not cluttered by "fixup commits".

## Writing Good Commits
### Writing Good Commits

Please see
https://api.coala.io/en/latest/Developers/Writing_Good_Commits.html
for guidelines on how to write good commits and proper commit messages.

[tox]: https://tox.wiki/en/latest/
17 changes: 3 additions & 14 deletions Makefile
@@ -1,18 +1,7 @@
test: import-cldr
python ${PYTHON_TEST_FLAGS} -m pytest ${PYTEST_FLAGS}

test-env:
virtualenv test-env
test-env/bin/pip install pytest
test-env/bin/pip install --editable .

clean-test-env:
rm -rf test-env

standalone-test: import-cldr test-env
test-env/bin/pytest tests ${PYTEST_FLAGS}

clean: clean-cldr clean-pyc clean-test-env
clean: clean-cldr clean-pyc

import-cldr:
python scripts/download_import_cldr.py
Expand All @@ -28,7 +17,7 @@ clean-pyc:
develop:
pip install --editable .

tox-test: import-cldr
tox-test:
tox

.PHONY: test develop tox-test clean-pyc clean-cldr import-cldr clean clean-test-env standalone-test
.PHONY: test develop tox-test clean-pyc clean-cldr import-cldr clean standalone-test
7 changes: 7 additions & 0 deletions setup.py
Expand Up @@ -67,6 +67,13 @@ def run(self):
# Python 3.9 and later include zoneinfo which replaces pytz
'pytz>=2015.7; python_version<"3.9"',
],
extras_require={
'dev': [
'pytest>=6.0',
'pytest-cov',
'freezegun~=1.0',
],
},
cmdclass={'import_cldr': import_cldr},
zip_safe=False,
# Note when adding extractors: builtin extractors we also want to
Expand Down
5 changes: 2 additions & 3 deletions tox.ini
Expand Up @@ -5,10 +5,9 @@ envlist =
py{37,38}-pytz

[testenv]
extras =
dev
deps =
pytest>=6.0
pytest-cov
freezegun==0.3.12
backports.zoneinfo;python_version<"3.9"
tzdata;sys_platform == 'win32'
pytz: pytz
Expand Down