Required Python packages are maintained in two files. base_requirements.txt contains a list of all the packages required by NetBox. Some of them may be pinned to a specific version of the package due to a known issue. For example:
# https://github.com/encode/django-rest-framework/issues/6053
djangorestframework==3.8.1
The other file is requirements.txt, which lists each of the required packages pinned to its current stable version. When NetBox is installed, the Python environment is configured to match this file. This helps ensure that a new release of a dependency doesn't break NetBox.
Every minor version release should refresh requirements.txt so that it lists the most recent stable release of each package. To do this:
Install the latest version of all required packages via pip:
pip install -U -r base_requirements.txt
Run all tests and check that the UI and API function as expected.
Update the package versions in requirements.txt as appropriate.
Update the following static libraries to their most recent stable release:
Create a file at /docs/release-notes/X.Y.md to establish the release notes for the new release. Add the file to the table of contents within mkdocs.yml.
Create a new installation of NetBox by following the current documentation. This should be a manual process, so that issues with the documentation can be identified and corrected.
Close the release milestone on GitHub. Ensure that there are no remaining open issues associated with it.
Ensure that continuous integration testing on the develop branch is completing successfully.
Update the VERSION constant in settings.py to the new release version and annotate the current data in the release notes for the new version.
Submit a pull request title "Release vX.Y.X" to merge the develop branch into master. Include a brief change log listing the features, improvements, and/or bugs addressed in the release.
Once CI has completed on the PR, merge it.
Draft a new release with the following parameters.
v2.3.4)masterv2.3.4 - 2018-08-02)Copy the description from the pull request into the release notes.
On the develop branch, update VERSION in settings.py to point to the next release. For example, if you just released v2.3.4, set:
VERSION = 'v2.3.5-dev'
Announce the release on the mailing list. Include a link to the release and the (HTML-formatted) release notes.