Skip to content

Commit ab5a625

Browse files
authored
Merge pull request #1395 from cmu-delphi/krivard/readme-howto-release
Add dev and release processes
2 parents fc7fa58 + e1b07f3 commit ab5a625

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,33 @@ Each indicator pipeline includes its own documentation.
2626
* Consult REVIEW.md for the checklist to use for code reviews.
2727
* Consult DETAILS.md (if present) for implementation details, including handling of corner cases.
2828

29+
## Development
30+
31+
`prod` reflects what is currently in production. `main` is the staging branch for the next release.
32+
33+
1. Branch from `main` to develop a new change
34+
2. PR into `main` and assign a reviewer (or tag someone) to get feedback on your change. List the issue number under `Fixes` if your change resolves an existing [GitHub Issue](https://github.com/cmu-delphi/covidcast-indicators/issues).
35+
3. Add new commits to your branch in response to feedback.
36+
4. When approved, tag an admin to merge the PR. Let them know if this change should be released immediately, at a set future date, or if it can just go along for the ride whenever the next release happens.
37+
38+
## Release Process
39+
40+
The release process consists of multiple steps which can all be done via the GitHub website:
41+
42+
1. Got to [create_release GitHub Action](https://github.com/cmu-delphi/covidcast-indicators/actions/workflows/create-release.yml) and click the `Run workflow` dropdown button. Leave branch as `main` unless you know what you're doing. Enter the type of release (patch: bugfixes, params file changes, new signals for existing indicators; minor: new indicators, new utilities; major: backwards-incompatible changes requiring substantial refactoring) and GitHub will automatically compute the next version number for you; alternately, specify the version number by hand. Hit the green `Run workflow` button.
43+
2. The action will prepare a new release and generate an associated [Pull Request](https://github.com/cmu-delphi/covidcast-indicators/pulls).
44+
3. Edit the PR description and **list all pull requests included in this release**. This is a manual step to make sure you are aware of 100% of the changes that will be deployed. You can use `#xxx` notation and GitHub will automatically render the title of each PR in Preview mode and when the edit is saved.
45+
4. Verify that CI passes for the PR as a whole and for the most-recent/bottom-most commit in the PR. We're currently having problems where [python-ci does not run on release PRs](https://github.com/cmu-delphi/covidcast-indicators/issues/1310), but if you see a green check next to the most-recent commit you should be fine.
46+
5. Approve the PR, merge it, and delete the branch.
47+
6. Jenkins will automatically deploy the most-recently-built indicator packages to the pipeline servers
48+
7. Another GitHub action will automatically
49+
1. Create a git tag
50+
2. Create another [Pull Request](https://github.com/cmu-delphi/covidcast-indicators/pulls) to merge the changes back into the `main` branch
51+
3. (if `delphi-utils` was updated) Upload the new version of `delphi-utils` to PyPI
52+
8. Approve the sync PR, merge it, and delete the branch
53+
9. Done
54+
55+
You may need to be an admin to perform some of the steps above.
2956

3057
## License
3158

0 commit comments

Comments
 (0)