We have migrated the code base from SVN to Git

Yes, Piwik has moved to GitHub! This is a significant technology move for Piwik and the team is thrilled by this change. Being on GitHub, we hope new developers and companies who believe in our mission to ? Liberate Web Analytics ? will join us and submit code, ideas and pull requests. For inspiration and amazing ideas, see Piwik 2.0.

Click on the screenshot and “Star” Piwik if you are a GitHub user. Below we describe why Git is so much better than SVN.

Piwik-GitHub-March-2013

What is Git?

Git is a free distributed revision control system. As explained on Wikipedia, Git was initially designed and developed by Linus Torvalds for Linux kernel development.

Since then, Git has been embraced by a lot of big projects like Ruby on Rails; and recently more and more open source projects have also made the switch (like PHPUnit which we use for our QA process).

Apart from being extremely fast, it is also a brand new way of thinking and coding. Being distributed means that when you get a copy of a project (a “clone” in Git speak), you retrieve locally a full-fledged repository with complete history. It allows you to easily work offline for instance.

The other big advantage of Git for a project like Piwik is the ease of accepting contribution from our users. Instead of submitting patches (which you can also do), you can “fork” the project, do some work and ask a member of the core team to “pull” your work. It dramatically lowers the barrier of entry for contributing to the Piwik core. You can also easily maintain your own version of Piwik, and merge the changes easily from the master branch (easy branching and merging is yet another big advantage of Git compared to Subversion).

Note: “What is Git?” section of this post is copied and modified from the Symfony2 Git migration blog post.

Looking ahead…

Travis CI builds for Piwik will soon be working, and our 3500+ tests will run automatically on a network of distributed continuous integration workers. The tests will be executed after each commit and for all pull requests automatically.

Our Trac is still used to manage feature requests and bug reports, and it is connected to GitHub: commits will automatically create a comment in the relevant ticket, and Trac links to changesets diffs on GitHub.

Contributing to Piwik with Git

We wrote a guide to explain the best way to contribute to Piwik using Git and Github.

Follow us on GitHub: https://github.com/piwik/piwik


Matthieu Aubry

While studying in India in 2006, Matthieu had the idea of creating an open source web analytics alternative to Google Analytics. In 2007 he released the first public beta version of Piwik. Matthieu now leads the project from New Zealand, where he likes to spend his days coding new features from the Piwik Roadmap, and helping users and customers use Piwik effectively. Find him on twitter or github.