This file describes how this project is maintained. When making changes to the master branch, this file tells you who needs to review a pull request and who has the right to merge it. Additionally, there are other relevant sections describing how to do the maintenance.
Before cutting a release, the maintainer MUST validate that she or he has
sudo yum -y install pandoc sudo pip install Sphinx
As part of the project's regular build, a maintainer builds documentation with Sphinx. The maintainer MUST validate the quality of the documentation by building and testing the documentation in an exposed Docker container.
cd docs && make html && docker build -t greenpau/ndmtk-docs . && \ docker run --rm -p 8000:8000 greenpau/ndmtk-docs
The documentation is available via TCP port
8000 of the docker host.
Pull Request Management
When a Pull Request (PR) passes CI tests and the community successfully resolved any issues raised during the peer review of the PR, the PR is ready for a merger.
First, the maintainer MUST change the value of the
Makefile, because the variable is used to change version references
across the entire project, e.g. CI and Dockerfile references.
After that, the maintainer runs
make to update version references and
create new documentation.:
make package git add . git commit -m 'release: 0.2.0'
Then, the maintainer creates a release PR.
The work on release management happens on the main repository, not its fork.
A maintainer should have the following information before cutting a release:
- New release version
- Release name
Next, the maintainer tags the release with an appropriate version and name. The maintainer pushes the tags to upstream.
git tag -a v0.2.0 -m "Toucan Release" git push git push --tags
Next, the maintainer should upload the new release to Test PyPi.
Once the maintainer validated that Test PyPi looks as expected, the maintainer pushes the code to the main PyPi repository.
Initially, the maintainer registered the package with PyPi and TestPyPi with:
python setup.py sdist python setup.py register -r pypi python setup.py register -r pypitest
pypitest are references from
~/.pypirc configuration file:
[distutils] index-servers = pypi testpypi [pypi] repository = https://upload.pypi.org/legacy/ username = USERNAME password = PASSWORD [testpypi] repository: https://test.pypi.org/legacy/ username = USERNAME password = PASSWORD
Prior to uploading the module to PyPi, test it with PyPi Test:
twine upload --repository testpypi dist/*
Once successfully tested, upload it to PyPi:
twine upload --repository pypi dist/*