Community involvement

~Ducking Out~

Although PiTiVi is a FLOSS project developed entirely in the open (that is, everything is public/transparent), I have been told that it still feels intimidating for potential new contributors. Believe it or not, I spend a lot of time thinking about that and smoothing out that process. Sometimes I still find myself a bit surprised that people are not exactly rushing through the doors to hack on the code. I have a few multi-factorial theories about that (they make for lively conversations), but this is not the point of this blog post.

Inspired by Monty’s great video on xiph, I was thinking that I could do a série of videos explaining how the PiTiVi project “works” and how to get started/familiar with its structure. Or maybe it could be a single monolithic video*.

Some random ideas of stuff I could talk about:

  • Why contribute to PiTiVi in particular
  • Obstacles that might arise (but… which ones? I’m not sure what they are)
  • Who does what in the project
  • Our development and release process
  • How to make good bug reports
  • Understanding the core principles behind the use of a DVCS (such as the fact that you don’t actually need commit access to the master git repository… make your repository/branches awesome, and natural selection should do the rest), along with a few “gotchas” specific to PiTiVi
  • Our (very) decentralized infrastructure
    • (translations on gnome, website on a private server, wiki on a different server, bug tracker on gnome, git on private server and github and others, mailing lists on sourceforge…).
    • IMHO, this should not even be a topic I should have to cover; everything could/should be on the GNOME servers instead of being scattered all over the Internet.

However, this all seems extremely vague and generic to me. So, dear readers, if you wanted to get involved with PiTiVi (or a video editor project in general),

  • What would you like to know, to make things easier for you? Are there any specific topics you would like me to address?
  • Are there specific problems (except lack of time/skill/the usual excuses) that are preventing you from contributing? If there are issues that you wish to discuss privately, you can also email me (nekohayo at gmail).

If there’s demand for it (and some help identifying topics), I could then attempt making some videos. Probably not as impressive as Monty’s video, because I don’t have cameramen, Redhat sponsorship, fancy microphones, a whiteboard, unlimited time and a huge pile of oscilloscopes… but I think it woud be fun nonetheless. And of course, if anybody wants to help…

*: experience tells me that rarely do people make more than one episode ;-)

6 thoughts on “Community involvement

  1. I have been meaning to hack away at pitivi’s code for a little while now. I downloaded the code, built the latest gstreamer using gst-jhbuild and I got pitivi running.

    Here are some reasons that I have not contributed yet:

    I don’t know how the pieces fit together. With time, I could study the code and understand which modules are used where but this requires significant time and effort. Some kind of flow chart or other documentation might be helpful to shorten the time it takes to get into a code-base.

    I don’t know what to try doing. The pitivi wiki page has a page of relatively simple tasks to start with but a little more searching in the bug reports makes it seem as though almost all of them are already being worked on.

    gstreamer doesn’t build for me anymore. I know that I should notify the gstreamer developers and they could probably help me narrow down the problem that I’m having.

    These are the reasons that I could come up with off the top of my head. If you were going to make a video I would recommend making a video of how to get everything setup so that all dependencies are covered, how to get the latest version of pitivi, what to do to build it, how to run it. And then, go through a typical change and commit cycle — make the change, run it to test the change, etc.

    These are just my 2 cents, I hope you find my comments useful.

  2. About how the pieces fit together: does the “Components Design” section in http://wiki.pitivi.org/wiki/Design_Docs help at all? (I’m not sure if it’s all up to date)

    The pitivi wiki page has a page of relatively simple tasks to start with but a little more searching in the bug reports makes it seem as though almost all of them are already being worked on.

    I’m a bit surprised, because I remove the completed items from http://wiki.pitivi.org/wiki/PiTiVi_Love and I usually write the names of people there if there’s someone “seriously working on it”; the ones I can see with a patch are:
    – Power saving inhibition
    – Version checker
    – Preview in chooser
    – Import from the web (previously known as “Youtube import”)

    And there’s maybe 2-3 others that are “incomplete attempts” with nobody working on them.

    The rest of the items in that list… nobody is working on it at the moment.
    How should this page be improved?

  3. The biggest barrier of entry is that it’s developed in python. Why not using something more performant such as boo or Genie (also very similar to py), or at least something more language agnostic like ironpython (also more performant)?

  4. @antimonio:
    Python is not the performance bottleneck here. Seriously. GStreamer is the one doing the heavy lifting, and it’s written in C.

    Even then, Python is pretty damn fast, unlike what people tend to think.

    Pitivi is basically (in crude terms) “just” a pretty front-end on top of libraries/frameworks like gnonlin and gstreamer.

    Most performance issues on desktop apps are not micro-optimization problems, but I/O bound operations or “stupid algorithms/methods that do unnecessary work”. Federico had a great presentation along those lines a couple of years ago:

    http://people.gnome.org/~federico/docs/2007-02-FOSDEM/html/index.html
    (but I recommend the video recording of the presentation instead: http://video.fosdem.org/2007/FOSDEM2007-ProfilingDesktopApplication.ogg )


  5. nekohayo:

    About how the pieces fit together: does the “Components Design” section in http://wiki.pitivi.org/wiki/Design_Docs help at all? (I’m not sure if it’s all up to date)

    At first glance that looks very helpful. I’m going to read through those and let you know if I see ways in which they need improvement. I know that it takes significant effort to keep documentation up to date with a project that is in development.


    nekohayo:

    I’m a bit surprised, because I remove the completed items from http://wiki.pitivi.org/wiki/PiTiVi_Love and I usually write the names of people there if there’s someone “seriously working on it”; [...]

    I’ll take a closer look at these. It could be that I was mistaken when I looked at the bug reports and it wasn’t that someone was actually working on implementing the detail, they were just brainstorming. Also, the last that I searched through those was a few months ago so things may have changed.

    I’m still a student and this last semester was pretty crazy but I’m looking at a fair amount of time of my own around Christmas and I’m hoping to be productive in some way. I’ll put some effort into getting into Pitivi and if something isn’t working, I’ll spam the mailing list.

  6. Not only the mailing list, but do come hang around on #pitivi on irc.freenode.net! You usually get feedback and help much quicker this way. It’s much more dynamic and it lets you peek around at what may be going on at the moment, development-wise.

Comments are closed.