Pre-Release Checklist
Step-by-step instructions for preparing a release or PR
Preparing New Code for a Release
So, you want to release some code? The Ghostwriter release workflow is simple to follow. The developer of the new code must perform a few actions:
-
Update or create unit tests that cover their changes to the codebase
-
Update documentation (this wiki), as needed
-
Write an itemized CHANGELOG of their changes
Everything else is handled automatically by the continuous integration pipeline.
The following sections walk you through what to do to prepare for a new release or a pull request.
Prepare for a Release or Pull Request
-
Review any linter alerts in VS Code (under the PROBLEMS tab in the console)
- See the Code Style Guide for information about linting and proper formatting
-
Review and update wiki documentation as needed
-
The Ghostwriter team should update the wiki immediately via a commit or edit in GitBook
-
External contributions should submit changes as a pull request to the documentation repository
-
-
Write or update unit tests for changes
-
Run all unit tests with Python Coverage:
docker-compose -f local.yml run django coverage run manage.py test
-
Review Coverage report for changes in “missing”
-
Run a report with “missing” displayed:
docker-compose -f local.yml run django coverage report -m
-
Look for code branches not covered by unit tests (e.g.,
except
blocks)
-
-
If Coverage reports testing gaps in new or changed code, return to step 3
Ready to Create a Release or Pull Request
-
Merge feature branches into a
dev
branch -
Test deployment of the new branch on a development server
-
Test new and changed features and anything potentially affected by the changes
-
Browse the user interface and interact with anything related to the changes
-
If the UI has changed, thoroughly test different scenarios and observe JavaScript behavior
-
-
If all is well, merge into
main
or create the pull request with an itemized CHANGELOG -
Wait some time (usually ~25 minutes) and review the results of the GitHub Actions
-
If required Actions succeeded, the code may be merged and Ghostwriter team members will review the code prior to a release