This is the general process we use to release new code to one of our custom applications. The Apps team has defined a separate, specialized process for deploying custom code in Knack.
- The Product Manager & Dev Lead collaboratively plan what issues will be included in the release
- The Dev Lead ensures that all issues are assigned, completed, and tested before the release
- After a pull request is reviewed by several devs, the PM reviews and adds any new functionality to the QA test script
- The Dev Lead creates a single pull request that includes the scope of the release
Example: https://github.com/cityofaustin/atd-vz-data/pull/496 - The Dev Lead cleans up release notes
Example: https://github.com/cityofaustin/atd-vz-data/releases - The release branch is deployed to Staging and the PM performs QA testing
- The PM notifies users of scheduled downtime
- Release party 🎉
- PM merges pull request
- Dev Lead notifies #atd-dev that the pull request has been tested, approved, and merged
- PM sends release notes to stakeholders and users
- Team debriefs on the process and updates the steps as needed
- Dev Lead creates an issue for the next release
Application-specific versions of this process are written as issues so they can be tracked collaboratively for each release.
Example: https://github.com/cityofaustin/atd-data-tech/issues/16094