De Hacktoberfest…
HacktoberFest est un événement organisé chaque année en octobre par Digital Ocean pour encourager la participation à l’Open Source.
Concrètement, on s’inscrit grâce avec son compte GitHub sur le site dédié de l’événement et on a un mois pour réaliser 5 Pull Requests (PR).
En remplissant ces conditions, on reçoit quelque temps après gratuitement un t-shirt et des autocollants. Depuis cette année il y a aussi une option écologique: on peut choisir à la place de recevoir un t-shirt de faire planter un arbre.
… à shitoberfest
L’événement a commencé hier et a déjà fait couler beaucoup d’encre (virtuelle) sur Twitter, à tel point qu’un hashtag et un compte twitter @shitoberfest ont été créés. De nombreux.se.s mainteneur.se.s d’open source se sont plaint.e.s de PR spam qui nuisent à leur travail (bénévole) car ils doivent maintenant traiter ses PR qui sont totalement inutiles à leur projet.
Ce sont souvent des PR modifiant la documentation ou le ReadMe, ou corrigeant des petites typos, ou encore rajoutant des commentaires inutiles comme # AMAZING PROJECT !
 , donc, oui, il y a de quoi être énervé.e.
Une réaction rapide pour limiter le spam
Dans la journée même, l’équipe de GitHub a sorti une nouvelle feature de modération dans les paramètres des repo qui permet de limiter les contributions selon trois cas:
empêcher les comptes GitHub récents de contribuer (beaucoup de spams du premier jour viennent de comptes créés dans le mois précédent)
limiter la modification à des comptes qui ont déjà contribué sur le projet
limiter la modification aux contributeur.rice.s du projet (qui sont géré.e.s dans les paramètres)
Et ça pour des périodes allant de 24 heures à 6 mois, dont un mois (pratique pour Hacktoberfest !)
Dans les heures qui ont suivi le début des plaintes, Digital Ocean a également pris de nouvelles mesures pour limiter le spam. Les précédents années, ils avaient déjà mis en place l’invalidation de PR si elle était taguée comme spam
 ou invalid
, empêchant donc les spammers de recevoir leur t-shirt. Les mainteneur.se.s peuvent maintenant signaler leur repo comme non participant à Hacktoberfest, ils/elles ont plus de temps pour signaler les PR comme spam et les utilisateur.rice.s ayant des PR trop souvent tagguées comme spams seront aussi interdit.e.s de participer.
Edit du 6 octobre
Digital a changé la condition d’opt-out pour les mainteneu.r.se.s à opt-in:
Bref, des mesures sont prises pour empĂŞcher le TDD (T-shirt Driven Development).
Ceci dit, comment contribuer de manière positive à l’open-source, si on en a jamais fait et qu’on a envie de se lancer ?
Des sites référents pour trouver des projets
Plusieurs sites permettent de trouver des projets qui cherchent des contributeur.rice.s:
Awesome for beginners recense des projets faciles pour contribuer en tant que débutant.e.s.
codetriage permet de s’abonner grâce à son compte GitHub à des projets qui intéressent et envoient des mails régulièrement avec des issues de ces projets pour pouvoir participer. Pour l’anecdote, codetriage est fait sous Ruby on Rails. 🎉
Il est possible de chercher des issues sur GitHub avec des tags comme good first issues pour des issues spécialement pour débutant.e.s . Le site Good first issue agrège les issues les plus récentes.
Comment participer ?
Après avoir trouver un projet auquel tu veux participer, il vaut mieux regarder dans leur ReadMe ou s’il y a un fichier Contributing.md
 pour savoir s'il y a un process particulier à respecter.
Les dossiers sur Github ont une section Issues qui peuvent être créées autant par les développeur.se.s du projet que les utilisateur.rice.s qui rencontrent des difficultés. Généralement (cela dépend du guide de contribution !) il vaut mieux indiquer que tu souhaites résoudre l'issue, sinon il risque d'y avoir plusieurs participant.e.s et des contributions inutiles.
Après avoir codé, tu peux ouvrir une PR référençant l'issue que tu veux résoudre.
Si tu n'as jamais fait de PR, tu peux commencer par le dossier en ligne First contributions qui te montrera comment faire !
Bon Hacktoberfest (productif !)
Ressources pour cet article: