From 5f72a0dc00818bea3bb0a6b5b10ad23824fbdcd3 Mon Sep 17 00:00:00 2001 From: Iustin Pop Date: Sun, 23 Apr 2023 22:15:21 +0200 Subject: [PATCH] Add a CONTRIBUTING.md file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Almost forgot this from the 0.7.0 releaseā€¦ --- CONTRIBUTING.md | 65 +++++++++++++++++++++++++++++++++++++++++++++ NEWS.md | 1 + README.md | 4 ++- doc/contributing.md | 1 + doc/index.rst | 1 + 5 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 CONTRIBUTING.md create mode 120000 doc/contributing.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ae6a645 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,65 @@ +# Contributing to pylibacl + +Hi, and thanks for any and all contributions! + +## Bugs and patches + +This is a small project, so let's keep things simple: + +- Please file all bug reports on github + (), as this allows + archival and discovery by other people; +- Send patches as pull requests; for larger changes, would be good to + first open a bug to discuss the plans; + +Due to simplicity, there are no old branches being kept alive, but if +it ever happens that a bug is found in older versions and there is +needed to support older Python versions, it is possible to do so. + +## Code standards + +There are no formal standards, but: + +- Code should be tested - this is why there's a [Codecov + integration](https://app.codecov.io/gh/iustin/pylibacl/tree/main). +- New functions should have good docstrings (in the C code). +- New functions/constants should be listed in the documentation, see + `doc/module.rst` for how to include them. +- All non-trivial changes should be listed in `NEWS.md` for further + inclusion in new releases documentation. Add an "unreleased" section + (if one doesn't exist yet) to list the changes. + +## Release process + +Right now, due to GPG signing, I'm doing releases and signing them +manually (offline, I mean). Basically, once GitHub workflows are fine: + +- Bump the version in all places - use `git grep -F $OLD_VER` and + update as needed. +- Ensure that `setup.py` has the right Python versions listed (bit me + more than once). +- Update the `NEWS.md` file is up to date (contents), and use the + right date. +- Check that the generated documentation (`make doc`) looks right. + +Then run these steps: + +``` +$ make clean +$ make distcheck # this leaves things in dist/ +$ git tag -m 'Release pylibacl-0.0.1' --sign v0.0.1 +$ gpg --sign -b -a dist/pylibacl-0.0.1.tar.gz +$ python3 -m twine upload dist/* +``` + +Separately: + +* Upload the `dist/` contents to GitHub and tag a new release. +* Upload the `dist/` contents to the old-style download area, + . + +Hopefully one day all this can be more automated. + +## Signing key + +The releases are currently signed by my key, see . diff --git a/NEWS.md b/NEWS.md index 7bee917..ca55b2d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,6 +15,7 @@ Otherwise, a minor release: - Improved testing coverage and test infrastructure. - Modernise parts of the C code based on recent Python version guidelines. +- Add a simple security policy and contribution guidelines. ## Version 0.6.0 diff --git a/README.md b/README.md index 550c84f..c8e32c3 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ version is 0.7.0. The source repository is either at For any issues, please file bugs at . +See the `CONTRIBUTING.md` file for details on how to contribute. + [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/iustin/pylibacl/ci.yml?branch=main)](https://github.com/iustin/pylibacl/actions/workflows/ci.yml) [![Codecov](https://img.shields.io/codecov/c/github/iustin/pylibacl)](https://codecov.io/gh/iustin/pylibacl) [![Read the Docs](https://img.shields.io/readthedocs/pylibacl)](http://pylibacl.readthedocs.io/en/latest/?badge=latest) @@ -58,7 +60,7 @@ or: ## Security -For reporting security vulnerabilities, please see SECURITY.md. +For reporting security vulnerabilities, please see `SECURITY.md`. ## License diff --git a/doc/contributing.md b/doc/contributing.md new file mode 120000 index 0000000..44fcc63 --- /dev/null +++ b/doc/contributing.md @@ -0,0 +1 @@ +../CONTRIBUTING.md \ No newline at end of file diff --git a/doc/index.rst b/doc/index.rst index 5e266b3..55bc2c3 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -12,6 +12,7 @@ Contents :maxdepth: 2 readme.md + contributing.md security.md module.rst implementation.rst