<<

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Problematique´ du developpement´ en equipe´

SCM – Software Configuration Management COMMUNIQUER

Outils de gestion de sources 1. des objectifs, des idees,´ un design, une intention, une specification´ 2. des informations, des pratiques, des standards

Fabien Coelho 3. des sources, des versions

Ecole´ des mines de Paris 4. des documents [email protected] 5. des problemes/anomalies` rencontres´

6. des annonces

revision´ 309 du document 7. desdecisions´ (leadership ?)

1 2

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Developper´ est un Art The art of computer programming, Donald E. Knuth Outils divers • 1 probleme,` 10 programmeurs = 10 solutions...

messagerie listes de diffusions dev, user, annonce creation,´ composition, choix, style

plateforme web annonces, diffusions, taches,ˆ bugs • choix guides´ par des criteres` esthetiques´

archives historique, indexation et recherche indentation, decoupage´ fonctionnel/classe. . . nom des variables, des fonctions, des classes. . . dep´ otˆ de sources partage des sources du projet contenu des commentaires forum, irc discussions eventuelles.´ . . • un programme est une preuve de theor´ eme` : astuce, el´ egance´

• pas reellement´ compatible avec les brevets

3 4

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Differents´ modes de developpement´ de logiciels Un logiciel est vivant 1. personnel collaboration avec soi-meme...ˆ • mots : sources, heritage´ retour en arriere` parfois necessaire.´ . . • opere` dans un environnement qui evolue´ 2. centralise´ collaboration avec d’autres developpeurs´ • evolution´ perpetuelle´ du logiciel interactions, complementarit´ e,´ conflits, propositions – correction de bogues 3. distribue´ chacun pour soi (mais on partage ?!) – adaptation a` de nouveaux besoins base commune plus collection de patches

5 6

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

1. Developpement´ personnel de logiciels 2. Developpement´ collaboratif centralise´ de logiciels

objectif organisation de son travail objectif creation´ d’une œuvre commune

probleme` perte de donnees,´ de fonctionnalites´ probleme` gestion de versions differentes´

responsabilite´ pas de comptes a` rendre responsabilite´ partage, droits selon parties

coordination non coordination oui

distance non distance oui (souhaitable)

centralisation oui centralisation oui

partage direct si acces` aux memesˆ fichiers ! partage naturel, a` chaque update

risques effacement, modifications risques modifications, conflits

exemples mes programmes, mes cours... exemples apache, postgresql, subversion

7 8 Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

3. Developpement´ distribue´ de logiciels

objectif partage de patches sur une base commune Le developpement´ sans outils probleme` gestion d’une collection de patches risques de pertes si erreur, pas de retour en arriere` responsabilite´ non collaboration partage de fichiers : conflits temps reel´ coordination faible copies inefficaces sauvegarde par duplications. . . distance oui identification des modifications ? auteur, date centralisation non recherche de l’etat´ a` une date donnee´ ? partage publi perso (push), recup´ eration´ S (fetch) versions multiples corrections multiples des bugs communs ? risques faibles

exemples debut´ d’apache, linux, netfilter

9 10

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Gestions de revisions´ de fichiers Partage de fichiers fichiers de donnees´ Software verrouillage avant modification lock-modify-unlock • textes, binaires (bof), repertoires,´ liens. . . propriet´ es´ ? • acces` local ou droit acquis a` distance • documentation : pref´ erer´ sources xml/sgml/tex, eviter´ doc/ps/pdf • empecheˆ les autres d’avancer... • interfac¸age avec des outils de developpement,´ e.g. eclipse • ne pas oublier de deverrouiller´ ! vol, timeout ? revisions´ garder l’historique Configuration fusion de modifications copy-modify- • auteurs, messages, dates des transformations • modification sur des copies personnelles • effacement ? renommage ? modifications de structures ? • conflits rares, ag` erer´ a` la main gestion evolutions´ divergentes Management • soumission de modifications (patches) acceptees´ ou refusees´ • versions successives release, revision, bugfix

11 12

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Logiciels (libres) supports Besoins centralise´ local acces` physique necessaire,´ bof ! version principale de developpement´ SCCS 1980 Source Code Control System branches evolution´ divergentes des sources RCS 1982 • e.g. corrections de bugs dans une release CSSC 1998 Compatibly Stupid Source Control (SCCS libre) • isolement de developpements´ independants´ centralise´ distant avec acces` reseau´ possible tags marquage d’une version particuliere` CVS 1993 Concurrent Versions System

• la nommer, la dater, la retrouver plus tard SVN 2001 Sub VersioN

• normallement non modifie/modifiable´ frozen distribue´ fusions croisees,´ evolutions´ independantes´

bundles logiciels lies´ GNU Arch 2001 GNU Arch SVK 2003 SubVersion Kit (?), utilise SVN • sous projets, librairies partagees´ apr de apache 2005 GIT pour sources Linux

13 14

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Modele` centralise´ : progression continue RCS, CVS, SVN

SCCS CSSC RCS historiques de fichiers • fichiers ger´ es´ individuellement et localement Interfaces • pas de manipulations globales directes, renommage, deplacement´ • commandes shell Unix : svn cvs rcs sccs git • gestion de branches possibles, numerotations´ 1.3.2.4 • outils graphiques specifiques´ CVS arborescence d’historiques de fichiers • partage reseau´ des donnees´ • plugins explorateurs de fichier (TortoiseSVN)

• probleme` renommage, effacement de fichiers et repertoires´ • plugins eclipse (CVS, SVN. . . ) • branches possibles avec numerotations´ a` la RCS • modes editeurs´ : emacs, vi SVN historique d’une arborescence de fichiers • partage reseau´ des donnees,´ acces` multi protocoles • branches et tags par copies, bundles par ref´ erences´ externes

15 16 Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Politiques de gestion des sources

Nombreux produits droits qui peut faire un ?

Centralise´ protocoles d’acces` ? (fs, http...) • de tout le monde a` quelques uns ?

free SCCS, RCS, CVS, SVN, Vesta responsabilites´ ? administration des droits ? • com MS Visual SourceSafe, IBM Rational ClearCase, , Serena selon les parties du logiciel (librairies, docs, traductions). . . Dimensions • soumission de patches, revues strictes pour acceptation

Distribue´ protocoles diffusion ? (mail, ftp, http...) periodes´ de vie d’un logiciel

free GNU Arch, ArX, ARCS, , Git, Bazaar, Codeville, developpement´ en cours, nouvelles fonctionnalites´

Mercurial, SVK, Aegis, DCVS. . . feature freeze correction de bugs (alpha, beta, rc)

com MKS BitKeeper, Wandisco, TeamWare release/revision supporte,´ corrections de bugs uniquement

obsolete` d’une version

17 18

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Theorie´ des numeros´ a` trois chiffres : 1.2.3 Versions proposees´ release 1.x a` 2.0 fonctionnalites´ majeures, 3 a5ans?` current version en cours de developpement,´ instable. . . apache changement d’API des modules selon la politique de gestion des sources postgresql format bases incompatibles snapshot version d’un jour (une nuit) svn dep´ otsˆ incompatibles alpha version de test peu stable (pre-alpha) revision x.2.y a` x.3.0 fonctionnalites´ mineures, 1 an ? beta version de test assez stable apache recompilation des modules rc release candidate, dernieres` verifications´ bugfix x.y.0 a` x.y.1 resolution´ de bugs, 1 a` 3 mois ? release/revision/bugfix en avant ! php helas.´ . . 4.4.6 change version librairie PCRE

19 20

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

marketing pas rationnel, pousse a` aller plus vite Releases. . . Sun Solaris 2.6 2.7 8 9 10... premier chiffre a` 0... ne pas trop en attendre ! Sun Java 1.0 1.1 1.2 1.3 1.4 (Java 2) 5.0 6 http 0.9, 1.0, 1.1 MS Windows 33.1 9598NTME20002003XPVista... annees´ ?

second chiffre pour separer´ developpement/sorties´ lettres et noms plus facile am` emoriser´ linux 2.2, (2.3), 2.4, (2.5), 2.6 Oracle 6 7h 8 8i 9i 10g 11g... datawareHouse, Internet, Grid

apache 2.0, (2.1), 2.2 MacOS cheetah puma jaguar panther tiger leopard... Debian buzz rex bo hamm slink potato woody sarge etch lenny... support des anciennes versions limite´ dans le temps Ubuntu Warty Warthog, Hoary Hedgehog, Badger, Dapper Drake, apache (... 1.2) 1.3, 2.0, 2.2 Edgy Eft, Feisty Fawn, Gutsy Gibbon, Hardy Heron postgresql (... 7.2 7.3) 7.4, 8.0, 8.1, 8.2 TEX version 3.141592 (2002) Donald E. Knuth, converge vers π ! svn (0.9 1.0) 1.1, 1.2, 1.3, 1.4, 1.5 METAFONT version 2.71828 converge vers e !

21 22

Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Conclusion

• pas d’outils adapte´ a` tous les modeles` de developpement´ Melange´ patch securit´ e´ et fonctionnalites´ • un bon outil n’implique pas un bon projet, et inversement ! • risques sur les applications, donc pas de deploiement´ ? • subversion c’est bien • specialiste´ : Microsoft

Windows XP juin 2006 : ajoute Windows Genuine Advantage Au dela` des sources • mais aussi : Apple (iPhone) construction logiciel et doc (configure, make) • mais aussi : ports FreeBSD vs stabilite´ Debian tests unitaires ou globaux, portabilite´

communication interne/externe, diffusion, documents, anomalies

23 24 Fabien Coelho SCM – Software Configuration Management Fabien Coelho SCM – Software Configuration Management

Liens RCS http://www.gnu.org/software/rcs/

SVN http://subversion.tigris.org/ monotone http://venge.net/monotone/ GNU-Arch http://www.gnu.org/software/gnu-arch/

git http://git.or.cz/

http://www.darcs.net/

bazaar-ng http://www.bazaar-ng.org/ SVK http://svk.elixus.org/ misc http://dmoz.org/Computers/Software/ Configuration\_Management/ CVS http://www.cvshome.org/

25 26

List of Slides 11 Gestionsde revisions´ de fichiers 12 Partage de fichiers 1 SCM– Software Configuration Management 13 Besoins 1 Outils de gestion de sources 14 Logiciels (libres) supports 2 Problematique´ du developpement´ en equipe´ 15 Modele` centralise´ : progression continue RCS, CVS, SVN

3 Outils divers 16 Interfaces

4 Developper´ est un Art 17 Nombreux produits

5 Un logiciel est vivant 18 Politiques de gestion des sources

6 Differents´ modes de developpement´ de logiciels 19 Versions proposees´

7 1. Developpement´ personnel de logiciels 20 Theorie´ des numeros´ a` trois chiffres : 1.2.3

8 2. Developpement´ collaboratif centralise´ de logiciels 21 Releases...

9 3. Developpement´ distribue´ de logiciels 23 Melange´ patch securit´ e´ et fonctionnalites´

10 Ledeveloppement´ sans outils 24 Conclusion

24 Audela` des sources

25 Liens