Il souhaite modifier le pilote d'une imprimante Xerox pour signaler automatiquement les bourrages papiers
Il sollicite un collegue qui dispose du code source mais qui refuse "Il m'a explique qu'il s'etait engage a ne pas en donner de copier" car il avait une NDA avec Xerox
"Ce qui rendait l'enjeu important etait le caractere systematique et impersonnel de son refus, le fait qu'il s'etait engage d'avance a ne cooperer ni avec moi ni avec aucune autre personne" - R. Stallman
1990: Fondation
1991: Creation de Linux
1993: Lancement des distributions Debian, NetBSD, FreeBSD, RedHat
1994: Creation de MySQL
1995: Creation de PHP
1996: Creation d'Apache
1998: Lancement de Netscape
1999: Lancement de SourceForce
2000: Explosion
2002: Lancement Firefox
2004: Lancement de la distribution Ubuntu sur base Debian
2005: Lancement du projet Git
2007: Lancement de Android, sur une base Linux
2008: Lancement de GitHub
2008: Lancement de Chromium en meme temps que Chrome
2010: Evidence
2010: Lancement de nom
2013: Revelations de Edward Snowden
2014: Lancement de Signal
2018: Rachat de Github par Microsoft pour 7,5 milliards de $
2019: Rachat de RedHat par IBM pour 34 milliards de $
Licences
Quizz Time
Combien existe-t-il de licences Open Source "officiellement" reconnues ?
3
10
100
A qui appartient votre code ?
A votre ecole si vous etes etudiants
A votre employeur si vous etes salaries
A vous si vous le faites chez vous
Sauf contrat employeur specifique
Pour permettre a d'autres d'y contribuer, il faut donc utiliser une licence ouverte.
Permissive
Copyleft
Tout le monde peut modifier
Tout le monde peut modifier
Les versions peuvent ne pas etre modifiables
Tout le monde doit pouvoir modifier les versions modifiees
Ce que decrivent les licences
Les regles de mention de paternite du programme
Les regles pour modifier le programme
Les regles pour redistribuer le programme
Les regles pour associer d'autres licences dans le meme programme
La protection contre les brevets
Cartographie des licences Open Source
Anecdote: la controverse React
React est lance par Facebook en 2013 sous Apache v2
En 2014 React passe sous licence BSD avec une note sur l'utilisation des brevets:
Permet d'utiliser les brevets possedes par Facebook
Facebook s'autorise a vous retirer les droits d'utilisation si vous menez une action en justice contre eux ou contre une autre entreprise utilisant React
En 2015 Facebook ajoute une note supplementaire a la licence pour eviter les confusions
En 2017 la fondation Apache prend position contre l'utilisation de React car il n'est pas sous une licence Open Source
En novembre 2017, React passe sous licence MIT
Anecdote: la licence SSPL MongoDB
MongoDB est lance en 2009 sous licence AGPL v3
Les clouds d'Amazon, d'IBM, … louent des instances MongoDB sans que MongoDB en tire benefice
En Octobre 2017, MongoDB devient une societe cotee
En Octobre 2018 passe son code sous licence SSPL et soumet cette nouvelle licence a l'OSI
La licence impose qu'un fournisseur de cloud utilisant MongoDB ouvre toute la stack technique permettant son herbegement
En Mars 2019 l'OSI refuse de consider la licence SSPL comme une licence Open Source
RedHat, Debian, Fedora et les autres distributions Linux excluent MongoDB de leurs distributions
En Janvier 2019, Amazon lance DocumentDB, une base de donnees NoSQL compatible MongoDB
Gouvernance
Quizz Time
Qui décide des contributions acceptées dans le Kernel Linux ?
Linus Torvald seul
Le board de la Linux Foundation
Les entreprises qui contribuent au Kernel
Le modeles de gouvernance Open Source
Dictateur bienveillant
"BDLF": Benevolent Dictator For Life
Le Dictateur est generalement l'auteur initial
A le dernier mot sur toutes les grandes decisions
Evite des discussions sans fin…
La qualite et le succes du projet dependent beaucoup de la sagess du dictateur
Exemple: Gouvernance Linux
Jeremy Malcolm - Internet Governance Forum
"Torvalds possesses ultimate authority to decide which contributions to the Linux operating system kernel should be accepted and which should be refused"
"The Linux kernel development process is neither anarchistic nor consensual: if Torvalds does not like a patch, it does not go in to the kernel"
Gouvernance Communautaire
Pilotage ouvert et public (mailing list, IRC, …)
Choix collegiaux:
Qui peut contribuer
Qui peut commiter
Qui peut resoudre les conflits
Recherche de consensus dans la decisions
Favorise la Meritocratie
Release sont generalement mois frequentes car circuit de decision plus long
Exemple: Gouvernance FreeBSD
Composition:
Contributeurs (plusieurs milliers)
Commiters (500)
Core team (9)
Les Commiters approuvent les PR des Contributeurs
Les Commiters elisent la Core Team
La Core team choisi les Commiters parmi les Contributeurs
La Core team decide des orientations du projet
Gouvernance Entreprise
Une seule entite controle la Conception, le Developpement et les Release
Contributions externes pas forcement bienvenue
Roadmap pas necessairement publique
Discussions internes et controverses pas forcement publiques
Exemple: Gouvernance AOSP
"The Android Open Source Project (AOSP) includes individuals working a variety of roles. Google is responsible for Android product management and the engineering process for the core framework and platform; however, AOSP considers contributions from any source, not just Google."
"Project leads are senior contributors who oversee the egineering for individual Android projects."
Modeles Economiques
Quizz Time
Quelle est la société qui tire le plus de revenu de l'Open Source ?
Google
Docker
RedHat
RedHat: 3,5 milliards de $ de revenus par an
Gagner de l'argent avec l'Open Source ?
Vente de licences
Une version "Community" gratuite avec une licence copyleft
Une version "Entreprise" payante avec plus de features et une licence permissive
Vente de services
Hosting ou mode SaaS
Formations/Certifications
Support
Autres
Publicite
Dons/Mecenat
Droit d'usage de la marque
Exemple:
Elastic Search
IntelliJ IDEA
VLC
"Le logiciel Francais le plus utilise au monde… et le moins rentable" J.B. Kempf
1 million de telechargements/jour
450 millions d'utilisateur
Plus de 3 milliards de telechargement
Developpe en 1997 a l'Ecole Centrale Paris
Sous GPL en 2001
Gere par l'association VideoLan en 2008
Creation en 2012 de la societe VideoLabs
18 employes, 1m d'euros de CA
Monetise la terchnologie et les utilisateurs VLC pour delivrer des services
Anecdote: Heartbleed
Vulnerabilite dans OpenSSL en 2011
Decouverte en avril 2014
OpenSSL etant utilise tres largement (Nginx, Apache, Android, …) la faille touche 17% des serveurs wen et 800.000 objets connectes
En 2012 la Open SSL Foundation touchait 2.000$/an pour financer ses contributeurs
Lancement en 2014 de la Core Infrastructure Initiative
Idee de la Linux Foundation
3.000.000$/an pour financer des projets Open Source "core"
Partie 2 - Contribuer
Pourquoi contribuer a l'Open Source ?
Ameliorer ses competences
Participer au bien commun
Recontrer des gens du monde entier
Apprendre ou apprendre aux autres
Ameliorer les outils qu'on utilise
Se faire connaitre
Quel projet choisir ?
Quizz Time
Quel est le pourcentage estimé de projets Open Source actifs ?
30%
10%
5%
La plupart des projets Open Source sont des echecs…
Les causes les plus courantes:
Ne repond pas a un vrai besoin
Plus assez de developpeuts interesses (ou le developpeur principal s'en desinteress)
Le projet est depasse techniquement, un competiteur fait mieux
Manque de documentation
Manque de leadership, pb de gouvernance, conflits
Manque de temps/d'argent
Ce fort taux d'echec n'est pas necessairement une mauvaise chose, beaucoup d'idees peuvent en decouler
Identifier les signes vitaux d'un projet
Regarder les statistiques du projet
Watch / Star / Fork / Used by
Verifier les commits
De quand date le dernier commit ?
Combien y a-t-il de contributeurs ?
Verifier les issues
Combien y a-t-il d'issues ?
Sont-elles recentes ?
Sont-elles fermees regulierement ?
Verifier les PR
Combien y a-t-il de PR ?
Sont-elles recentes ?
Exemple:
React contributors vs Vue.js contributors
Statistiques Angular sur Synopsis Open Hub
Verifier que le projet est accueillant
Est-ce un projet Open Source ? Y a-t-il une licence ?
Comment acceuille t-il les contributeurs ?
Y a-t-il un guide du contributeur ? un code de conduite ?
Y a-t-il de la documentation ?
Y a-t-il des issues tagguees "good first issue" ?
Comment les mainteneurs repondent aux contributions ?
Repondent-ils rapidement aux questions/issues ?
Repondent-ils amicalement ?
Y a-t-il des dicussions sur les issues/PR ?
Remercient-ils les gens pour leur contribution ?
Exemple: code de conduite Kubernetes
Comment contribuer ?
Checklist: demarrer une contribution
Installer l'application/le projet
S'assurer que c'est la derniere version
Jouer avec l'application/le projet
Lire la doc
S'abonner aux listes de diffusion, forum, IRC, slack, …
Commenter des posts/issues
C'est deja une contribution !
Declarer une issue
Verifier qu'il n'y a pas deja une issue similaire
Indiquer les etapes pour la reproduire et l'env. de test
Faire une Pull Request
Creer une Pull Request
Les Pull Request (PR) sont la base des contributions Open Source
Exercie: First Contributions
Un site pas a pas pour realiser votre Pull Request
Faites une PR pour ajouter votre nom a la liste des contributeurs
Exemple: Hacktober Fest
Evenement organise par Digital Ocean pour inciter a contribuer a des projets Open Source
Chaque annee du 1 au 31 Octobre
Les projets interesses inscrivent leur repo et tagguent des issues "hackotberfest"
Les 70 000 premiers participants qui font 4 PR gagnent un t-shirt
Le Google Summer Of Code
Qu'est-ce que c'est ?
Le Google Summer of Code (GSoC) est un programme "online" international destine a encourager les etudiants des ecoles et universites a participer au developpement de projets Open Source.
Objectifs du programme
Pour les organisations Open Source: identifier chaque annees de nouveaux dev
Pour les etudiants: participer au dev de projets Open Source, se construire une experience et un reseau, etre remunere (~4,000 euros/2 mois)
Pour Google: soutenir le monde de l'Open Source
Comment ca marche ?
Les organisations faisant de l'Open source font la demande a Google pour etre des organisations du GSoC
Google choisit les organisations qui participent
Les etudiants soumettent leurs candidatures pour realiser les projets proposes
Les organisations choisissent les meileurs etudiants
Les etudiants developpent, encadres par les mentors des organisations
Quelques organisations participant au GSoC
Comment etre retenu au GSoC ?
Commencer a contribuer avant Mars/Avril
Se presenter a l'organisation
Mailing list, forum
Multiplier les contributions (PR, issue)
Bien comprendre le projet propose
Echanger avec les mentors
Suggerer des solutions
Realiser un prototype
Passer du temps a rediger sa proposition
Demander une relecture de sa proposition
Conclusion
L'Open Source est un phenomene culturel
Comprendre son fonctionnement est indispensable
Contribuer est une source de satisfaction et un vrai plus pour monter en competence
Questions/Reponses
Dans le cas où la licence est ajoutée après la création du repository, son effet est-il rétroactif ? La première version (les premiers commits avant la licence) du projet est-elle concernée par la nouvelle licence ?
Non, la licence ne s'applique qu'aux versions actuelles
On a parlé de l'open source en terme de software. Qu'en est il du hardware ?
Je ne peux pas vous en apprendre plus
Comment sera evalue le cours ?
Aucune idee, a voir avec la pedago
Ce n'est pas fini !
Pour en savoir plus: retrouver la version integrale sur YouTube
Final Quizz
Avez-vous maintenant envie de devenir contributeur ?