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
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)
-
Run a report with “missing” displayed:
- 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