Organisation du projet PostgreSQL. À propos des auteurs ● Guillaume Lelarge ● ●

Slides:



Advertisements
Présentations similaires
Quattor Status Guillaume PHILIPPON. Résumé EMI 2 / 3 DPM Changement de nom de profile SPMA 3 Aquillon Stratuslab Organisation de la communauté Quattor.
Advertisements

GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Les Logiciels Libres une informatique ouverte et citoyenne Samedi 25 Mars Thomas Petazzoni
Veille Windows WINDOWS 9 SERAIT ANNONCÉ LE 30 SEPTEMBRE 2014.
Les Logiciels Libres : Une Opportunité Pour Votre Entreprise ?
Présentation stages 2009 (INRA) Développement des interfaces du projet VLE: GVLE & VLE-WEB.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
RMLL (Nantes 7 juillet 2009) Présentation de XiVO.
OpenERP The inCloud Business Solution 3/3/ / Camptocamp Chambéry Vienne Lausanne ■ Éditeur et intégrateur de solutions Open Source.
ESUP-ECM. Copyright 2008 © EsupDay /07/2009 Ce travail est mis à disposition sous une licence Creative Commons Vous êtes libres De reproduire, distribuer.
1 Après 5 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
RMLL Localisation. A propos... Le challenge L'organisation Les formats, outils, etc La collaboration Questions.
25/09/2016 La communauté des développeurs du noyau Linux Jean DELVARE SuSE R&D, Support noyau Solutions Linux 2007, 31 janvier 2007.
Messagerie Open Source à la DGCP Implémentation réalisée par IBM et Pilot Systems Sylvain Viollon.
Dans les coulisses d'une distribution Linux Juillet 2011 Michael Scherer.
Le projet L'éditeur Les services associés 10/07/2007 OpenAguila, la gestion d’entreprise libre pour.
Fedora 11 Party de lancement Jean-Francois Saucier
VHFFS : Enlarge your hosting Sylvain Rochet Samuel Lesueur Cette présentation est sous contrat Paternité-Partage des Conditions Initiales à l'Identique.
Séminaire Novembre 2006 Séminaire Novembre 2006 Bilan et perspectives.
Projet ISHTAR : outil de gestion du mobilier archéologique en ligne Étienne Loks (Proxience) Yann Le Jeune (DRAC Pays-de-la-Loire / SRA) Présentation du.
TODO Juillet 2010 Michael Scherer. Intro À propos de moi.
Le projet Debian Sam Hocevar 30 juin 2007 Cité des Sciences et de l’Industrie Debian, mais aussi Ubuntu, et le futur.
A partir du 1er mars 2016 : 2 offres
TSMSI 10/04 : Mise en place d'une interconnexion VPN
Présentation du Protocole Promevent et de son guide d’accompagnement
Licence Informatique DEVELOPPEUR ANDROID
Quelle gouvernance pour faire vivre et évoluer Geotrek ?
LimeSurvey : Logiciel Open Source pour réaliser des enquêtes
Je collecte l’information Je mets en place une veille informationnelle
Stratégie de maintenance
Soutenance PMI Lundi 4 Février 2008
de la productivité individuelle au travail collaboratif
Comment accroître le nombre de contributions externes ?
Gestion de version centralisée et décentralisée
Validation et contrôle de routine des petits stérilisateurs
Utilisation de PostgreSQL
SOMMAIRE 1: ORALE 2: Les 3 systèmes de gestion de base de donnés 3:ORACLE DATA BASE 4:MY SQL 5:Oppen Office.org Base 6:Concurrence Conclusion.
Plateforme CountrySTAT
Le « Bugtracking » Alejandro FERNANDEZ – Etienne FONTEIX
Le suivi de fabrication
SmarTeam-Coord : mandat, composition, activités
Séminaire EOLE Beaune Septembre 2007
Fedora 26 Quelles nouveautés ? License CC-BY-SA.
Profils d’emplois JT du 24 septembre 2001
Réunion Opérations France Grilles – 6 juin 2017
Centralisation de logs
L’intégration en continue
Module d’exploration : I.C.N
La génèse d'un Logiciel Libre :
Outils de production de code
Projet de Plan de formation
Développement d’une application Android destinée aux commerciaux
Et la vie lycéenne Vous présentent.
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
TreqS TReqS 1.0.
La génèse d'un Logiciel Libre :
Création Base de données centralisée au Lycée Stendhal
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Les nouvelles recommandations
Benali Fellague Mouhamed
Production Activity Control
Plateforme CountrySTAT
Le Cycle SCrum SPRINT et release.
ORGANISER DES MANIFESTATIONS SCIENTIFIQUES A LA SFA
Etat d'avancement: calendrier
Progressivité des différentes fonctions dans l’entreprise
YII Yes It Is !.
Présentation PISTE pour les partenaires raccordés en API
Développeur Web A PROPOS DE MOI
LE SYSTÈME D’INFORMATION LE (SI). Définition Qu’es ce que c’est une entreprise ■L’entreprise rassemble l’ensemble des activités d’une personnes ou d’un.
Transcription de la présentation:

