A while back, I opened (as in ‘made available’) BitSyncHub, a tool to automatically synchronize Bitbucket repositories to Github. At the time I saw no real reason to open source it - it was a quick hack to solve my own problems, and I felt that anyone else could just reproduce it if they wanted to.
Since then, a whole lot of open source projects, including a few big names, has started using the service, and when I had to reply to a recent support request from one of these projects that I did not have time to look into their issue due to daytime work, I realized that some projects are now depending on the service staying up and working.
Some of you may have noticed that BitSyncHub (and my company homepage) went down for almost three days this week.
Now, I’m proud of my skills building highly available, fault-tolerant, state-of-the art and bleeding edge systems, deployed on OS, vendor and geographically redundant infrastructure, that never goes down. Sometimes a failover may take a short while, or parts of a system may get bogged down and queues build up, but the system, while on it’s knees, may never fail.
Since I got several requests for BitSyncHub to support BitBucket Git repository synching to GitHub, I went ahead and added the functionality. The service will dedtect the appropriate repository type, and push specified branches - although the source branch will be ignored for now, so a branch speficiation of ‘foo:bar’ will simply push ‘bar’.
To make this happen, I finally had to bring gitapi a bit closer to completion, so I released the first version to PyPi for general consumption as well.
Introducing BitSyncHub Since I’m an automation nut, when I found Travis CI, I was understandably excited - automatic running of my testcases for hgapi from the repository as opposed to a pre-push hook (as I have had it set up since the beginning of time) would avoid the oh-so embarrassing mistakes of forgetting to add a new file to the repository and having a non-working version in the repo. I just have to set up some service to synch to the GitHub mirror and all will.
Tools I use every day to write better Python, to make it more fun, or just easier:
A good editor I prefer Emacs, you might like something else, but trust me on this - it’ll be a humongous project that forces you to use a full IDE. If you stay clear of large web frameworks, you might never need it. I started out using PyDev since I was used to Eclipse, but now I just don’t think its worth the complexity and overhead.