# Repository maintenance ## Setting up a dev environment 0. Clone the git repo
`$ git clone git@github.com:Stepland/jubeatools.git` 0. Install a recent version of Python (currently 3.8 is enough) 0. Install [poetry](https://python-poetry.org/) (jubeatools uses poetry to deal with many aspects of the project's life-cycle) 0. Install jubeatools (with dev dependencies)
`$ poetry install` 0. Run the tests
`$ poetry run pytest` 0. If everything went well you can now use jubeatools's commandline
`$ poetry run jubeatools` ## Making a new release Sanity checks before anything serious happens, from the repo's root : 1. Format the code
`$ poetry run sh ./utils/format_code.sh` 1. Run checks
`$ poetry run sh ./utils/check_code.sh` 1. Make sure the unit tests pass
`$ poetry run pytest` 1. Fix all encountered errors 1. Rince and repeat until everythings is ok Now that this is done you can move on to actually making a new version, while still being in the repo's root : 1. Update `CHANGELOG.md` 1. Update `README.md` if you've just added support for a new format 1. Commit everything you want in the new release 1. Run the script
`$ poetry run python utils/bump_version.py {rule}` `{rule}` will usually be one of `patch`, `minor` or `major`. But it can be anything `poetry version` handles. Add `--commit` to let the script create the commit and tag for you as well 1. Inspect the result for mistakes 1. (If you did not use `--commit`) - Commit the version-bumped files - Add a tag with the format `vX.Y.Z` (don't forget the `v` at the start) 1. Push the version bump commit and the tag 1. Build & publish
`$ poetry publish --build`