Whether you are an artist, a software developer, a translator or an avid tester, you can help improve Pitivi. This page will help you get started. Do not hesitate to come have a chat with us online — or meet us at one of the various conferences/hackfests we attend!
Why contribute to Pitivi instead of another project?
Pitivi is used by thousands of people and some of our users are very happy.
We use the brilliant GStreamer multimedia framework, and we are committed to fixing problems directly upstream instead of piling up nasty hacks in our application. See this blog post for a contributor testimonial of why GStreamer rocks for video editing.
Pitivi is well-architected, with a separation of the core, the user interface, and libraries such as GStreamer, GNonLin, etc.
It is written in Python. Python is fun and allows for easier development.
Our bug tracker is well-organized and issues are investigated systematically.
We have a friendly and active community in our IRC channel.
We have an official policy to review (and hopefully merge) patches within three weeks. Your contributions are important, and we want to provide timely feedback whenever possible.
We have a long project history and we are here to stay. We have acquired a lot of experience that younger projects do not have. Don't make the mistake of "reinventing the wheel" like countless others.
Features are designed and implemented carefully.
We offer excellent mentorship for students participating in Google's Summer of Code programme.
Thanks to GStreamer, we also benefit from improvements in other video editing libraries like FFMpeg, libvisual and frei0r (among others).
Our core developers are GStreamer experts and have been working in the field for years.
In summary: when you contribute to Pitivi, your time is not lost.
There are three main areas where you can contribute code:
Pitivi itself, mostly UI work. It is written in Python (a flexible, easy to learn high-level programming language), which helps lower barriers of entry and keeps the code clean and simple. See also our coding style convention.
Pitivi's test suite (also written in Python). Feel like improving the quality of Pitivi but not comfortable enough to jump into the "real" code? This is for you! Writing dogtail scripts is incredibly easy and fun. There's always room for improvement and more comprehensive testing, so think about corner cases/reproducible bugs that you'd like to see systematically tested, and write some test cases for them! See the test suite page on the wiki.
GStreamer Editing Services, the C library on which Pitivi depends to do all the serious work. If you want to work on the backend, this is the way to go.
Build the current development versions of Pitivi and GES (see the download page).
Take a look at the "stuff to be done" and "developer documentation" sections below.
The wiki is our main documentation. It has been completely reorganized in 2011 to make it easier for you to find what you're looking for right from the main page, be it our PyGST tutorial, the design specifications of core components or user interface components, how to interact with the project, etc. Go ahead, take a look at the developer documentation, and if you find incomplete or outdated information, please notify us (or edit the pages directly!).
Other ways to help
Translations are kindly handled by dedicated translation teams from the GNOME community. To be able to commit translations to Pitivi in an organized fashion, you must join the GNOME translation team for your native language.
Improving the user manual
We use Mallard to provide a high-quality, topic-oriented user manual. Help us by writing new topics, refining existing ones, or simply by reviewing and keeping the user manual up-to-date and ready for the next release.
Maintaining the wiki
Our wiki has many documentation pages that need to be updated, cleaned or made obsolete. Having an up-to-date and consistent wiki for contributors is important. Of course, we will provide guidance and help you towards this glorious goal.
Making suggestions and reporting bugs
We use Phabricator to track enhancement requests and bug reports. Take a look at our bug reporting page for details and useful links.