--- author: Marco Dalla Vecchia --- # Carpentries Curriculum Development Contribution Guide This is a simple reference guide meant to guide through the process of contributing and collaborate to a [Carpentries](https://carpentries.org/) GitHub curriculum. ## The Collaborative GitHub Workflow Here's a quick overview of the GitHub workflow: ```mermaid flowchart TD a[Source GitHub Repo] --> |Create / Update Fork|b[Your Mirror Repo] b --> d[Your New Branch] d --> |Modify|e[Your New Version] e --> |Pull Request|a d --> |git checkout new-branch|f[Local New Branch] subgraph local f --> |git add + git commit|g[Local New Version] end g --> |git push origin new-branch|e ``` Here are the main ideas to keep in mind: - You **never work directly** on the [original repository](https://github.com/carpentries-incubator/bioimage-analysis-python). You always _mirror_ it (Fork) and _send back_ (Pull Request) the proposed changes. - Once you are working on your personal copy (forked from original), you can work according to your preferred git workflow: locally using Git commands (yellow box above) or simply online using the GitHub interface. - Once your work is done and you want to propose the new changes, you can submit a Pull Request (PR) via GitHub. - In true spirit of version control, is strongly recommended not to alter the Git history of your work. So try to be mindful of not committing tests or back-and-forth edits in the final branch for the PR. ## Good practices and tips for GitHub collaboration - You can follow this [GitHub guide](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) on how to create your first pull request. - If you are very new to GitHub in general and GitHub collaborative workflows, check out this amazing [Touring Way section](https://book.the-turing-way.org/collaboration/github-novice). - **PRs after submission will be reviewed by the repository maintainers** and give feedback on the proposed changes. Only when an agreement is reached, the PR will be merged and will become part of the main course material. To see more information on the general review process you can check this [other Touring Way section](https://book.the-turing-way.org/collaboration/maintain-review). - If you want to learn more about good software development practices you can checkout the [dedicated Carpentries curriculum](https://carpentries-incubator.github.io/better-research-software/). ## Extra tips on curriculum development - If you are interested in the phylosophy and behind-the-scene theory and practice on the Carpentries curriculum development check out [this curriculum](https://carpentries.github.io/lesson-development-training/) on the matter. - If you are interested in the material on becoming a Carpentries instructor check out [this curriculum](https://carpentries.github.io/instructor-training/), and particularly [Carpentries' pedagogical method](https://carpentries.github.io/instructor-training/02-practice-learning.html#the-carpentries-pedagogical-model). ## The Code of Conduct (CoC) 1. All maintainers and contributors shall abide the [Carpentries Code of Conduct](https://carpentrieshandbook.readthedocs.io/en/latest/topic_folders/policies/code-of-conduct.html). By participating in a discussion and engaging with any Carpentries repository, you are expected to follow the CoC. 2. If you witness a behaviour that you feel goes outside the established CoC, please submit the incident [here](https://carpentrieshandbook.readthedocs.io/en/latest/topic_folders/policies/incident-reporting.html).