|
| 1 | +## Contributing |
| 2 | + |
| 3 | +[The Carpentries][cp-site] ([Software Carpentry][swc-site], [Data |
| 4 | +Carpentry][dc-site], and [Library Carpentry][lc-site]) are open source |
| 5 | +projects, and we welcome contributions of all kinds: new lessons, fixes to |
| 6 | +existing material, bug reports, and reviews of proposed changes are all |
| 7 | +welcome. |
| 8 | + |
| 9 | +### Contributor Agreement |
| 10 | + |
| 11 | +By contributing, you agree that we may redistribute your work under [our |
| 12 | +license](LICENSE.md). In exchange, we will address your issues and/or assess |
| 13 | +your change proposal as promptly as we can, and help you become a member of our |
| 14 | +community. Everyone involved in [The Carpentries][cp-site] agrees to abide by |
| 15 | +our [code of conduct](CODE_OF_CONDUCT.md). |
| 16 | + |
| 17 | +### How to Contribute |
| 18 | + |
| 19 | +The easiest way to get started is to file an issue to tell us about a spelling |
| 20 | +mistake, some awkward wording, or a factual error. This is a good way to |
| 21 | +introduce yourself and to meet some of our community members. |
| 22 | + |
| 23 | +1. If you do not have a [GitHub][github] account, you can [send us comments by |
| 24 | + email][contact]. However, we will be able to respond more quickly if you use |
| 25 | + one of the other methods described below. |
| 26 | + |
| 27 | +2. If you have a [GitHub][github] account, or are willing to [create |
| 28 | + one][github-join], but do not know how to use Git, you can report problems |
| 29 | + or suggest improvements by [creating an issue][repo-issues]. This allows us |
| 30 | + to assign the item to someone and to respond to it in a threaded discussion. |
| 31 | + |
| 32 | +3. If you are comfortable with Git, and would like to add or change material, |
| 33 | + you can submit a pull request (PR). Instructions for doing this are |
| 34 | + [included below](#using-github). For inspiration about changes that need to |
| 35 | + be made, check out the [list of open issues][issues] across the Carpentries. |
| 36 | + |
| 37 | +Note: if you want to build the website locally, please refer to [The Workbench |
| 38 | +documentation][template-doc]. |
| 39 | + |
| 40 | +### Where to Contribute |
| 41 | + |
| 42 | +1. If you wish to change this lesson, add issues and pull requests here. |
| 43 | +2. If you wish to change the template used for workshop websites, please refer |
| 44 | + to [The Workbench documentation][template-doc]. |
| 45 | + |
| 46 | + |
| 47 | +### What to Contribute |
| 48 | + |
| 49 | +There are many ways to contribute, from writing new exercises and improving |
| 50 | +existing ones to updating or filling in the documentation and submitting [bug |
| 51 | +reports][issues] about things that do not work, are not clear, or are missing. |
| 52 | +If you are looking for ideas, please see [the list of issues for this |
| 53 | +repository][repo-issues], or the issues for [Data Carpentry][dc-issues], |
| 54 | +[Library Carpentry][lc-issues], and [Software Carpentry][swc-issues] projects. |
| 55 | + |
| 56 | +Comments on issues and reviews of pull requests are just as welcome: we are |
| 57 | +smarter together than we are on our own. **Reviews from novices and newcomers |
| 58 | +are particularly valuable**: it's easy for people who have been using these |
| 59 | +lessons for a while to forget how impenetrable some of this material can be, so |
| 60 | +fresh eyes are always welcome. |
| 61 | + |
| 62 | +### What *Not* to Contribute |
| 63 | + |
| 64 | +Our lessons already contain more material than we can cover in a typical |
| 65 | +workshop, so we are usually *not* looking for more concepts or tools to add to |
| 66 | +them. As a rule, if you want to introduce a new idea, you must (a) estimate how |
| 67 | +long it will take to teach and (b) explain what you would take out to make room |
| 68 | +for it. The first encourages contributors to be honest about requirements; the |
| 69 | +second, to think hard about priorities. |
| 70 | + |
| 71 | +We are also not looking for exercises or other material that only run on one |
| 72 | +platform. Our workshops typically contain a mixture of Windows, macOS, and |
| 73 | +Linux users; in order to be usable, our lessons must run equally well on all |
| 74 | +three. |
| 75 | + |
| 76 | +### Using GitHub |
| 77 | + |
| 78 | +If you choose to contribute via GitHub, you may want to look at [How to |
| 79 | +Contribute to an Open Source Project on GitHub][how-contribute]. In brief, we |
| 80 | +use [GitHub flow][github-flow] to manage changes: |
| 81 | + |
| 82 | +1. Create a new branch in your desktop copy of this repository for each |
| 83 | + significant change. |
| 84 | +2. Commit the change in that branch. |
| 85 | +3. Push that branch to your fork of this repository on GitHub. |
| 86 | +4. Submit a pull request from that branch to the [upstream repository][repo]. |
| 87 | +5. If you receive feedback, make changes on your desktop and push to your |
| 88 | + branch on GitHub: the pull request will update automatically. |
| 89 | + |
| 90 | +NB: The published copy of the lesson is usually in the `main` branch. |
| 91 | + |
| 92 | +Each lesson has a team of maintainers who review issues and pull requests or |
| 93 | +encourage others to do so. The maintainers are community volunteers, and have |
| 94 | +final say over what gets merged into the lesson. |
| 95 | + |
| 96 | +### Other Resources |
| 97 | + |
| 98 | +The Carpentries is a global organisation with volunteers and learners all over |
| 99 | +the world. We share values of inclusivity and a passion for sharing knowledge, |
| 100 | +teaching and learning. There are several ways to connect with The Carpentries |
| 101 | +community listed at <https://carpentries.org/connect/> including via social |
| 102 | +media, slack, newsletters, and email lists. You can also [reach us by |
| 103 | +email][contact]. |
| 104 | + |
| 105 | +[repo]: https://github.com/swcarpentry/git-novice |
| 106 | +[repo-issues]: https://github.com/swcarpentry/git-novice/issues |
| 107 | +[contact]: mailto:[email protected] |
| 108 | +[cp-site]: https://carpentries.org/ |
| 109 | +[dc-issues]: https://github.com/issues?q=user%3Adatacarpentry |
| 110 | +[dc-lessons]: https://datacarpentry.org/lessons/ |
| 111 | +[dc-site]: https://datacarpentry.org/ |
| 112 | +[discuss-list]: https://lists.software-carpentry.org/listinfo/discuss |
| 113 | +[github]: https://github.com |
| 114 | +[github-flow]: https://guides.github.com/introduction/flow/ |
| 115 | +[github-join]: https://github.com/join |
| 116 | +[how-contribute]: https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github |
| 117 | +[issues]: https://carpentries.org/help-wanted-issues/ |
| 118 | +[lc-issues]: https://github.com/issues?q=user%3ALibraryCarpentry |
| 119 | +[swc-issues]: https://github.com/issues?q=user%3Aswcarpentry |
| 120 | +[swc-lessons]: https://software-carpentry.org/lessons/ |
| 121 | +[swc-site]: https://software-carpentry.org/ |
| 122 | +[lc-site]: https://librarycarpentry.org/ |
| 123 | +[template-doc]: https://carpentries.github.io/workbench/ |
0 commit comments