Software Carpentry is an open source/open access project, and we welcome contributions of all kinds. By contributing, you are agreeing that Software Carpentry may redistribute your work under these licenses. Please see this page for a list of contributors to date.
We welcome improvements to the main swcarpentry/bc
repository, which is used
as the template repository for new bootcamps. New and/or improved lesson
materials are particularly welcome.
Basic instructions for contributing are below. Before beginning this workflow,
we recommend that you open an issue in the swcarpentry/bc
Issue Tracker to
get feedback on your ideas and coordinate with other developers.
-
Fork the
swcarpentry/bc
repository on GitHub. -
If you are beginning from a local
YYYY-MM-DD-site
repository (for example, from a bootcamp that you taught), make your fork ofbc
a remote named "upstream" within this repo using:git remote add upstream https://github.com/<me>/bc.git
(replacing 'me' with your GitHub username)
If you do not wish to start with a
YYYY-MM-DD-site
repository copy, clone a local copy of yourbc
fork and replace all instances ofupstream
in the instructions below withorigin
. -
If you have not done so already, add the main
swcarpentry/bc
repository as a remote named "swcarpentry":git remote add swcarpentry https://github.com/swcarpentry/bc.git
-
Isolate the changes you want to share in a branch and push them to your fork on Github. If you are making new changes, replace the
git cherry-pick
line below with your variousgit commit
commands.git fetch swcarpentry git checkout -b improvements swcarpentry/master git cherry-pick <commits related to improvements on your bootcamp's gh-pages branch> git push upstream improvements
The
gh-pages
branch in theswcarpentry/bc
repository is currently being used as the production branch that provides the template for bootcamp teaching materials, while themaster
branch is currently being used for development and integration and may contain incomplete materials. In general, you should usemaster
as the starting point for yourimprovements
branch, although you may also usegh-pages
for fully complete changes or new materials that should be introduced immediately into the teaching curriculum. -
Send a pull request to the
master
orgh-pages
branch ofswcarpentry/bc
on GitHub.
If it is easier for you to send them to us some other way, please mail us at [email protected].
Software Carpentry uses a development workflow similar to that of many other open source projects. For a graphical introduction to feature branches as we use them, see GitHub's workflow guide. For more information about getting started with Git, see our Git lesson.