Gentoo Developers have full priviledges to the gentoolkit repository and any Gentoo developer can do work on the gentoolkit source. We only ask that you keep the following in mind:
- If you want to do a major change (i.e rewrite/refactor something), please talk to us before pushing any commits. If you break something, please fix it.
- All members of the Portage or Portage Tools projects are authorized to create a new release of gentoolkit or gentoolkit-dev.
- All other Gentoo Developers are authorized to create a new release if it is coordinated with fuzzyray and/or dolsen.
- If you create a release and it breaks, please fix it.
Any non Gentoo developers who wish to contribute, the best way to get started is by cloning a copy of the repository and submitting patches to bugzilla. Additionally, we can be found in the #gentoo-portage IRC channel.
We use black to format the code base. Please make sure you run it against any PRs prior to submitting (otherwise we'll probably reject it).
There are ways to integrate black into your text editor and/or IDE.
You can also set up a git hook to check your commits, in case you don't want editor integration. Something like this:
# .git/hooks/pre-commit (don't forget to chmod +x)
#!/bin/bash
black --check --diff .
To ignore reformatting commits (which are listed in .gitignorerevs
) you can do
the following:
git config blame.ignoreRevsFile .gitignorerevs
- If you add new code, best practice is to write a test for it.
- If you're modifying code that doesn't have a test and you can write a test for it, please do.
- Before committing your changes, run "tox" to ensure that you didn't break tests or introduced a flake8 error.
- If flake8 raises a warning or error that you don't agree with, it's probably better to just change your code. If you're sure you have a good reason for doing what you're doing, you can add "# noqa" at the end of the line to silence it.
Note: We are using VERSION="0.3.0" simply as an example.
# Run Gentoolkit's test suite, make sure it passes:
# Note: requires dev-python/snakeoil
./setup.py test
# Create a source distribution (you need to add VERSION here):
VERSION="0.3.0" ./setup.py sdist
# Transfer dist/gentoolkit-0.3.0.tar.gz to dev.gentoo.org:/space/distfiles-local
# scp dist/gentoolkit-0.3.0.tar.gz [email protected]:/space/distfiles-local
# Clean up temporary files:
./setup.py clean -a
git status
# rm or mv any untracked files/directories
# Create a tag for the release
git tag gentoolkit-0.3.0
git push origin gentoolkit-0.3.0