Technology

Ryppl relies on the following technologies:

  • Python 2.x
  • Git
  • CMake
  • pip
  • Distutils2

You don’t need to know Python at all to use Ryppl; it’s just an implementation language. You also don’t need to know Git… unless you are going to be doing development work on Ryppl projects. Ryppl projects are always managed via Git repositories. If you really must use a different SCM for real development work, there are ways to link Git with most popular SCMs.

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.

If you need to know more and you’re just getting started with Git, pick up Pro Git and watch Contributing with Git, Johannes Schindelin’s introductory Google Tech Talk.