Organisation du projet PostgreSQL

À propos des auteurs ● Guillaume Lelarge ● ● ● Directeur technique de Dalibo ● Contributeur majeur sur PostgreSQL ● Traductions du manuel et des applications ● Codage sur PostgreSQL, pgadmin, pgpool, check_postgres

License CC ● Présentation sous license Creative Commons BY- NC-SA ● Disponible sur

Au menu ● Organisation dans l'histoire de PostgreSQL – Les problèmes rencontrés – Et les solutions apportées ● Résumé sur les outils utilisés ● Cycle de développement – Version majeure – Version mineure ● Petit résumé sur les différents types de contributeurs

Évolution de l'organisation

PostgreSQL ● Serveur de bases de données libre (MIT/BSD) ● Respectueux des normes SQL ● Respectueux des données ● Une excellente portabilité ● Une grande communauté réactive et internationale

Un peu d'histoire ● 1970 : développement de Ingres ● 1985 : développement de Postgres ● 1995 : ajout du langage SQL ● 1996 : libération du code – renommage en PostgreSQL – création du groupe PGDG

Mise en place du développement ● Licence PostgreSQL (MIT) ● Création d'un dépôt CVS ● Création des listes de discussion

Cycle de développement en 96 ● Les patchs arrivent sur la liste de discussion ● et sont intégrés quand un commiter a pu vérifier le patch ● Peu de commiters

Vérification d'un patch ● S'assurer de la sécurité des données ● S'assurer du respect des normes ● Tester les performances ● Vérifier la simplicité du code ● Relire la documentation

La communauté grandit ● Les versions s'enchaînent ● Environ une version majeure tous les 10/12 mois ● La communauté des utilisateurs grandit – Gros bond avec la version 8.0 ● Celle des développeurs grandit elle-aussi

Les problèmes commencent ● Plus de développeurs, avec une connaissance variée du code ● Nombreuses plateformes supportées

Solution apportée: la ferme de construction ● Composée d'un grand nombre de machines (40) ● Avec tous les systèmes supportés par PostgreSQL ● Avec différents compilateurs ● Avec différentes distributions ● Compilation avec différentes options

De nouveaux problèmes apparaissent ● De plus en plus de patchs ● Mais un nombre de commiters qui évoluent peu ● Du coup, la liste d'attente des patchs grossit : – Les patchs sont vérifiés avec beaucoup de retard – Frustration des développeurs – La sortie des versions finales se trouve repoussée – Frustration des utilisateurs et des commiters

Première solution: le commitfest ● Dès le développement de la 8.3 ● À chaque développement d'un patch, ajout d'une entrée dans le wiki ● Des relecteurs de patch travaillent tous les deux mois pour vider la queue de patchs ● La vérification des patchs est plus rapide ● Mais les gros patchs font peur

Améliorations du commitfest ● Pour le développement de la 8.4 – Ajout d'un responsable de commitfest – Création d'une application web commitfest ● Pour le développement de la 9.0 – Packaging de versions alpha

Deuxième solution: plus de commiters ● 4 commiters ajoutés pendant le développement de la 9.0 ● Un total de 19 commiters

Encore des problèmes ● Ferme de construction pour s'assurer d'un minimum de fonctionnalités ● Mais rien pour les performances

