This is for internal use for those who have permissions to manage the repository, but is published here for transparency and easy access by ourselves.
Please also make sure to have read the Contribution Guidelines thoroughly.
We will be using semver to number releases, i.e. MAJOR.MINOR.PATCH. While still in Alpha and Beta phases versions will be 0.x.x. To clarify that we expect bugs and other issues we prefix the release names with "Alpha" during initial development phase, and "Beta" when we feel we're close to 1.0.0 but not quite able to call it production ready.
mainbranch contains the latest public release, it should be the same code that people are using if they are up to date.developmentbranch contains any features we are fairly sure will make it into an upcoming release. Efforts should be made to avoid breaking this branch, and should this occur it should be fixed immediately, as it is meant to allow the team to build on top of a working code base.x.x.xrelease branches contain only commits relating to the features planned for the release with that number. Making a release branch enables us to keep adding new changes todevelopmentwithout polluting the release while we finalize it. A release branch should be in a working state, similar todevelopment, it indicates that a bit of polish and testing is needed before publishing.- feature branches should be used when experimenting or if your code is currently in a broken state.
- Make sure to update CHANGELOG.md with the changes that have been implemented since the previous release.
- Merge the corresponding branch into the
mainbranch. Ensure you're only merging features you intend to release, unfinished features need to remain ondevelopmentor a dedicated feature branch. - Go to the Releases page, and create a new release from the
mainbranch. Prefix the title with "Alpha" or "Beta" if appropriate. In the current stage, all releases should be prefixed with "Alpha"! - Copy appropriate section from CHANGELOG.md into the release description.
in the package's pyproject.toml increment the version to match the release number. See Version Specifiers - Python Packaging User Guide for how PyPI handles version numbers. If you don't want your release to become the default version make sure to add a pre-release specifier such as rc to the name.
cd <package_dir>
python -m build (must be used outside the venv)
You will need to have the correct permissions on PyPI
Enter the venv
pip install twine into the venv if not done already
delete files from older versions in dist
twine upload dist/*
You will need to have the correct permissions on Docker Hub
You need sudo/admin privileges on your machine to run the commands
Make sure to use the exact same version number as the PyPI package otherwise the docker compose file won't be able to pull the relevant version.
docker build -t infosecinnovations/concierge:<version_number> .
docker image push infosecinnovations/concierge:<version_number>
Use script to automate publishing a release!