Thanks to everyone for the reviews. Here is an updated version trying to take the remarks into account.
Regards, -- Nicolas George
>From fca492987eef197aa91a92c2ebe37ac3ff0acc58 Mon Sep 17 00:00:00 2001 From: Nicolas George <geo...@nsup.org> Date: Thu, 19 Mar 2015 21:51:19 +0100 Subject: [PATCH] doc: add a few note for sponsorship candidates. Signed-off-by: Nicolas George <geo...@nsup.org> --- doc/Makefile | 1 + doc/sponsored_internships_howto.texi | 160 +++++++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 doc/sponsored_internships_howto.texi 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..227005d --- /dev/null +++ b/doc/sponsored_internships_howto.texi @@ -0,0 +1,160 @@ +\input texinfo @c -*- texinfo -*- +@documentencoding UTF-8 + +@settitle Sponsored Internships HOWTO +@titlepage +@center @titlefont{Sponsored Internships HOWTO} +@end titlepage + +@top + +@chapter 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 sponsors the program, there is probably a lot of +paperwork; refer to their homepage for information about eligibility, +timeline, required paperwork, etc. This process is the full responsibility +of the intern; the limited available FFmpeg mentor time and motivation is +best spent on providing help specific to coding. + +As for FFmpeg, 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 your chosen qualification task on the ffmpeg-devel +mailing list, then start coding.. + +If at any point you have any question, do not hesitate to ask them on the +ffmpeg-devel mailing-list or on the IRC channel. + +@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 +internship. + +There are a few qualification tasks with each proposed project on the +@url{https://trac.ffmpeg.org/wiki/SponsoringPrograms, FFmpeg wiki}, and +there is also usually a table with the declared candidate and their +qualification tasks. + +@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. + +@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 answer 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. + +Intern candidates should be able to solve problems on their own, but it is +fine to ask questions when stuck or unsure about the task. When asking +questions, you are also expected to show how are you trying to solve the +related issue. + +@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 ffmpeg-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. + +@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 +do, possibly starting with @url{https://ffmpeg.org/git-howto.html}. + +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 +@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 to look in the code for the way of doing your +actual qualification task. + +@chapter How do I complete my qualification task? + +Usually, 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 +ffmpeg-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 certainly 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. + +If in doubt about the qualification task, in particular its exact scope, +discuss it with the mentor. + +@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 ffmpeg-devel mailing-list. + +You should subscribe to it, because otherwise, your mails will be held for +approval for up to 48 hours 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 +@url{https://lists.ffmpeg.org/pipermail/ffmpeg-devel/, low-tech mailing-list +archive} on the FFmpeg site to see how your mails actually look like. + +@chapter What if, in the end, I am not accepted? + +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. + +@bye -- 2.1.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel