(ou Comment j'ai eu une job chez Wikimédia en quatre mois)
par Frédéric Bolduc
Google Summer of quoi?
Appliquer à GSoC
Travailler chez Wikimédia
Contribuer à Wikipédia
Google Summer of Code:
est un programme international visant à regrouper les étudiants universitaires avec des Open Source Organizations (OSO)
est organisé par Google chaque été, de la fin mai à la fin août pour 12 semaines
Site officiel: https://developers.google.com/open-source/gsoc/
Google Summer of Code 2015 était la onzième édition du programme
En 2015:
1051 étudiants de 73 pays ont été admis, dont 23 Canadiens
137 organisations ont participé, dont Mozilla, la Linux Foundation, la Fondation Wikimédia et le Tor Project
La grande majorité des étudiants étudiaient l'informatique, mais des étudiants en astronomie, géomatique, droit, musique, océanographie et philosophie ont aussi été admis
87% des étudiants admis ont terminé le projet avec succès (dont moi :D)
Le programme est ouvert à tous les cycles universitaires
L'étudiant ne travaille pas pour Google, mais pour une OSO
L'étudiant travaille de chez lui (bien qu'il n'est pas interdit que l'organisation organise un déplacement durant l'été)
Tout le code produit dans le cadre du programme est open source
GSoC est un programme payé. Un étudiant admis reçoit $5500 USD* durant l'été, réparti de la manière suivante:
L'étudiant gère son temps durant l'été, mais GSoC représente un travail à temps plein
*Oui, vive les taux de change
Les étudiants ont environ une semaine pour envoyer des applications à des projets.
Les étudiants peuvent soumettre plusieurs applications, mais ne pas sous-estimer le temps requis!
Souvent, la rédaction d'une micro-tâche est requise avec l'application.
20 février:
Liste des projets annoncés
16 au 27 mars:
Période d'application
27 avril:
Résultats annoncés
27 avril au 25 mai:
Community bonding
25 mai au 21 août:fun code time
Voici le calendrier 2016 pour les intéressés
Commencez tôt! 10 jours, c'est très court. Publiez un brouillon si c'est possible et ajustez au fil des commentaires que vous recevrez jusqu'à la date limite.
Qualité > Quantité: Vous avez beaucoup plus de chances d'être choisi si vous concentrez vos efforts sur une ou deux applications.
Planifiez: Montrez que le sujet vous intéresse beaucoup en commençant à soumettre des idées. Schémas UML, maquettes d'interface, échéancier, bouts de code, etc.
Restez alerte! Les mentors vont poser des questions sur votre application après que vous l'ayiez posté. Soyez prêts à répondre et soyez disponible!
Explorez: La micro-tâche n'est pas à sous-estimer. Explorez plus loin que les micro-tâches suggérées et n'ayez pas peur d'essayer un autre ticket.
*Certains trucs peuvent ne pas s'appliquer à toutes les organisations.
J'ai intégré un outil permettant d'éditer des spécifications Vega dans VisualEditor, l'éditeur WYSIWYG de MediaWiki.
Voici un diagramme à bandes simple:
Me réveiller
Ouvrir tous mes outils
Lundis: Scrum avec les mentors sur Google Hangouts
vagrant git-update && vagrant provision
et revenir dans 30 minutes
Travailler
Soumettre sur Gerrit
try { var commit; code.read(); // UNSAFE documentation.read(); // UNSAFE while(!commit.pushed) { commit = code.write(); gerrit.send(commit); gerrit.waitForReview(); }} catch(e) { irc.askQuestion(e.getMessage()); // !important irc.waitForReply(onReply);}function onReply(answer) { if (answer.type === 'jQuery.Deferred') { google.search('jQuery.Deferred'); cry(); }}
La distance est votre ennemi. Travailler à distance veut dire que personne ne sait ce que vous faites à tout moment. Documentez, parlez sur IRC, posez des questions. Apprenez à détester le décalage horaire.
Les gens savent que vous êtes junior. Posez des questions, les gens veulent vous voir poser des questions. IRC est là pour ça. Vos mentors n'attendent que ça.
Vous n'êtes pas payé pour livrer un projet. GSoC vous donne une bourse, pas un salaire. Ce n'est pas grave si le projet n'est pas terminé à la fin de l'été. Attendez-vous à passer la première moitié de l'été à comprendre ce que vous faites et à ne rien pusher.
Chaque étape compte. Attendez-vous à une moyenne de 10 lignes de code par jour. Attendez-vous à réviser chaque patch environ 5 fois avant de la soumettre. Certains jours, vous ne coderez même pas.
Phabricator public pour la liste des tâches en cours
Manuel d'utilisation de MediaWiki, contient des guides d'installation
Documentation de l'API développeur
Installer Vagrant
Installer git review
git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/Vagrant
./setup.sh
vagrant up
Tester que 127.0.0.1:8080
fonctionne bien
Installer les extensions avec Vagrantvagrant roles enable {extension}
(ex.: visualeditor
, math
, graph
)
vagrant git-update && vagrant provision
Se faire connaître sur IRC. Wikimédia utilise irc.freenode.org et possède beaucoup de salons, mais le plus important est de loin #wikimedia-dev
Se créer un compte sur Phabricator et Gerrit
Prendre une tâche sur Phabricator
Coder une première version d'un fix (un patchset)
Soumettre la patch sur Gerrit avec git review
Ajouter d'autres développeurs au patchset sur Gerrit (exemple)
Attendre l'inévitable -1
Modifier le commit localement et le rebâtir avecgit commit --amend
, le resoumettre avecgit review
, etc etc
Victoire!
Google Summer of quoi?
Appliquer à GSoC
Travailler chez Wikimédia
Contribuer à Wikipédia
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |