Contribution Workflow¶
The following steps are done for each recipe or batch of recipes you’d like to contribute.
1. Create a Branch¶
Next, we create a “branch”. You could in theory work on the master
branch, but it helps if you give the work you are intending to do a
name. That way you can more easily work on separate issues if one of
them turns out to be more complicated than you thought.
# Make sure our master is up to date with Bioconda
git checkout master
git pull upstream master
git push origin master
# Create and checkout a new branch for our work
git checkout -b update_my_recipe
2. Make Some Edits¶
Now you need to make your edits. Naturally, this can become rather complex.
If you have a PyPi recipe you want to package for Bioconda, you could
start with the conda skeleton
command creating a template
automatically:
cd recipes
conda skeleton pypi pyaml
(pyaml
is just an example. It would not be included in Bioconda as
it is a general purpose package. Those need to be added to
conda-forge
, where pyaml
is already present.)
Now edit the file(s) in the newly created folder (named according to the package).
You can verify your edits by looking at the diff
:
git diff
Or, you can have a look at the changed files and status of your repository using status
:
git status
3. Push Changes¶
To publish your changes, “add” them, then “commit” all added changes, then push the branch to GitHub:
# Choose the edited files to commit:
git add pyaml
# Create a commit (will open editor)
git commit
# Push your commit to GitHub
git push
4. Create a Pull Request¶
Now head back to GitHub. Go to your fork of the bioconda-recipes
repository and find the branch you have just created in the
Branch:
drop down. You should now see a message saying This
branch is 1 commit ahead [...] bioconda:master
. To the right of that
line you will find a button Pull Request
. Click this and follow
the instructions to open a new Pull Request.
If you get stuck, have a look at GitHub’s own About Pull Requests documentation.
Once you have opened a PR, our build system will start testing your changes. The recipes you have added or modified will be linted and built. Unless you are very lucky, you will encounter some errors during the build you will have to fix. Repeat 2. Make Some Edits and 3. Push Changes as often as needed.
Eventually, your build will “turn green”. If you are a member of
Bioconda, you can now add the please review & merge
label to
submit your PR for review. Otherwise, just ask on Gitter or ping
@bioconda/core
.
Once you changes have been approved, they will be “merged” into our main repository and the altered packages uploaded to our channel.
5. Delete your Branch¶
Once the Pull Request has been merged, you can click Delete Branch
directly on GitHub, or you can remove the branch with git
:
# Delete local branch
git branch -D my_branch
# Delete branch in your fork via the remote named "origin"
git push origin -d my_branch
6. Install Your Package¶
After the Pull Request has been merged, you will need to wait for a little while for the package to become available. Our channel is so popular that Anaconda decided to give us the “CDN treatment”. While this makes downloads faster, it means that updates to the Bioconda channel take approximately a half hour to propagate. Once this has happened, you can enjoy:
conda install my-package