Introduction À La Gestion De Configurations Logicielles

Introduction À La Gestion De Configurations Logicielles

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-merge • 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 ! trunk version principale de developpement´ SCCS 1980 Source Code Control System branches evolution´ divergentes des sources RCS 1982 Revision Control System • 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 GIT 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 commit ? 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, Perforce, 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, Monotone, 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, Breezy 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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us