Technology
Ryppl relies on the following technologies:
- Python 2.x
- Git
- CMake
- pip
- Distutils2
The Python Packaging Ecosystem
We’re heavily leveraging the packaging technology under development in the Python world, specifically the Distutils2 project (led by Tarek Ziadé) and the pip project (led by Ian Bicking). You can read more about how these tools relate in Tarek’s blog posting. The state of Python Packaging is confusing and messy, but this article helps a bit to clear things up.Learning about Git
The quick skinny on Git, if you don’t already know, is that it is a distributed revision control system that uses copy-on-write and preserves object identities across clones of a repository. What does that mean for you?- Distributed means that every working copy of a project has a subdirectory containing a repository that holds at least the complete development history up to that working copy state.
- Copy-on-write means that no data is ever destroyed, as long as it can be referenced, and Git can store commits and all their ancestors as objects.
- Object identities that persist across repositories means that when you pull someone else’s work into your repository, any history that work shares with what your repository contains is automatically and reliably recognized, and used. Each repository actually contains a subset of a potentially larger DAG of commits and merges.
Internals and Other Resources
- Git Reference
- Git from the bottom up (See also the links at the end of this document).
- Git for Computer Scientists
- Git home page
- hub: convenient shorthands for working with GitHub.
Information on Git Submodules
- http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html
- http://woss.name/blog/2008/4/9/using-git-submodules-to-track-plugins.html
- http://git.or.cz/gitwiki/GitSubmoduleTutorial
- http://gaarai.com/2009/04/20/git-submodules-adding-using-removing-and-updating/
- http://progit.org/book/ch6-6.html
