BIRCH/Developer resources/git-kit
From Bioinformatics.Org Wiki
Basic Paper Outline
- Introduction
- What is Git-kit?
- At the very least, git-kit is a great automated backup daemon.
- Why was git-kit created?
- What does it do?
- What is Git-kit?
- Case study: BIRCH (brief mentions to bioLegato, PCD, and other techniques in development, as staging)
- Who is a git-kit user?
- A developer, writing programs can use git-kit to take advantage of the synchronization, backup, and branching features of git, without the headache.
- A researcher, for self-publishing papers, or even just backing up a "My Documents" folder.
- A project maintainer, to automate the compilation of nightly builds.
- Anyone who just wants to keep their files sync'd, and uses a service like "dropbox" currently.
- Core features
- Workspace deployment
- Users can define workspaces, to separately maintain "solution" (as opposed to "project") build environments.
- Integration with frameworks like premake, that allow for build automation.
- Users can define workspaces, to separately maintain "solution" (as opposed to "project") build environments.
- Auto-archiving
- The compression power of Git, using gzip (and optionally, 7z ) algorithms
- "Bit-keeper for pirates" - git as a code watchdog
- Hash-tables galore: lightning fast indexing
- Lean and mean: small footprint
- Deploy everywhere: git was designed to work seamlessly with Linux, which is at the surge of the Open-Source movement, and works with any gnu-compliant build framework.
- Workspace deployment
- Git-kit workflow*
- Get git-kit: download git-kit, and make sure you have python 2.6+ installed and on the PATH variable.#
- git-kit setup: configure your workspace, or load an existing workspace.
- Choose which files to ignore, where to backup remotely, and any build-hooks to run.
- git-kit sync: a daemonizable sync operation, that watches your directory structure of anything tracked in your workspace. Run it once after git-kit has been. This is designed to sync a submodule of a project, so that you can mix-and match, for easy re-use. It can be used for any type of file, but is most efficient with text as opposed to binary data. It is perfect for tracking documentation, source code, and core binaries (for bootstrapping). essentially, git-kit sync provides an open-source alternative to dropbox.
- Why building is so important
- Without a build system, source code is just useless text. Every time you make a change, you potentially break the code, or break a public API that another library depends on. Further, the more systems a build can run on, the larger portion of the market-share can be targeted with ease. As a developer attempting to target many systems, you must be able to maintain those systems if you hope to deploy to them.
- Future development
- git-kit handshaking. Using mDnsResponder, we will be able to register an mDns compliant communication framework. This will allow for automatic discovery of other build frameworks on any visible network. In short, mDns allows for one framework to call out "anyone out there?" by sending as specific code on MULTICAST broadcast, while other mDns responders are waiting. This means, if you have multiple git-kit daemons running at a time, you will be able to connect to them based on HOST-id, and launch distributed builds in userspace. Users will be able to define connections between workstations, so that at any of the workstations in the "git-kit subnet", you will be able tell all of the other systems to run a build, and then send you the build artifacts. For example, running on a linux, solaris, or apple, or even microsoft environment (and, conceivably, BSD) , you will be able to request builds for any other environment.
- Call to developers, researchers
- Any bio-informatics developers interested in publishing their code to the birch framework, and partnering up through VCS integration/deplopment