Minor Version Bumps
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:
- Create a new virtual environment.
- 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
Update Static Libraries
Update the following static libraries to their most recent stable release:
- Bootstrap 3
- Font Awesome 4
- jQuery UI
Squash Schema Migrations
Database schema migrations should be squashed for each new minor release. See the squashing guide for the detailed process.
Create a new Release Notes Page
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
Manually Perform a New Install
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
Close the release milestone on GitHub. Ensure that there are no remaining open issues associated with it.
Verify CI Build Status
Ensure that continuous integration testing on the
develop branch is completing successfully.
Update Version and Changelog
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
Submit a pull request title "Release vX.Y.Z" 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.
Create a New Release
Draft a new release with the following parameters.
- Tag: Current version (e.g.
- Title: Version and date (e.g.
v2.3.4 - 2018-08-02)
Copy the description from the pull request into the release notes.
Update the Development Version
develop branch, update
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
Announce the release on the mailing list. Include a link to the release and the (HTML-formatted) release notes.