1 # Contributing to pyxattr
3 Hi, and thanks for any and all contributions!
7 This is a small project, so let's keep things simple:
9 - Please file all bug reports on github
10 (<https://github.com/iustin/pyxattr/issues>), as this allows
11 archival and discovery by other people;
12 - Send patches as pull requests; for larger changes, would be good to
13 first open a bug to discuss the plans;
15 Due to simplicity, there are no old branches being kept alive, but if
16 it ever happens that a bug is found in older versions and there is
17 needed to support older Python versions, it is possible to do so.
21 There are no formal standards, but:
23 - Code should be tested - this is why there's a [Codecov
24 integration](https://app.codecov.io/gh/iustin/pyxattr/tree/main).
25 - New functions should have good docstrings (in the C code).
26 - New functions/constants should be listed in the documentation, see
27 `doc/module.rst` for how to include them.
28 - All non-trivial changes should be listed in `NEWS.md` for further
29 inclusion in new releases documentation. Add an "unreleased" section
30 (if one doesn't exist yet) to list the changes.
34 Right now, due to GPG signing, I'm doing releases and signing them
35 manually (offline, I mean). Basically, once GitHub workflows are fine:
37 - Bump the version in all places - use `git grep -F $OLD_VER` and
39 - Ensure that `setup.py` has the right Python versions listed (bit me
41 - Update the `NEWS.md` file is up to date (contents), and use the
43 - Check that the generated documentation (`make doc`) looks right.
49 $ make distcheck # this leaves things in dist/
50 $ git tag -m 'Release pyxattr-0.0.1' --sign v0.0.1
51 $ gpg --sign -b -a dist/pyxattr-0.0.1.tar.gz
52 $ python3 -m twine upload dist/*
57 * Upload the `dist/` contents to GitHub and tag a new release.
58 * Upload the `dist/` contents to the old-style download area,
59 <https://pyxattr.k1024.org/downloads/>.
61 Hopefully one day all this can be more automated.
65 The releases are currently signed by my key, see <https://k1024.org/contact/>.