Setting up version control for Biopython
Having never been involved in a distributed development project before I knew that just gaining the technical ability to contribute to Biopython would be an uphill battle. To contribute to Biopython I had to prepare a development environment and get a handle on the git forking and merging workflow. Today I'd like my blog post to address my progress with git.
My previous experience with git is pretty standard for a developer who has not contributed to other projects before; I have several projects hosted on Github and I use git pull and git push exclusively to manage them and sync them between computers. This has the side effect of keeping my version history linear. Contribution to Biopython requires the full power of git's branching, merging, and tracking features. Thankfully, the hard work and thorough documentation of others has made this task easier for the beginners like myself.
When it became clear to me that my application was competitive, I started preparing early by reading the first few chapters of the Git Pocket Guide (R.E. Silverman). This book is inexpensive and provides plenty of depth on Git. As an added bonus, it's small enough to carry around until you are done with it. Having a stronger theoretical understanding of Git I was able to sink my teeth into the workflows outlined in Biopython's git usage wiki page. With the help of these two resources, I was prepared to manage the development of my features.
After forking Biopython on github I cloned my repository to my development computer and added the Biopython upstream repository. The master branch of my fork will be used to track changes in the upstream repository and to integrate changes ready for a pull request. The 'lazy-load' branch will be used for the addition of new features and lazy loading parsers outlined in my proposal.