1# Google Summer of Code
2
3The [Google “Summer of Code” program] is available for students only. If
4we accept your project proposal, in June-July-August you work on your
5project while being paid by Google. Mid-term and end-term we evaluate
6your work.
7
8On the technical side, it might interest you that we use GES/GStreamer
9as backend, GTK for the UI, the Meson build system, and Flatpak to make
10builds for users. Flatpak also allows us to have a sandboxed development
11which means it's very easy to setup, you are set up in no time, and you
12don't have to run a virtual machine or f\*\*k up your system to be able
13to build the latest GStreamer and Pitivi. See the section at the top of
14the [contributing page] for details why Pitivi is important.
15
16While a GSoC with us is one of the most fun and rewarding experiences
17you can get, you need to consider it as *professional work*:
18
19-   **GSoC projects are on a “full-time” basis, not “part-time”**. What
20    this means is that you should not apply if you have some strange
21    schedule where, for example, you have school exams for many weeks
22    between early May and late August. If you have school
23    exams/obligations during the summer, *you need to mention them* and
24    account for them in your schedule.
25-   **No excuses!** We expect you to be a reliable, hard-working person.
26    If things don't go well because for example your roommates are
27    noisy, you don't have air conditioning, or your internet connection
28    is unreliable, and you can't fix it, tell us so we can terminate
29    your GSoC.
30
31Since 2014, our official policy is to ignore “theoretical” applications
32— to be eligible, you **must** have gotten involved early-on and made at
33least one contribution prior to applying. Read more about our stance in
34this blog post: “[Applying for a GSoC project is all about early
35involvement and commitment]”. If you are interested, the best thing you
36can do is to come to our [IRC channel] now, to make sure we have enough
37time to get to know you.
38
39  [Google “Summer of Code” program]: https://developers.google.com/open-source/gsoc/
40  [contributing page]: http://www.pitivi.org/?go=contributing
41  [Applying for a GSoC project is all about early involvement and
42  commitment]: http://jeff.ecchi.ca/blog/2014/02/15/applying-for-a-gsoc-project-is-all-about-early-involvement-and-commitment/
43  [IRC channel]: http://www.pitivi.org/?go=contact
44
45# Who we are looking for
46
47We are looking for smart and talented developers interested in
48multimedia and video editing.
49
50You need to be highly **communicative**. Stuck on a problem? We need to
51know. Achieved a milestone or solved a really nasty problem? The *entire
52world* needs to know. We require to see you in our IRC channel, that's
53where you can meet the team, where you follow what's going on and that's
54where we'll communicate. Email is not sufficient. If you're new to IRC,
55check out [IRCCloud] and [riot.im]
56
57You must have experience with Python or C, depending on your project.
58Knowledge of [Git], GStreamer and [related technologies] is a plus.
59Familiarity with [Test-Driven Development] is a plus.
60
61  [riot.im]: https://riot.im/app
62  [IRCCloud]: https://www.irccloud.com/pricing
63  [Git]: Git.md
64  [related technologies]: Architecture.md
65  [Test-Driven Development]: http://en.wikipedia.org/wiki/Test-driven_development
66
67# What we offer
68
69You have a fantastic learning opportunity to play with [technologies]
70such as GStreamer, GTK+, Python, etc. We'll direct you to make great use
71of the tight-knit GStreamer and GTK communities so you have high-quality
72feedback throughout your project.
73
74You can improve the lives of thousands of users by working on a tangible
75and fun project.
76
77You have the opportunity to present your accomplishments to others at
78[GUADEC] where you can also meet with us. In past years the travel
79expenses for GSoC students have been covered by GNOME.
80
81See more [reasons for contributing].
82
83  [technologies]: Architecture.md
84  [GUADEC]: http://en.wikipedia.org/wiki/GNOME_Users_And_Developers_European_Conference
85  [reasons for contributing]: http://www.pitivi.org/?go=contributing
86
87# How to apply and get started
88
89![](images/Challenge-Accepted.png "Challenge-Accepted.png")
90
91You don't have to be a veteran hacker but it is important that you prove
92to us — and to yourself — that you *know* what you're getting into and
93that you can handle it. You need to demonstrate that you have sufficient
94technical skills, motivation, and have some familiarity with the
95application and its source code. This also ensures that you get to know
96members of the community and have sufficient time and information to
97properly plan your project.
98
99See also [our official stance] (as of 2014) on the matter and Lionel
100Dricot's blog post on “[Being selected as a Summer of Code student]”.
101
102Therefore, you should proceed like this:
103
1041.  Come to our [IRC channel] and stick around.
1052.  Setup your [development environment] and run the [Test suite].
106    Explore the development version of Pitivi, what works well and what
107    doesn't, etc. See how you like it.
1083.  To get a better idea of how comfortable you are with the code and
109    community, make some small contributions to the code. Pick some
110    small [bugs] to fix or pick a “small” task in the [Pitivi tasks for
111    newcomers] list and have a go at it. Keep us in the loop. The
112    earlier you start contributing, the more likely you know what you're
113    getting into. Don't start contributing in March/April: we highly
114    encourage you to start getting involved in January/February, or even
115    earlier, to have time to try another team if we are not a good fit
116    for you.
1174.  Find a cool feature you need in Pitivi and tell us. Start making a
118    design doc on how you plan to implement it.
1195.  Fill out the [application] and apply officially to the Google's
120    Summer of Code [website] under both the GNOME or GStreamer mentoring
121    organizations, depending on your project.
122
123  [our official stance]: http://jeff.ecchi.ca/blog/2014/02/15/applying-for-a-gsoc-project-is-all-about-early-involvement-and-commitment/
124  [Being selected as a Summer of Code student]: http://ploum.net/be-selected-student-for-soc/
125  [IRC channel]: http://www.pitivi.org/?go=contact
126  [development environment]: https://github.com/pitivi/pitivi/blob/master/docs/HACKING.md
127  [Test suite]: Testing.md
128  [bugs]: https://phabricator.freedesktop.org/project/view/15/
129  [Pitivi tasks for newcomers]: https://phabricator.freedesktop.org/tag/pitivi_tasks_for_newcomers/
130  [application]: https://wiki.gnome.org/Outreach/SummerOfCode/Students#Fill_out_the_Application
131  [website]: https://developers.google.com/open-source/gsoc/
132
133# Project ideas
134Pitivi is a very modular video editor, whose [architecture] heavily
135depends on technologies like [GES] and GStreamer. The scope of your GSoC
136project will probably cover only Pitivi, but it could very well span
137multiple codebases:
138
139-   [Pitivi], which is the user interface. Written in Python. *For those
140    who love design and graphical user interaction.*
141-   [GES], the high-level video editing GStreamer library that powers
142    Pitivi and other applications. Written in C. *For those who wish to
143    improve an easy to use, powerful and flexible library for
144    audio/video editing.*
145-   GStreamer, for low-level work, such as improving filters/effects,
146    codecs, hardware decoding/encoding acceleration, analysis, etc.
147    Written in C. *For those seeking a challenging audio and video
148    experience where optimization is key.*
149
150We'd love to see GSoC proposals originating from an itch you need to
151scratch. You are welcome to ask around and **bring your own ideas**. If
152you're not sure where you can be most useful, have a look at the “large”
153tasks in the [Pitivi tasks for newcomers] list. They are fun cool
154features very suitable for a GSoC project. See the [roadmap] for our
155overall vision for the project. Deadlines for applying are approaching
156fast, hurry up!
157
158See [Past GSoCs] for details on what the previous GSoC students did.
159
160  [architecture]: Architecture.md
161  [GES]: GES.md
162  [Pitivi]: http://www.pitivi.org/manual/mainwindow.html
163  [Pitivi tasks for newcomers]: https://phabricator.freedesktop.org/tag/pitivi_tasks_for_newcomers/
164  [roadmap]: Roadmap.md
165  [Past GSoCs]: Past_GSoCs.md
166