Solution apportée: la ferme de performances ● Performance Farm ● Toujours en cours de mise en place

Résumé sur les outils

Outils de compilation ● Langage C principalement ● Toolchain linux standard ● Toolchain Windows: Visual C

Outil pour le dépôt des sources ● CVS à l'origine et jusqu'en 2010 ● Passerelle CVS-Git pendant deux ans ● Passage à Git mi-septembre 2010

Outil de suivi des bugs ● Aucun bugtracker pour PostgreSQL ● pgsql-bugs pour les bugs ● pgsql-* pour les demandes de fonctionnalités ● En attente d'un courageux pour coder un tel outil... un volontaire dans la salle ?

Outils de discussion ● Toute discussion passe par les listes ● pgsql-hackers pour le développement ● mais aussi les pgsql-*

Outil commitfest ● Application web commitfest.postgresql.org ● Écrit par Robert Haas ● Langage PHP, base de données PostgreSQL

Outil BuildFarm ● Application web de présentation des résultats ● Client perl permettant de créer un nœud de compilation ● Écrit et maintenu par Andrew Dunstan

Les différentes étapes d'une mise à jour

Deux types de versions ● Mineure/Corrective: correction de bugs et de failles de sécurité ● Majeure: nouvelles fonctionnalités

Correction d'un bug ● Validation qu'il s'agit bien d'un bug ● Correction sur la version indiquée ● Puis tests des différentes versions ● Et correction de celles-ci si nécessaire

Sortie de version mineure ● Lot de toutes les versions stables ● Tous les 2/3 mois ● Sauf si bug majeur ou faille de sécurité

Sortie de version majeure ● Tous les 12/15 mois ● Tout de suite après, création d'une branche ● Le développement de la prochaine version majeure peut commencer ● Sauf pour la 9.1 et la 9.2 – le développement a commencé avant la sortie finale de la version précédente

Cycle de vie d'un patch ● Discussion – Identification du problème – Recherche d'une solution ● Codage ● Patch soumis dans la queue ● Revue du patch ● Correction du patch si nécessaire ● Intégration du patch dans les sources

Versions alpha ● Après chaque commitfest ● Permet aux utilisateurs de tester les nouveautés sans avoir à récupérer le Git ● Permet aux développeurs de savoir si un bug d'une certaine alpha a déjà été corrigé… ou pas

Feature freeze ● Peut être très long ● Vérification des derniers patchs ● Debugage intensif ● Début du travail pour les traducteurs ● et pour les promoteurs – Depuis la 9.0, écriture d'un document complet sur les fonctionnalités de la nouvelle version

Versions beta ● Aucune fonctionnalité ajoutée ● Intégration des traductions ● Nécessite de créer un paquet des sources – et de packager certaines versions binaires ● Effort commun des utilisateurs et des développeurs – Tests des fonctionnalités – Tests de la compilation – Test des performances

Release Candidate ● Uniquement quand on est certain qu'il n'y a plus de bugs ● Dure assez peu

J-5: les packages ● Tag dans le dépôt ● Construction du paquet des sources ● Envoi de l'information aux différents packageurs ● Préparation des paquets binaires

Jour de la sortie ● Kit de presse ● Annonce sur le site web et sur les listes de discussion

Les contributeurs

Core Team

Responsabilité de la Core Team ● Planification des sorties de version ● Point de contact pour les problèmes de sécurité ● Prise de décision quand la communauté ne parvient pas au consensus

Contributeurs au niveau code ● Le développeur ● Le relecteur ● Le commiter

Autres contributeurs ● Tout aussi important – équipe d'administration des serveurs – groupe de promotion – conférenciers – traducteurs

Contributeur d'un projet libre: un hobby ? ● Certains le font sur leur temps libre ● Mais la majorité sont financés – soit par leur entreprise – soit pour un développement particulier

Conclusion ● PostgreSQL est un projet vivant – qui tente de trouver des solutions aux problèmes posés par son organisation – qui intègre tout type de contributeur – et qui récolte le fruit de ses efforts grâce à de nombreux contributeurs et utilisateurs heureux ● Projet phare

pgconf.eu 2011 ! ● (octobre 2011) ● Amsterdam ● Casa 400 ● Venez nombreux !