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
+8-5
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,9 @@ The production branch is configured to automatically deploy to our production en
12
12
13
13
* everything else
14
14
15
-
All other branches are development branches. We don't enforce a naming policy.
15
+
All other branches are development branches. We don't enforce a naming policy, but it is recommended to prefix all branches you create with your name, username, or initials (e.g. `username/branch-name`).
16
+
17
+
We don't forbid force-pushing, but please keep to a minimum and be careful of using when modifying a branch at the same time as others.
16
18
17
19
## Issues
18
20
@@ -29,7 +31,7 @@ So, how does one go about developing a pipeline for a new data source?
29
31
### tl;dr
30
32
31
33
1. Create your new indicator branch from `main`.
32
-
2. Build it using the appropriate template, following the guidelines in the included README.mdand REVIEW.md files.
34
+
2. Build it using the [indicator template](https://github.com/cmu-delphi/covidcast-indicators/tree/main/_template_python), following the guidelines in the included README.md, REVIEW.md, and INDICATOR_DEV_GUIDE.md files.
33
35
3. Make some stuff!
34
36
4. When your stuff works, push your development branch to remote, and open a PR against `main` for review.
35
37
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.
Create a directory for your new indicator by making a copy of `_template_r` or `_template_python` depending on the programming language you intend to use. If using Python, add the name of the directory to the list found in `jobs > build > strategy > matrix > packages` in `.github/workflows/python-ci.yml`, which will enable automated checks for your indicator when you make PRs. The template copies of `README.md` and `REVIEW.md` include the minimum requirements for code structure, documentation, linting, testing, and method of configuration. Beyond that, we don't have any established restrictions on implementation; you can look at other existing indicators see some examples of code layout, organization, and general approach.
55
+
Create a directory for your new indicator by making a copy of `_template_python`. (We also make a `_template_r` available, but R should be only used as a last resort, due to complications using it in production.) Add the name of the directory to the list found in `jobs > build > strategy > matrix > packages` in `.github/workflows/python-ci.yml`, which will enable automated checks for your indicator when you make PRs. The template copies of `README.md` and `REVIEW.md` include the minimum requirements for code structure, documentation, linting, testing, and method of configuration. Beyond that, we don't have any established restrictions on implementation; you can look at other existing indicators see some examples of code layout, organization, and general approach.
54
56
55
57
* Consult your peers with questions! :handshake:
56
58
@@ -62,7 +64,7 @@ Once you have something that runs locally and passes tests you set up your remot
62
64
git push -u origin dev-my-feature-branch
63
65
```
64
66
65
-
You can then draft public API documentation for people who would fetch this
67
+
You can then draft [public API documentation](https://cmu-delphi.github.io/delphi-epidata/) for people who would fetch this
66
68
data from the API. Public API documentation is kept in the delphi-epidata
@@ -104,7 +106,8 @@ We use a branch-based git workflow coupled with [Jenkins](https://www.jenkins.io
104
106
* Package - Tar and gzip the built environment.
105
107
* Deploy - Trigger an Ansible playbook to place the built package onto the runtime host, place any necessary production configuration, and adjust the runtime envirnemnt (if necessary).
106
108
107
-
There are several additional Jenkins-specific files that will need to be created for each indicator, as well as some configuration additions to the runtime host. It will be important to pair with a platform engineer to prepare the necessary production environment needs, test the workflow, validate on production, and ultimately sign off on a production release.
109
+
There are several additional Jenkins-specific files that will need to be created for each indicator, as well as some configuration additions to the runtime host.
110
+
It will be important to pair with a platform engineer to prepare the necessary production environment needs, test the workflow, validate on production, and ultimately sign off on a production release.
description = "Shared Utility Functions for Indicators"
9
+
readme = "README.md"
10
+
requires-python = "== 3.8.*"
11
+
license = { text = "MIT License" }
12
+
classifiers = [
13
+
"Development Status :: 5 - Production/Stable",
14
+
"Intended Audience :: Developers",
15
+
"Programming Language :: Python :: 3.8",
16
+
"License :: MIT",
17
+
]
18
+
dependencies = [
19
+
"boto3",
20
+
"covidcast",
21
+
"cvxpy",
22
+
"epiweeks",
23
+
"gitpython",
24
+
"importlib_resources>=1.3",
25
+
"numpy",
26
+
"pandas>=1.1.0",
27
+
"requests",
28
+
"slackclient",
29
+
"scs<3.2.6", # TODO: remove this ; it is a cvxpy dependency, and the excluded version appears to break our jenkins build. see: https://github.com/cvxgrp/scs/issues/283
0 commit comments