|
1 | 1 | # Contributing
|
2 | 2 |
|
3 |
| -Contributions are welcome, and they are greatly appreciated! |
| 3 | +Contributions are welcome, and they are greatly appreciated! Did you read an interesting article about a time where data ethics went awry? Do you see an area the checklist doesn't fully cover? Submit a PR to make an addition! |
4 | 4 |
|
5 |
| -This document is still a work-in-progress. Sorry! |
| 5 | +## Types of contributions |
6 | 6 |
|
7 |
| -## Release Process (for maintainers) |
| 7 | +Contributors can add to `deon` by (1) adding an [example](https://deon.drivendata.org/examples/) that helps illustrate the different realms and ramifications of data ethics practices from the checklist and/or (2) changing or adding an item to the [checklist](https://deon.drivendata.org/#data-science-ethics-checklist) itself. |
| 8 | + |
| 9 | +To get started, first `git clone` the [deon repository](https://github.com/drivendataorg/deon/). |
| 10 | + |
| 11 | +### 1. Adding a new item to the examples table |
| 12 | + |
| 13 | +To add an example: |
| 14 | +- [ ] Use the [examples table](https://deon.drivendata.org/examples/) to determine the checklist item to which your article applies. |
| 15 | +- [ ] Add the example to the `examples_of_ethical_issues.yml` file. |
| 16 | +- [ ] Open a pull request with the change to the yaml file. |
| 17 | + |
| 18 | +#### How to edit the examples table yaml |
| 19 | + |
| 20 | +In [`deon/assets/examples_of_ethical_issues.yml`](https://github.com/drivendataorg/deon/blob/main/deon/assets/examples_of_ethical_issues.yml), locate the section for the relevant checklist item. Each checklist item corresponds to a specific `line_id` (e.g. "Informed Consent" is A.1). Then: |
| 21 | + |
| 22 | +- [ ] Create a new bullet in the `links` section for that line ID, following the format of other examples. |
| 23 | +- [ ] After `text`:, write a succinct one sentence summary of what went wrong. |
| 24 | +- [ ] After `url`:, paste the url to the article or research paper. |
| 25 | + |
| 26 | +Your change to the `examples_of_ethical_issues.yml` should look something like this: |
| 27 | + |
| 28 | +``` |
| 29 | +- text: Facebook uses phone numbers provided for two-factor authentication to target users with ads. |
| 30 | + url: https://techcrunch.com/2018/09/27/yes-facebook-is-using-your-2fa-phone-number-to-target-you-with-ads/ |
| 31 | +``` |
| 32 | + |
| 33 | +### 2. Changing the checklist |
| 34 | + |
| 35 | +Given [our defined perspective on the checklist](#background-and-perspective), we will consider changes to the default checklist that fit with that perspective and follow this process. Our goal is to have checklist items that are actionable as part of a review of data science work or as part of a plan. Please avoid suggesting items that are too vague (e.g., "do no harm") or too specific (e.g., "remove social security numbers from data"). |
| 36 | + |
| 37 | +As part of deon's goal to provide concrete, actionable reminders of the influence of data scientists' choices on the ethics of data science projects, each addition to to the checklist must be accompanied by an example. |
| 38 | + |
| 39 | +The steps for this contribution are: |
| 40 | +- [ ] Edit the `checklist.yml` file. |
| 41 | +- [ ] Add an example to the `examples_of_ethical_issues.yml` file. |
| 42 | +- [ ] Open a PR that follows the guidelines below. |
| 43 | + |
| 44 | +#### How to edit the checklist yaml |
| 45 | + |
| 46 | +Navigate to the section of [`deon/assets/checklist.yml`](https://github.com/drivendataorg/deon/blob/main/deon/assets/checklist.yml) where your addition or change applies (e.g. Data Storage). Then follow the format of the other checklist items in making your contribution: |
| 47 | + |
| 48 | +- [ ] Create a new bullet in the `lines` section for that `line_id`, following the format of other checklist items. Ensure the numbering of all line_ids in the section is sequential. |
| 49 | +- [ ] After `line_summary`, describe the topic of your question in a few words. |
| 50 | +- [ ] After `line`, add the new checklist question. |
| 51 | + |
| 52 | +#### How to edit the examples table yaml |
| 53 | + |
| 54 | +[See this section above](#how-to-edit-the-examples-table-yaml). |
| 55 | + |
| 56 | +#### Pull request guidelines |
| 57 | + |
| 58 | + A pull request to add an item to the checklist should change the following files: |
| 59 | + |
| 60 | + 1. [`deon/assets/checklist.yml`](https://github.com/drivendataorg/deon/blob/main/deon/assets/checklist.yml): contains the default checklist items |
| 61 | + 2. [`deon/assets/examples_of_ethical_issues.yml`](https://github.com/drivendataorg/deon/blob/main/deon/assets/examples_of_ethical_issues.yml): contains example of harms caused when the item was not considered |
| 62 | + |
| 63 | +The description in the pull request must include: |
| 64 | + - A justification for the change |
| 65 | + - A consideration of related items that already exist, and why this change is different from what exists |
| 66 | + - A published example (academic or press article) of where neglecting the principle has lead to concrete harm (articles that discuss potential or hypothetical harm will not be considered sufficient) |
| 67 | + |
| 68 | +## Release process (for maintainers) |
8 | 69 |
|
9 | 70 | The [`release`](https://github.com/drivendataorg/deon/blob/main/.github/workflows/release.yml) GitHub Actions workflow automates the process of releasing a new version of `deon`.
|
10 | 71 |
|
|
0 commit comments