1
0
mirror of https://0xacab.org/jvoisin/mat2 synced 2025-10-05 16:13:10 +02:00
Files
mat2/CONTRIBUTING.md
jvoisin 102f08cd28 Switch the project from 0xacab to github
While the folks running 0xacab are much more lovely than the github ones, this
project has outgrown the former:

- Github offers beefy continuous integration, make it easier to run the
  testsuite on every python version, instead of using a weird docker-based
  contraption. Moreover, I'd rather burn some Microsoft money than 0xacab one.
- Opening an account on 0xacab is non-trivial (by design), making it tedious
  for people to report issues and contribute to mat2.
- Gitlab is becoming unbearably slow and convoluted, even compared to Github's
  awful Copilot/AI push.

It's a sad state of affairs, but it's a pragmatic decision. People who don't
have a Github account can still report issues and send patches by sending me an
email.
2025-09-04 14:35:36 +02:00

2.3 KiB

Contributing to mat2

The main repository for mat2 is on github, but you can send patches to jvoisin by email if you prefer.

Do feel free to pick up an issue and to send a pull-request.

Before sending the pull-request, please do check that everything is fine by running the full test suite in GitLab. To do that, after forking mat2 in GitLab, you need to go in Settings -> CI/CD -> Runner and there enable shared runners.

Mat2 also has unit tests (that are also run in the full test suite). You can run them with python3 -m unittest discover -v.

If you're fixing a bug or adding a new feature, please add tests accordingly, this will greatly improve the odds of your merge-request getting merged.

If you're adding a new fileformat, please add tests for:

  1. Getting metadata
  2. Cleaning metadata
  3. Raising ValueError upon a corrupted file

Since mat2 is written in Python3, please conform as much as possible to the pep8 style; except where it makes no sense of course.

Doing a release

  1. Update the changelog
  2. Update the version in the mat2 file
  3. Update the version in the setup.py file
  4. Update the version in the pyproject.toml file
  5. Update the version and date in the man page
  6. Commit the modified files
  7. Create a tag with git tag -s $VERSION
  8. Push the commit with git push origin master
  9. Push the tag with git push --tags
  10. Download the gitlab archive of the release
  11. Diff it against the local copy
  12. If there is no difference, sign the archive with gpg --armor --detach-sign mat2-$VERSION.tar.xz
  13. Upload the signature on Gitlab's tag page and add the changelog there
  14. Announce the release on the mailing list
  15. Sign'n'upload the new version on pypi with python3 setup.py sdist bdist_wheel then twine upload -s dist/*
  16. Do the secret release dance