[FFmpeg-devel] [PATCH] doc: add a few note for sponsorship candidates.

Nicolas George george at nsup.org
Thu Mar 19 21:53:12 CET 2015

Signed-off-by: Nicolas George <george at nsup.org>
 doc/Makefile                         |   1 +
 doc/sponsored_internships_howto.texi | 148 +++++++++++++++++++++++++++++++++++
 2 files changed, 149 insertions(+)
 create mode 100644 doc/sponsored_internships_howto.texi

Not sure if the best place is there or the wiki, but at either place,
something like that should be useful. Comments?

diff --git a/doc/Makefile b/doc/Makefile
index 697142f..8b76feb 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -26,6 +26,7 @@ HTMLPAGES   = $(AVPROGS-yes:%=doc/%.html) $(AVPROGS-yes:%=doc/%-all.html) $(COMP
               doc/git-howto.html                                        \
               doc/nut.html                                              \
               doc/platform.html                                         \
+              doc/sponsored_internships_howto.html                      \
 TXTPAGES    = doc/fate.txt                                              \
diff --git a/doc/sponsored_internships_howto.texi b/doc/sponsored_internships_howto.texi
new file mode 100644
index 0000000..eada355
--- /dev/null
+++ b/doc/sponsored_internships_howto.texi
@@ -0,0 +1,148 @@
+\input texinfo @c -*- texinfo -*-
+ at documentencoding UTF-8
+ at settitle Sponsored Internships HOWTO
+ at titlepage
+ at center @titlefont{Sponsored Internships HOWTO}
+ at end titlepage
+ at top
+ at chapter So yeah, I would like to work on FFmpeg for @url{https://code.google.com/soc/, Google Summer of Code} / @url{http://sophia.estec.esa.int/socis/, ESA Summer of Code in Space} / @url{https://www.gnome.org/outreachy/, Outreachy} / [insert here the latest trendy program]. What must I do?
+For the organization that sposors the program, there is probably a lot of
+paperwork. But frankly, we do not care; if we liked paperwork, we would be
+managers, not hackers.
+For us, there is not much to do: choose a proposed project that you want to
+do, select a qualification task for that project that is not already taken
+by someone else, announce you are about to start working, and then do so.
+If at any point you have any question, do not hesitate to ask them.
+Actually, yes, hesitate a few seconds, in case this question will make you
+look dump. So read on.
+ at chapter What is a qualification task?
+A qualification task is a small part of the project, or a small peripheral
+project, that serves to evaluate the candidates before starting the actual
+There are a few qualification tasks with each proposed project on the
+ at url{https://trac.ffmpeg.org/wiki/SponsoringPrograms, FFmpeg wiki}, and
+there is also usually a table with the declared candidate and their
+qualification tasks.
+ at chapter So, how do I make sure @emph{I} get the internship?
+Hopefully, you realize that each Libre Software project has only one or a
+few slots in any sponsored program; and even if we have several slots, we
+can not have several interns working on the same project, or possibly even
+with the same mentor.
+So basically, this is a competition.
+You have to be better than the other. Or at least to look more interesting
+to work with.
+ at chapter And how do I do that?
+Start simple: how did you reach this page? If you arrived here by yourself,
+congratulations, you win the first point.
+You are not expected to know everything, especially not details about how
+FFmpeg works, but when the answser to a question is easily available with a
+web search, you are expected to find it. Potential mentors get tired of
+replying always the same elementary things to candidates.
+So the first commandment: first try to find answers by yourself.
+ at chapter How do I contact you? And, in fact, who are you?
+The people who work on FFmpeg do so mostly on their free time or as a
+complement to their regular job in computing or consulting. To contact us,
+you can use the devel mailing list or personal mail, depending on the
+contents of the message. Use discretion. You can also try the IRC channel.
+Some sponsoring organizations have an internal message system. Use it only
+in last resort. It is usually vastly inferior to the mail user agents we
+enjoy to use, and the notifications may not even reach us, or be classified
+as spam.
+ at chapter How do I get to work?
+First, download FFmpeg. Not a prebuilt binary. Not a source snapshot. A full
+Git clone tree. If you do not know what that means, then you have reading to
+Then, build FFmpeg, and try to run it from the build tree, without
+installing it.
+Note: neither downloading nor building require privileges. If you had to
+ at command{su} or @command{sudo} for anything other than installing missing
+external libraries or tools, then you did something wrong and it will make
+your life harder later.
+Then, try to make a trivial change, like rewording an error message or
+changing the default value of an option. Test that it works as expected.
+At this point, you are ready do look in the code for the way of doing your
+actual qualification task.
+ at chapter How do I complete my qualification task?
+Your qualification task is considered complete when the corresponding
+changes have been included in the official source repository.
+For that, the patch (or several patches) must be submitted to the devel
+mailing-list for review, not only by your mentor but by any developer
+interested in that area of the code. For first-time proposals, it will
+probably take several round-trips of reworking the patch and re-sending it,
+so start proposing something early and try to do frequent updates.
+Patches should be submitted using the specialized @command{git} commands,
+just as explained in the doc.
+ at chapter How do I communicate with the developers?
+Like with equals, but equals that happen to have more experience about
+FFmpeg than you.
+The main contact point is the devel mailing-list.
+You should subscribe to it, because otherwise, your mails will be held for
+approval instead of arriving in a few seconds.
+Like all mailing lists in the world, it has its own set of rules, called
+netiquette. If you break too many of them, some people may be irritated,
+that is not good for a candidate. It is probably a good idea to subscribe
+the mailing-list early and follow the discussions, even those about parts of
+the code that are not near your area, just to see how people who get their
+patch accepted right away do it.
+Also, be aware that some mail user agents send mails that are unreadable
+except by themselves; some have strange ideas about paragraph formatting and
+apply them to code snippet too. You can have a look at the low-tech mail
+archive on the FFmpeg site to see how your mails actually look like.
+ at chapter What if, in the end, I am not taken?
+Well, you will not get the big bucks from the sponsor. We sincerely hope
+that will not mean the end of the world for you.
+That definitely must not mean the end of your investment in FFmpeg, unless
+you want to. Remember when we said that a lot of FFmpeg developers do it on
+their free time? You probably have some free time too.
+Even during one or two weeks of qualification task, you probably learned
+useful skills, probably more than people who made coffee and photocopies in
+big corporations. You can continue to contribute if you want, all good
+patches are welcome.
+And think of it, “I worked on FFmpeg during GSoC” looks good on a résumé,
+but “I work on FFmpeg on my own merits” looks probably even better.
+And of course, if you are eligible to candidate for another program later,
+that puts you in a very good place.
+ at bye

More information about the ffmpeg-devel mailing list