You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/CONTRIBUTING.md
+9-21Lines changed: 9 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,11 @@
4
4
5
5
*`main`
6
6
7
-
The primary/authoritative branch of this repository is called `main`, and contains up-to-date code and supporting libraries. This should be your starting point when creating a new indicator. It is protected so that only reviewed pull requests can be merged in.
7
+
The primary branch of this repository is called `main`, and contains the version of the code and supporting libraries currently under development. This should be your starting point when creating a new indicator. It is protected so that only reviewed pull requests can be merged in. The main branch is configured to deploy to our staging environment on push. CI is set up to build and test all indicators on PR.
8
8
9
-
*`deploy-*`
9
+
*`prod`
10
10
11
-
Each automated pipeline has a corresponding branch which automatically deploys to a runtime host which runs the pipeline at a designated time each day. New features and bugfixes are merged into this branch using a pull request, so that our CI system can run the lint and test cycles and make sure the package will run correctly on the runtime host. If an indicator does not have a branch named after it starting with `deploy-`, that means the indicator has not yet been automated, and has a designated human keeper who is responsible for making sure the indicator runs each day -- whether that is manually or using a scheduler like cron is the keeper's choice.
11
+
The production branch is configured to automatically deploy to our production environment on push, and is protected so that only administrators can push or merge. CI is set up to build and test all indicators on PR.
12
12
13
13
* everything else
14
14
@@ -22,15 +22,6 @@ If you ensure that each issue deals with a single topic (ie a single new propose
22
22
23
23
Admins will assign issues to one or more people based on balancing expediency, expertise, and team robustness. It may be faster for one person to fix something, but we can reduce the risk of having too many single points of failure if two people work on it together.
24
24
25
-
## Project Boards
26
-
27
-
The Delphi Engineering team uses project boards to structure its weekly calls and track active tasks.
28
-
29
-
Immediate work is tracked on [Release Planning](https://github.com/cmu-delphi/covidcast-indicators/projects/2)
30
-
31
-
Long-term work and modeling collaborations are tracked on [Refactoring](https://github.com/cmu-delphi/covidcast-indicators/projects/3)
32
-
33
-
34
25
## General workflow for indicators creation and deployment
35
26
36
27
So, how does one go about developing a pipeline for a new data source?
@@ -40,13 +31,11 @@ So, how does one go about developing a pipeline for a new data source?
40
31
1. Create your new indicator branch from `main`.
41
32
2. Build it using the appropriate template, following the guidelines in the included README.md and REVIEW.md files.
42
33
3. Make some stuff!
43
-
4. When your stuff works, push your `dev-*` branch to remote for review.
44
-
5. Consult with a platform engineer for the remaining production setup needs. They will create a branch called `deploy-*` for your indicator.
45
-
6. Initiate a pull request against this new branch.
46
-
7. Following [the source documentation template](https://github.com/cmu-delphi/delphi-epidata/blob/main/docs/api/covidcast-signals/_source-template.md), create public API documentation for the source. You can submit this as a pull request against the delphi-epidata repository.
47
-
8. If your peers like the code, the documentation is ready, and Jenkins approves, deploy your changes by merging the PR.
48
-
9. An admin will propagate your successful changes to `main`.
49
-
10. Rejoice!
34
+
4. When your stuff works, push your development branch to remote, and open a PR against `main` for review.
35
+
5. Once your PR has been merged, consult with a platform engineer for the remaining production setup needs. They will create a deployment workflow for your indicator including any necessary production parameters. Production secrets are encrypted in the Ansible vault. This workflow will be tested in staging by admins, who will consult you about any problems they encounter.
36
+
6. Following [the source documentation template](https://github.com/cmu-delphi/delphi-epidata/blob/main/docs/api/covidcast-signals/_source-template.md), create public API documentation for the source. You can submit this as a pull request against the delphi-epidata repository.
37
+
7. If your peers like the code, the documentation is ready, and the staging runs are successful, work with admins to schedule your indicator in production, merge the documentation, and announce the new indicator to the mailing list.
38
+
8. Rejoice!
50
39
51
40
### Starting out
52
41
@@ -86,12 +75,11 @@ becomes available to the public.
86
75
87
76
Once you have your branch set up you should get in touch with a platform engineer to pair up on the remaining production needs. These include:
88
77
89
-
- Creating the corresponding `deploy-*` branch in the repo.
90
78
- Adding the necessary Jenkins scripts for your indicator.
91
79
- Preparing the runtime host with any Automation configuration necessities.
92
80
- Reviewing the workflow to make sure it meets the general guidelines and will run as expected on the runtime host.
93
81
94
-
Once all the last mile configuration is in place you can create a pull request against the correct `deploy-*` branch to initiate the CI/CD pipeline which will build, test, and package your indicator for deployment.
82
+
Once all the last mile configuration is in place you can create a pull request against `prod` to initiate the CI/CD pipeline which will build, test, and package your indicator for deployment.
95
83
96
84
If everything looks ok, you've drafted source documentation, platform engineering has validated the last mile, and the pull request is accepted, you can merge the PR. Deployment will start automatically.
0 commit comments