Frequently asked questions

  1. I’m a developer for Bioconductor, my package ExamplePackage is on the new server https://git.bioconductor.org. What do I do next?

    Take a look at Maintain GitHub and Bioconductor repositories. This will give you the information needed.

  2. I have a GitHub repository already set up for my Bioconductor package at www.github.com/<developer>/<ExamplePackage> , how do I link my repository in GitHub and https://git.bioconductor.org ?

    Take a look at New package workflow. Step 2 gives you information on how to add the remote and link both GitHub and Bioconductor repositories.

  3. I’m unable to push or merge my updates from my GitHub repository to my Bioconductor package on git@git.bioconductor.org, how do I go about this?

    If you are unable to push or merge to either your GitHub account or Bioconductor repository, it means you do not have the correct access rights. If you are a developer for Bioconductor, you will need to submit your SSH public key.

    You should also make sure to check that your public key is set up correctly on GitHub. Follow Adding an SSH key to your GitHub account.

  4. I’m not sure how to fetch the updates from git.bioconductor.org with regards to my package, how do I do this?

    Take a look at Sync existing repositories. This will give you the information needed.

  5. I’m just a package user, do I need to do any of this?

    As a package user, you do not need any of these developer related documentation. Although, it is a good primer if you want to be a contributor to Bioconductor.

    You can also open pull requests and issues on the Bioconductor packages you use, if they have a GitHub repository.

  6. I’m new to git and GitHub, where should I learn?

    There are many resources where you can learn about git and GitHub.

  7. SVN was working well for me, why do we have to move?

    We believe that git, and social coding are the way forward for open source projects. They enable participation from a larger audience. Switching from SVN allows us to better manage the packages being contributed to Bioconductor.

  8. I’m a Bioconductor package maintainer, but I don’t have access to the Bioconductor server where my packages are being maintained. How do I gain access?

    Please submit your SSH public key or Github ID. Your key will be added to your our server and you will get read+ write access to your package.

    All developers of Bioconductor packages are required to do this, if they don’t already have access. Please identify which packages you need read/write access to in the email.

  9. What is the relationship between the origin and upstream remote?

    In git lingo origin is just the default name for a remote from which a repository was originally cloned. It might equally have been called by another name. We recommend that origin be set to the developers GitHub repository.

    Similarly, upstream is the name for a remote which is hosted on the Bioconductor server.

    It is important that all the changes/updates you have on your origin are equal to upstream, in other words, you want these two remotes to be in sync.

    Follow Sync existing repositories for details on how to achieve this.

    Image explaining GitHub and Bioconductor relationship for a developer

  10. Can I have more than one upstream remote, if yes, is this recommended?

    You can have as many remotes as you please. But you can have only one remote with the name upstream. We recommend having the remote origin set to GitHub, and upstream set to the Bioconductor git server to avoid confusion.

  11. Common names used in the scenario’s

    developer: This should be your GitHub username, e.g., mine is nturaga.

    BiocGenerics: This is being used as an example to demonstrate git commands.

    ExamplePackage: This is being used a place holder for a package name.

    SVN trunk and git master branch are now the development branches.

  12. I’m a Bioconductor developer only on the Bioconductor server. I do not have/want a GitHub account. What should I do?

    You do not have to get a Github account if you do not want one. But it is a really good idea, to maintain your package publicly and interact with the community via the social coding features available in Github.

    We highlight this in Maintain a Bioconductor-only repository

  13. I cannot push to my package. I get the error,

    $ git push origin master
    fatal: remote error: FATAL: W any packages/myPackage nobody DENIED by fallthru
    (or you mis-spelled the reponame)
    

    (you might have renamed the origin remote as upstream; substitute upstream for origin. Check your remote,

    $ git remote -v
    origin  https://git.bioconductor.org/packages/myPackage.git (fetch)
    origin  https://git.bioconductor.org/packages/myPackage.git (push)
    

    As a developer you should be using the SSH protocol, but the origin remote is HTTPS. Use

    git remote add origin git@git.bioconductor.org:packages/myPackage
    

    to change the remote to the SSH protocol. Note the : after the host name in the SSH protocol, rather than the / in the HTTPS protocol. Confirm that the remote has been updated correctly with git remote -v.

    If your remote is corret and you still see the message, then your SSH key is invalid. See the next FAQ.

  14. Before sending a question to the Bioc-devel mailing list about git, please check the output of the following commands for correctness so that we can help you better.

    • As a developer check to make sure, you are using SSH as your access protocol. Check the output of git remote -v for consistency. Include this in your email to bioc-devel, if you are unsure. The remote should look like,

        origin  git@git.bioconductor.org/packages/myPackage.git (fetch)
        origin  git@git.bioconductor.org/packages/myPackage.git (push)
      

      or

        origin  git@github.com:<github username>/myPackage.git (fetch)
        origin  git@github.com:<github username>/myPackage.git (push)
        upstream  git@git.bioconductor.org/packages/myPackage.git (fetch)
        upstream  git@git.bioconductor.org/packages/myPackage.git (push)
      
    • Check if you have access to the bioc-git server (git@git.bioconductor.org), by using ssh -T git@git.bioconductor.org. This will show you a list of packages with READ(R) and WRITE(W) permissions. As a developer you should have R W next to your package. This is based on the SSH public key you are using, the default for ssh authentication is id_rsa.

        R    	admin/..*
        R    	packages/..*
        R  	admin/manifest
        R  	packages/ABAData
        R  	packages/ABAEnrichment
        R  	packages/ABSSeq
        R W  	packages/ABarray
        R  	packages/ACME
        R  	packages/ADaCGH2
        R  	packages/AGDEX
      
  15. SSH key not being recognized because of different name?

    If you have named your SSH public key differently from id_rsa as suggested by ssh-keygen, you may find it useful to set up a ~/.ssh/config file on your machine. Simply make a ~/.ssh/config file if it does not exist, and add,

    host git.bioconductor.org
        HostName git.bioconductor.org
        IdentityFile ~/.ssh/id_rsa_bioconductor
        User git
    

    In this example, my private key is called id_rsa_bioconductor instead of id_rsa.

  16. SSH key asking for a password and I don’t know it? How do I retrieve it?

    There are a few possibilities here,

    • You have set a password. The bioc-devel mailing list cannot help you with this. You have to submit a new key on the google-form.

    • The permissions on your SSH key are wrong. Verify that the permissions on SSH IdentityFile are 400. SSH will reject, in a not clearly explicit manner, SSH keys that are too readable. It will just look like a credential rejection. The solution, in this case, is (if your SSH key for bioconductor is called id_rsa):

        chmod 400 ~/.ssh/id_rsa
      
    • You have the wrong remote set up, please check git remote -v to make sure the SSH access protocol is being used. Your bioc-git server remote, should be git@git.bioconductor.org:packages/myPackage.

  17. After submitting my SSH key to the google form, I did not receive a reply. How do I check?

    Once you submit your SSH key to the google form, you should receive an email notification (from google) confirming your submission. You should receive another email notification if you key was added to our system from maintainer@bioconductor.org, or if you submitted an invalid entry.

    git clone git@git.bioconductor.org:packagse/<myPackage>
    

    If this suceeds via the SSH protocol, then it means that you have access to your package.

More questions?

If you have additional questions which are not answered here already, please send an email to bioc-devel@bioconductor.org.

Bioconductor source control overview.

Adding a new SSH key to your GitHub account

Create a pull request on GitHub

Create an issue on GitHub

Git and GitHub learning resources

git-scm manual

GitHub Guides