POSS Appendix
Un article de Framalang Wiki.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Olivier, Coeurgan, bflorat | Relecture/refonte | en cours | |
| Relecture/refonte | En cours | ||
| Validation |
[modifier] Appendice A
Appendix A. Free Version Control Systems
[modifier] $1
CVS's shortcomings have inspired many efforts to replace it, and in the last few years many of these projects have reached usability. CVS's days as the uncontested default choice are slowly coming to an end. Following are all the other open source version control systems I was aware of as of early 2005. The only one I use on a regular basis is Subversion; that's why it's listed first. I have no recommenda- tions for or against any of the others; the information here is taken from their web sites. See also
http://en.wikipedia.org/wiki/List_of_revision_control_software.Les défauts de CVS ont beaucoup milité pour son remplacement et de de nombreux projets ont atteint ces dernières années un niveau de maturité acceptable. Les jours de CVS comme solution par défaut sont comptés. Vous trouverez plus bas la liste des logiciels de gestion de version portés à ma connaissance début 2005. Subversion est le seul que j'utilise régulièrement, c'est pourquoi je l'ai listé en premier. Je n'ai pas de recommandations pour ou contre les autres, les informations ici sont tirées de leur site Web.
Voir également http://en.wikipedia.org/wiki/List_of_revision_control_software.[modifier] $2
- Subversion — http://subversion.tigris.org/
Subversion was written first and foremost to be a replacement for CVS—that is, to approach version control in roughly the same way CVS does, but without the problems and feature omissions that most frequently annoy users of CVS. One of Subversion's goals is for people already accustomed to CVS to find the transition to Subversion relatively smooth. There is not space here to go into detail about Sub- version's features; see its web site for more information. [Disclaimer: I am involved in Subversion
development, and it is the only one of these systems that I use on a regular basis.]- Subversion - http://subversion.tigris.org/
Subversion a été écrit en premier lieu pour remplacer CVS, avec sensiblement la même approche du contrôle de version, mais en corrigeant les problèmes qui ennuyaient fréquemment les utilisateurs de CVS et en ajoutant les fonctionnalités manquantes . L'un des buts de Subversion est de rendre la transition relativement légère aux habitués de CVS. Je ne m'attarde pas ici sur les fonctionnalités de Subversion, consultez le site Web du projet pour plus d'informations
[Note : Je suis impliqué dans le développement de Subversion et c'est le seul système parmi ceux listés ici que j'utilise régulièrement.][modifier] $3
- SVK — http://svk.elixus.org/
Although it is built on top of Subversion, SVK probably resembles Arch more than it does Subversion. SVK supports distributed (non-centralized) development, sophisticated change merging, and the ability
to mirror trees from non-SVK version control systems. See the web site for details.- SVK - http://svk.elixus.org/
Bien que basé sur Subversion, SVK ressemble probablement d'avantage à Arch.
SVK supporte le développement distribué (non-centralisé), un système de fusion des modifications intelligent et la capacité de copier des dépôts provenant de systèmes de gestion de version autres que SNK. Voir le site Web pour plus de détails.[modifier] $4
[modifier] $
- monotone — http://www.venge.net/monotone/
« monotone is a free distributed version control system. it provides a simple, single-file transactional version store, with fully disconnected operation and an efficient peer-to-peer synchronization protocol. It understands history-sensitive merging, lightweight branches, integrated code review and 3rd party testing. it uses cryptographic version naming and client-side RSA certificates. it has good internationaliza tion support, has no external dependencies, runs on linux, solaris, OSX, and windows, and is licensed
under the GNU GPL. »
[modifier] $6
- Codeville — http://codeville.org/
« Why yet another version control system? All other version control systems require that you keep careful track of the relationships between branches so as not have to repeatedly merge the same conflicts. Codeville is much more anarchic. It allows you to update from or commit to any repository at any time with no unnecessary re-merges. »
« Codeville works by creating an identifier for each change which is done, and remembering the list of all changes which have been applied to each file and the last change which modified each line in each file. When there's a conflict, it checks to see if one of the two sides has already been applied to the other one, and if so makes the other side win automatically. When there's an actual not automatically mergeable version conflict, Codeville behaves in almost exactly the same way as CVS. »- Codeville - http://codeville.org/
« Pourquoi un système de contrôle de version de plus ? Tous les autres systèmes de contrôle de version vous demandent de suivre consciencieusement les différentes branches pour ne pas avoir à fusionner plusieurs fois les mêmes conflits. Codeville est beaucoup plus anarchique. Il vous permet de mettre à jour ou de valider des modifications depuis n'importe quel dépôt, n'importe quand, sans fusions inutiles. »
« Codeville fonctionne en créant un identifiant pour tout changement apporté et en se souvenant de la liste de tous les changements appliqués à chaque ficher et du dernier changement pour chaque fichier et chaque ligne. Quand il y a un conflit, il vérifie si l'un des deux côtés a déjà été appliqué à l'autre et, si c'est le cas, déclare vainqueur l'autre côté automatiquement. Quand il y a effectivement un conflit de version non fusionnable, Codeville se comporte presque exactement comme CVS. »[modifier] $7
- Vesta — http://www.vestasys.org/
« Vesta is a portable SCM [Software Configuration Management] system targeted at supporting development of software systems of almost any size, from fairly small (under 10,000 source lines) to very large (10,000,000 source lines). »
« Vesta is a mature system. It is the result of over 10 years of research and development at the Compaq/Digital Systems Research Center, and it was in production use by Compaq's Alpha microprocessor group for over two and a half years. The Alpha group had over 150 active developers at two sites thousands of miles apart, on the east and west coasts of the United States. The group used Vesta to manage builds with as much as 130 MB of source data, each producing 1.5 GB of derived data. The builds done at the eastern site in an average day produced about 10-15 GB of derived data, all managed by Vesta. Although Vesta was designed with software development in mind, the Alpha group demonstrated the system's flexibility by using it for hardware development, checking their hardware description language files into Vesta's source code control facility and building simulators and other derived objects with Vesta's builder. The members of the former Alpha group, now a part of Intel, are continuing to use Vesta today in a new microprocessor project. »- Vesta - http://vestasys.org/
« Vesta est un système GCL (Gestion de Configuration Logicielle) portable qui vise à accompagner le développement de logiciels de presque toutes les tailles, des plus petits (moins de 10 000 lignes de code) aux très gros (10 000 000 de lignes de code). » « Vesta est un système mature, résultat de dix années de recherche et de développement au centre de recherche Compaq/Digital System et a été employé par le groupe Compaq's Alpha Microprocessor pendant deux ans et demi. Le groupe Alpha fonctionnait alors avec plus de 150 développeurs répartis sur deux sites à des milliers de kilomètres l'un de l'autre, sur les côtes Est et Ouest des Etats-Unis. Ont ainsi été gérées des distributions contenant jusqu'à 130 MO de données sources, chacune produisant 1,5 GO de données dérivées. Les versions compilées sur le site de la côte Est produisaient environ 10-15 GO de données dérivées par jour, toutes gérées par Vesta.
Bien que Vesta ait été construit en visant le développement de logiciel, le groupe Alpha a démontré la flexibilité du système en l'utilisant pour développer du matériel informatique, alimentant l'outil avec les fichiers de données matériel en langage spécifique puis en construisant des simulateurs et d'autres objets dérivés avec l'outil de développement adossé à Vesta. Les membres de l'ancien groupe Alpha (maintenant partie d'Intel), continuent à utiliser cet outil dans le cadre d'un nouveau projet de microprocesseur. »[modifier] $8
- Darcs — http://abridgegame.org/darcs/
« David's Advanced Revision Control System is yet another replacement for CVS. It is written in
Haskell, and has been used on Linux, MacOS X, FreeBSD, OpenBSD and Microsoft Windows. Darcs includes a cgi script, which can be used to view the contents of your repository. »- Darcs - http://abridgegame.org/darcs/
[modifier] $9
- Aegis — http://aegis.sourceforge.net/
- Aegis - http://aegis.sourceforge.net/
[modifier] $
- CVSNT — http://cvsnt.org/
- CVSNT - http://cvsnt.org/
[modifier] $
- META-CVS — http://users.footprints.net/~kaz/mcvs.html
- META-CVS - http://users.footprints.net/~kaz/mcvs.html
[modifier] $
- OpenCM — http://www.opencm.org/
- Open CM - http://www.opencm.org/
[modifier] $
- Stellation — http://www.eclipse.org/stellation/
- Stellation - http://www.eclipse.org/stellation/
[modifier] $
- PRCS — http://prcs.sourceforge.net/
« PRCS, the Project Revision Control System, is the front end to a set of tools that (like CVS) provide a way to deal with sets of files and directories as an entity, preserving coherent versions of the entire set. ... Its purpose is similar to that of SCCS, RCS, and CVS, but (according to its authors, at least), it is
much simpler than any of those systems. »- PRCS - http://prcs.sourceforge.net/
« PRCS, le Project Revision Control System, est l'interface d'un ensemble d'outils qui, comme CVS, permettent de gérer des ensembles de fichiers et dossiers comme une entité propre et en leur assurant une cohérence de version.
... Son but est proche de celui de SCCS, RCS et CVS, mais (d'après leurs auteurs en tout cas),est beaucoup plus accessible que n'importe lequel de ces systèmes.[modifier] $
- Bazaar — http://bazaar.canonical.com/
- Bazaar - http://bazaar.canonical.com/
[modifier] $
- Bazaar-NG — http://bazaar-ng.org/
- Bazaar-NG - http://bazaar-ng.org/
[modifier] $
[modifier] $
- SourceJammer — http://sourcejammer.org/
- Source - http://sourcejammer.org/
[modifier] $
[modifier] $
[modifier] $
- Mercurial — http://www.selenic.com/mercurial/
- Mercurial - http://www.selenic.com/mercurial/
[modifier] $
- Superversion — http://www.superversion.org/
« Superversion is a multi-user distributed version control system based on change sets. It aims to be an industrial-strength, open source alternative to commercial solutions that is equally easy to use (or even easier) and similarly powerful. In fact, intuitive and efficient usability has been one of the top priorities in Superversion's development from the very beginning. »
- Supervision - http://www.supervision.org/
[modifier] Appendix B. Free Bug Trackers / Annexe B. Systèmes libres de suivi de bogues
[modifier] 1
[modifier] 2
[modifier] 3
Bugzilla — http://www.bugzilla.org/
Bugzilla is very popular, actively maintained, and seems to make its users pretty happy. I've been using a modified variant of it in my work for four years now, and like it. It's not highly customizable, but in a odd way, that may be one of its features: Bugzilla installations tend to look pretty much the same wherever they are found, which means many developers are already accustomed to its interface and will feel they are in familiar territory.Bugzilla — http://www.bugzilla.org/
Bugzilla est très populaire et maintenu activement et semble apprécié des utilisateurs. J'en utilise depuis maintenant quatre ans une version modifiéee et cet outil me plait. Il n'est pas très personnalisable, mais c'est peut-être étrangement l'un de ses avantages : les installations de Bugzilla sont à peu près similaires un peu partout, ce qui signifie que les développeurs sont déjà habitués à son interface et se restent donc en terrain connu.[modifier] 4
[modifier] 5
RequestTracker (RT) — http://www.bestpractical.com/rt/
RT's web site says « RT is an enterprise-grade ticketing system which enables a group of people to intelligently and efficiently manage tasks, issues, and requests submitted by a community of users, » and that about sums it up. RT has a fairly polished web interface, and seems to have a pretty wide installed base. The interface is a bit visually complex, but that becomes less distracting as you get used to it. RT is licenced under the GNU GPL (for some reason, their web site doesn't make this clear).
RequestTracker (RT) - http://www.bestpractical.com/rt/
RT est présenté comme « un système de niveau professionnel permettant à un groupe de personnes de gérer intelligemment et efficacement les tâches, les problèmes et les demandes émanant de la communauté des utilisateurs », ce qui est un plutôt bon résumé. RT dispose d'une interface Web assez léchée et semble bénéficier d'une large base d'utilisateurs. L'interface est un peu complexe visuellement mais on s'y habitue et elle gêne moins avec le temps. RT est sous licence GNU GPL (ce n'est étrangement pas clairement affiché sur le site Web).[modifier] 6
Trac — http://trac.edgewall.com/
Trac is a bit more than a bug tracker: it's really an integrated wiki and bug tracking system. It uses wiki linking to connect issues, files, version control changesets, and plain wiki pages. It's fairly simple to set up, and integrates with Subversion (see Appendix A, Free Version Control Systems).Trac — http://trac.edgewall.com/
Trac est un peu plus qu'un système de suivi de bogues : c'est plutôt un wiki couplé à un système de référencement de bogues. Il utilise les liens wiki pour connecter les problèmes, les fichiers, les modifications sous contrôle de version et les pages wiki classiques. Il est simple à mettre en œuvre et s'intègre avec Subversion (voir l'Annexe A, Systèmes de Contrôle de Version libres).
[modifier] 7
Roundup — http://roundup.sourceforge.net/
Roundup is pretty easy to install (only Python 2.1 or higher is required), and simple to use. It has web, email, and command-line interfaces. The issue data templates and web interface are customizable, as is some of its state-transition logic.Roundup — http://roundup.sourceforge.net/
Roundup est assez simple à installer (le seul pré-requis est Python 2.1 ou supérieur) et simple d'utilisation. Il possède des interface Web, e-mail et par ligne de commande. Les formulaires de données des incidents et l'interface Web sont personnalisables tout comme une partie de sa logique de changement d'état.[modifier] 8
Mantis — http://www.mantisbt.org/
Mantis is a web-based bug tracking system, written in PHP, and using MySQL database for storage. It has the features you'd expect. Personally, I find the web interface clean, intuitive, and easy on the eyes.Mantis — http://www.mantisbt.org/
Mantis est une application Web de système de suivi de bogues écrite en PHP et utilisant MySQL pour le stockage des données. Elle possède les fonctionnalités que vous attendez d'un système de référencement de bogues. Personnellement je trouve l'interface propre, intuitive et agréable à l'œil.[modifier] 9
Flyspray — http://www.flyspray.org/
Flyspray is a web-based bug tracking system written in PHP. Its web pages describe it as « uncomplicated », and the list of features includes: multiple database support (currently MySQL and PGSQL); multiple projects; 'watching' tasks, with notification of changes (via email or Jabber); comprehensive task history; CSS theming; file attachments; advanced search features (though easy to use); RSS/Atom feeds; wiki and plaintext input; voting; dependency graphs.
Flyspray — http://www.flyspray.org/
Flyspray est une application Web de suivi de bogues écrite en PHP. Sur sa page Web elle est décrite comme « décompliqué » et parmi ses fonctionnalités on retrouve : le support de bases de données multiples (MySQL et PGSQL actuellement), la gestion de projets multiples, la surveillance de tâches avec des alertes de modifications (par e-mail ou Jabber), un historique complet des tâches, des thèmes par feuilles de style CSS, l'ajout de pièces jointes, des outils de recherche avancés (mais toujours simple à utiliser), le support des flux RSS/Atom, la saisie au format wiki ou texte brute, le vote et la représentation graphique des dépendances.[modifier] 10
Scarab — http://scarab.tigris.org/
Scarab is meant to be a highly customizable, full-featured bug tracker, offering more or less the union of the features offered by other bug trackers: data entry, queries, reports, notifications to interested parties, collaborative accumulation of comments, and dependency tracking.
Scarab - http://scarab.tigris.org/
L'idée de base de Scarab est d'offrir un système de suivi de bogues très complet et personnalisable. Il propose plus ou moins de rassembler les fonctionnalités assurées par les autres systèmes de référencement de bogues : l'entrée de données, les requêtes, les rapports, les notifications aux personnes concernées, la gestion collaborative des commentaires et le suivi des dépendances.
[modifier] 11
It is customizable through administrative web pages. You can have multiple « modules » (projects) active in a single Scarab installation. Within a given module, you can create new issue types (defects, enhancements, tasks, support requests, etc.), and add arbitrary attributes, to tune the tracker to your project's specific requirements.
As of late 2004, Scarab was getting close to its 1.0 release.
La personnalisation se fait au travers de pages Web administratives. Vous pouvez multiplier les « modules » (projets) actifs au sein d'une même installation de Scarab. Dans un module donné vous pouvez créer de nouveaux types de problèmes (défauts, améliorations, tâches, requêtes de support, etc.) et ajouter des attributs arbitraires pour adapter le système de référencement aux besoins spécifiques de votre projet.
Vers fin 2004, Scarab se rapprochait de la sortie de sa version 1.0.[modifier] 12
Debian Bug Tracking System (DBTS) — http://www.chiark.greenend.org.uk/~ian/debbugs/
The Debian Bug Tracking System is unusual in that all input and manipulation of issues is done via email: each issue gets its own dedicated email address. The DBTS scales pretty well: http://bugs.debian.org/ has 277,741 issues, for example.
Since interaction is done via regular mail clients, an environment which is familiar and easily accessible to most people, the DBTS is good for handling high volumes of incoming reports that need quick classification and response. There are disadvantages too, of course. Developers must invest the time needed to learn the email command system, and users must write their bug reports without a web form to guide them in choosing what information to write. There are tools available to help users send better bug reports, such as the command-line reportbug program or the debbugs-el package for Emacs. But most people won't use these tools; they'll just write email manually, and they may or may not follow the bug reporting guidelines posted by your project.
The DBTS has a read-only web interface, for viewing and querying issues.
Debian Bug Tracking System (DBTS) - http://www.chiark.greenend.org.uk/~ian/debbugs/
Le Debian Bug Tracking System est surprenant par le fait que toutes les saisies ou manipulations de problèmes se font par email : chaque problème se voit attribuer sa propre adresse email. Le DBTS s'adapte très bien à la taille de n'importe quel projet, http://bugs.debian.org/ recense par exemple 277 741 problèmes.
Comme toutes les interactions se font par le client de messagerie classique, un environnement familier et facilement accessible pour la plupart des gens, le DBTS est très adapté à l'enregistrement de nombreux rapports qui nécessitent un tri et une action rapide. Il possède également ses inconvénients évidemment. Les développeurs doivent passer par une étape d'apprentissage du système de commande par email et les utilisateurs doivent écrire leurs rapports de bogue sans pouvoir s'appuyer sur un formulaire en ligne pour les assister vis à vis des informations à transmettre. Il existe des outils pour aider les utilisateurs à envoyer de meilleurs rapports de bogues tels que le programme de rapport de bogue en ligne de commande ou le paquet debbugs-el pour Emacs. Mais la plupart des gens n'utiliseront pas ces outils, ils se contenteront d'écrire les emails à la main et ils suivront (ou pas) les consignes pour écrire un bon rapport de bogue données par votre projet.
Le DBTS propose une interface Web en lecture seule pour la consultation et la recherche de problèmes.[modifier] 14
Trouble-Ticket Trackers
These are more oriented toward help desk ticket tracking than software bug tracking. You'll probably do better with a regular bug tracker, but these are listed for the sake of completeness, and because there could conceivably be unusual projects for which a trouble-ticket system might be more appropriate than a traditional bug tracker.
- WebCall — http://myrapid.com/webcall/
- Teacup — http://www.altara.org/teacup.html (Teacup doesn't appear to be under active development anymore, but the downloads are still available. Note that it has both web and email interfaces.)
Suivi des dossiers d'incident
Ces programmes sont plus axés sur le suivi de l'assistance que sur le suivi des bogues. Un système de référencement de bogues sera sans aucun doute plus adapté, mais je vais aussi lister ces programmes afin d'être exhaustif et parce qu'il n'est pas inconcevable qu'un projet exotique tire meilleur parti d'un système de suivi des dossiers d'incident que d'un système de référencement de bogue classique.
- WebCall — http://myrapid.com/webcall/
- Teacup — http://www.altara.org/teacup.html (Il semblerait que le développement de Teacup soit interrompu pour le moment, mais les téléchargements sont toujours possibles. Il vous offre à la fois une interface Web et une interface email.)
[modifier] 15
Bluetail Ticket Tracker (BTT) — http://btt.sourceforge.net/
BTT is somewhere between a standard trouble-ticket tracker and a bug tracker. It offers privacy features that are somewhat unusual among open source bug trackers: users of the system are categorized as Staff, Friend, Customer, or Anonymous, and more or less data is available depending on one's category. It offers some email integration, a command-line interface, and mechanisms for converting emails into tickets. It also has features for maintaining information not associated with any specific ticket, such as internal documentation or FAQs.Bluetail Ticket Tracker (BTT) — http://btt.sourceforge.net/
BTT se trouve à mi-chemin entre un suivi des dossiers d'incident et un système de référencement de bogues. Il propose des options de confidentialité qui sont plutôt rares parmi les systèmes de référencement de bogues libres : les utilisateurs sont rangés dans les catégories Personnel, Ami, Client et Anonyme et la quantité d'information disponible dépend de la catégorie à laquelle vous appartenez. On retrouve l'intégration des emails, une interface en ligne de commande et des mécanismes de conversion des emails en dossiers. Il propose également des outils pour suivre des informations qui ne sont pas liées à des dossiers particuliers comme la documentation interne ou les FAQs.[modifier] Appendix C. Why Should I Care What Color the Bikeshed Is? / Pourquoi je devrais me soucier de la couleur de l'abri à vélo ?
You shouldn't; it doesn't really matter, and you have better things to spend your time on.
Poul-Henning Kamp's famous « bikeshed » post (an excerpt from which appears in Chapter 6, Communications) is an eloquent disquisition on what tends to go wrong in group discussions. It is reprinted here with his permission. The orginal URL isSubject: A bike shed (any colour will do) on greener grass...
From: Poul-Henning Kamp <phk@freebsd.org>
Date: Sat, 02 Oct 1999 16:14:10 +0200
Message-ID: <18238.938873650@critter.freebsd.dk>
Sender: phk@critter.freebsd.dk
Bcc: Blind Distribution List: ;
MIME-Version: 1.0
[bcc'ed to committers, hackers]
Vous ne devriez pas ; c'est pas vraiment important et vous avez mieux à faire.
Le fameux message « L'abri à vélo » de Poul-Henning Kamp (dont un extrait apparaît dans le Chapitre 6, Communication) est une métaphore éloquente de ce qui peut mal tourner dans une discussion de groupe. Il est reproduit ici avec son autorisation. L'adresse originale est
Sujet : Un abri à vélo (n'importe quelle couleur convient) sur de l'herbe plus verte...
De : Poul-Henning Kamp <phk@freebsd.org>
Date : Samedi, 2 Oct 1999 16:14:10 +0200
Message-ID: <18238.938873650@critter.freebsd.dk>
Expéditeur : phk@critter.freebsd.dk
Bcc: Liste de distribution invisible ;
MIME-Version: 1.0
[copie envoyée aux committers et hackers]
My last pamphlet was sufficiently well received that I was not scared away from sending another one, and today I have the time
and inclination to do so.
I've had a little trouble with deciding on the right distribution of this kind of stuff, this time it is bcc'ed to committers and hackers, that is probably the best I can do. I'm not subscribed
to hackers myself but more on that later.
The thing which have triggered me this time is the « sleep(1) should do fractional seconds » thread, which have pestered our lives for many days now, it's probably already a couple of weeks, I can't
even be bothered to check.
It was a proposal to make sleep(1) DTRT if given a non-integer argument that set this particular grass-fire off. I'm not going to say anymore about it than that, because it is a much smaller item than one would expect from the length of the thread, and it has already received far more attention than some of the *problems*
we have around here.
The sleep(1) saga is the most blatant example of a bike shed discussion we have had ever in FreeBSD. The proposal was well thought out, we would gain compatibility with OpenBSD and NetBSD,
and still be fully compatible with any code anyone ever wrote.
Yet so many objections, proposals and changes were raised and launched that one would think the change would have plugged all the holes in swiss cheese or changed the taste of Coca Cola or
something similar serious.
It's a long story, or rather it's an old story, but it is quite short actually. C. Northcote Parkinson wrote a book in the early 1960'ies, called « Parkinson's Law », which contains a lot of insight
into the dynamics of management.You can find it on Amazon, and maybe also in your dads book-shelf, it is well worth its price and the time to read it either way,
if you like Dilbert, you'll like Parkinson.Somebody recently told me that he had read it and found that only about 50% of it applied these days. That is pretty darn good I would say, many of the modern management books have hit-rates a
lot lower than that, and this one is 35+ years old.In the specific example involving the bike shed, the other vital component is an atomic power-plant, I guess that illustrates the
age of the book.Parkinson shows how you can go in to the board of directors and get approval for building a multi-million or even billion dollar atomic power plant, but if you want to build a bike shed you will
be tangled up in endless discussions.Parkinson explains that this is because an atomic plant is so vast, so expensive and so complicated that people cannot grasp it, and rather than try, they fall back on the assumption that somebody else checked all the details before it got this far. Richard P. Feynmann gives a couple of interesting, and very much to the point,
examples relating to Los Alamos in his books.A bike shed on the other hand. Anyone can build one of those over a weekend, and still have time to watch the game on TV. So no matter how well prepared, no matter how reasonable you are with your proposal, somebody will seize the chance to show that he is
doing his job, that he is paying attention, that he is *here*.In Denmark we call it « setting your fingerprint ». It is about personal pride and prestige, it is about being able to point somewhere and say « There! *I* did that. » It is a strong trait in politicians, but present in most people given the chance. Just
think about footsteps in wet cement.I bow my head in respect to the original proposer because he stuck to his guns through this carpet blanking from the peanut gallery, and the change is in our tree today. I would have turned my back and walked away after less than a handful of messages in that
thread.And that brings me, as I promised earlier, to why I am not subscribed
to -hackers:I un-subscribed from -hackers several years ago, because I could not keep up with the email load. Since then I have dropped off
several other lists as well for the very same reason.And I still get a lot of email. A lot of it gets routed to /dev/null by filters: People like [omitted] will never make it onto my screen, commits to documents in languages I don't understand likewise, commits to ports as such. All these things and more go
the winter way without me ever even knowing about it.But despite these sharp teeth under my mailbox I still get too much
email.I wish we could reduce the amount of noise in our lists and I wish we could let people build a bike shed every so often, and I don't
really care what colour they paint it.The first of these wishes is about being civil, sensitive and
intelligent in our use of email.If I could concisely and precisely define a set of criteria for when one should and when one should not reply to an email so that everybody would agree and abide by it, I would be a happy man, but
I am too wise to even attempt that.But let me suggest a few pop-up windows I would like to see mail-programs implement whenever people send or reply to email
to the lists they want me to subscribe to: +------------------------------------------------------------+
| Your email is about to be sent to several hundred thousand |
| people, who will have to spend at least 10 seconds reading |
| it before they can decide if it is interesting. At least |
| two man-weeks will be spent reading your email. Many of |
| the recipients will have to pay to download your email. |
| |
| Are you absolutely sure that your email is of sufficient |
| importance to bother all these people ? |
| |
| [YES] [REVISE] [CANCEL] |
+------------------------------------------------------------+
+-------------------------------------------------------------+
| Votre email va être envoyé à plusieurs centaines de milliers |
| de personnes qui devront prendre au moins 10 secondes pour |
| décider de son intérêt. Cela représente l'équivalent de deux|
| semaines de lecture. La plupart des destinataires devront |
| en plus payer pour télécharger votre email. |
| |
| Etes vous vraiment sûr que votre email est d'une importance |
| suffisante pour déranger tous ces gens ? |
| |
| [OUI] [MODIFIER] [ANNULER] |
+-------------------------------------------------------------+
+------------------------------------------------------------+
| Warning: You have not read all emails in this thread yet. |
| Somebody else may already have said what you are about to |
| say in your reply. Please read the entire thread before |
| replying to any email in it. |
| |
| [CANCEL] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| Attention : Vous n'avez peut-être encore pas lu tous les |
| emails de ce sujet. Quelqu'un d'autre peut déjà avoir dit |
| ce que vous vous apprêtez à dire dans votre réponse. |
| Veuillez lire le sujet entièrement avant de répondre. |
| |
| [ANNULER] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| Warning: Your mail program have not even shown you the |
| entire message yet. Logically it follows that you cannot |
| possibly have read it all and understood it. |
| |
| It is not polite to reply to an email until you have |
| read it all and thought about it. |
| |
| A cool off timer for this thread will prevent you from |
| replying to any email in this thread for the next one hour |
| |
| [Cancel] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| Attention : Votre programme de messagerie ne vous a même |
| pas encore montré tout le message. Il en découle que vous |
| n'avez pas pu le lire et le comprendre entièrement. |
| |
| Il n'est pas poli de répondre à un email avant de l'avoir |
| entièrement lu et d'y avoir réfléchi. |
| |
| Un minuteur sur ce sujet vous empêchera de répondre à ce |
| sujet dans l'heure qui suit. |
| |
| [Annuler] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| You composed this email at a rate of more than N.NN cps |
| It is generally not possible to think and type at a rate |
| faster than A.AA cps, and therefore you reply is likely to |
| incoherent, badly thought out and/or emotional. |
| |
| A cool off timer will prevent you from sending any email |
| for the next one hour. |
| |
| [Cancel] |
+------------------------------------------------------------+
+----------------------------------------------------------+
| Vous avez composé cet email à une vitesse supérieure à |
| x.xx cps. On ne peut normalement pas penser et écrire à |
| une vitesse supérieure à y.yy cps, il est donc probable |
| que votre réponse soit incohérente, mal conçue et/ou |
| écrite sous le coup de l'émotion. |
| |
| Un minuteur vous empêchera d'envoyer un autre email |
| pendant l'heure qui suit. |
| |
| [Annuler] |
+----------------------------------------------------------+
The second part of my wish is more emotional. Obviously, the capacities we had manning the unfriendly fire in the sleep(1) thread, despite their many years with the project, never cared enough to do this tiny deed, so why are they suddenly so enflamed
by somebody else so much their junior doing it ?I wish I knew.
I do know that reasoning will have no power to stop such « reactionaire conservatism ». It may be that these people are frustrated about their own lack of tangible contribution lately or it may be a bad
case of « we're old and grumpy, WE know how youth should behave ».Si seulement je savais.
Ce que je sais par contre c'est que le raisonnement ne pourra pas arrêter un tel « conservatisme réactionnaire ». Il est possible que ces personnes soient frustrées par leur propre manque de contribution ces derniers temps ou alors on pourrait avoir affaire à un mauvais cas de « nous sommes vieux et grognons, NOUS savons comment les jeunes devraient se comporter ».Either way it is very unproductive for the project, but I have no suggestions for how to stop it. The best I can suggest is to refrain from fuelling the monsters that lurk in the mailing lists: Ignore
them, don't answer them, forget they're there.I hope we can get a stronger and broader base of contributors in FreeBSD, and I hope we together can prevent the grumpy old men and the [omitted]s of the world from chewing them up, spitting them out and scaring them away before they ever get a leg to the
ground.For the people who have been lurking out there, scared away from participating by the gargoyles: I can only apologise and encourage you to try anyway, this is not the way I want the environment in the project to be.
Poul-Henning
A tous ceux qui traînent dans l'ombre, qui ne participent pas car trop effrayés par les gargouilles : Je ne peux que vous présenter nos excuses et vous encourager à essayer malgré tout, si ça ne tenez qu'à moi l'ambiance dans le projet ne serait pas telle qu'elle l'est.
Poul-Henning[modifier] Appendix D. Example Instructions for Reporting Bugs / Exemple d'instructions pour les rapports de bogues
Where To Report A Bug
Où rapporter un bogue
- If the bug is in Subversion itself, send mail to users@subversion.tigris.org. Once it's confirmed as a bug, someone, possibly you, can enter it into the issue tracker. (Or if you're pretty sure about the bug, go ahead and post directly to our development list, dev@subversion.tigris.org. But if you're not sure, it's better to post to users@ first; someone there can tell you whether the behavior you encountered is expected or not.)
- Si le bogue est dans Subversion lui-même, envoyez un mail à users@subversion.tigris.org. Une fois que le bogue est confirmé, quelqu'un, peut-être vous, peut l'inscrire dans le suivi des problèmes. (Ou si vous êtes surs de vous, envoyez le directement à notre liste de développement : dev@subversion.tigris.org. Mais si vous n'êtes pas certain, il vaut mieux l'envoyer à users@ en premier, quelqu'un sera capable de vous dire si le comportement que vous avez rencontré est normal ou pas.)
- If the bug is in the APR library, please report it to both of these mailing lists: dev@apr.apache.org, dev@subversion.tigris.org.
- Si le bogue se trouve dans une librairie APR, rapportez le s'il vous plaît à ces deux listes de diffusions : dev@apr.apache.org et dev@subversion.tigris.org.
- If the bug is in the Neon HTTP library, please report it to: neon@webdav.org, dev@subversion.tigris.org.
- Si le bogue concerne la librairie Neon HTTP, rapportez le s'il vous plaît à : neon@webdav.org et dev@subversion.tigris.org.
- If the bug is in Apache HTTPD 2.0, please report it to both of these mailing lists: dev@httpd.apache.org, dev@subversion.tigris.org. The Apache httpd developer mailing list is high-traffic, so your bug report post has the possibility to be overlooked. You may also file a bug report at http://httpd.apache.org/bug_report.html.
- Si le bogue est dans Apache HTTPD 2.0, rapportez le s'il vous plaît à ces deux listes de diffusion : dev@httpd.apache.org et dev@subversion.tigris.org. La liste de diffusion Apache httpd génère beaucoup de trafic et il est possible que votre rapport de bogue passe inaperçu. Vous pouvez également enregistrer un rapport de bogue à l'adresse http://httpd.apache.org/bug_report.html.
- If the bug is in your rug, please give it a hug and keep it snug.
- If the bug is in your rug, please give it a hug and keep it snug. [Si l'insecte (bug) est sous votre tapis, faites lui un gros câlin et gardez le bien au chaud]
How To Report A Bug
Comment rapporter un bogue
First, make sure it's a bug. If Subversion does not behave the way you expect, look in the documentation and mailing list archives for evidence that it should behave the way you expect. Of course, if it's a common-sense thing, like Subversion just destroyed your data and caused smoke to pour out of your monitor, then you can trust your judgement. But if you're not sure, go ahead and ask on the users mailing list first, users@subversion.tigris.org, or ask in IRC,
irc.freenode.net, channel #svn.Once you've established that it's a bug, the most important thing you can do is come up with a simple description and reproduction
recipe. For example, if the bug, as you initially found it, involves five files over ten commits, try to make it happen with just one file and one commit. The simpler the reproduction recipe, the more likely a developer is to successfully reproduce the bug and fix it.When you write up the reproduction recipe, don't just write a prose description of what you did to make the bug happen. Instead, give a
literal transcript of the exact series of commands you ran, and their output. Use cut-and-paste to do this. If there are files involved, be sure to include the names of the files, and even their content if you think it might be relevant. The very best thing is to package your reproduction recipe as a script, that helps us a lot.Quick sanity check: you *are* running the most recent version of Subversion, right? :-) Possibly the bug has already been fixed; you
should test your reproduction recipe against the most recent Subversion development tree.In addition to the reproduction recipe, we'll also need a complete description of the environment in which you reproduced the bug. That
means:- Your operating system
- The release and/or revision of Subversion
- The compiler and configuration options you built Subversion with
- Any private modifications you made to your Subversion
- The version of Berkeley DB you're running Subversion with, if any
- Anything else that could possibly be relevant. Err on the sideof too much information, rather than too little.
- Votre système d'exploitation
- La version et/ou la révision de Subversion
- Le compileur et les options de configuration que vous avez utilisé pour compiler Subversion
- Toute modification que vous avez apportée à Subversion
- La version de la Berkeley DB que vous utilisez avec Subversion le cas échéant
- Tout autre chose qui pourrait être importante. Il vaut mieux recevoir trop d'informations que pas assez.
Once you have all this, you're ready to write the report. Start out with a clear description of what the bug is. That is, say how you expected Subversion to behave, and contrast that with how it actually behaved. While the bug may seem obvious to you, it may not be so
obvious to someone else, so it's best to avoid a guessing game. Follow that with the environment description, and the reproduction recipe. If you also want to include speculation as to the cause, and even a patch to fix the bug, that's great — see http://svn.collab.net/repos/svn/trunk/www/hacking.html#patches for instructions on sending patches.Post all of this information to dev@subversion.tigris.org, or if you have already been there and been asked to file an issue, then go to the Issue Tracker and follow the instructions there. Thanks. We know it's a lot of work to file an effective bug report,but a good report can save hours of a developer's time, and make the
bug much more likely to get fixed.Envoyez toutes ces informations à dev@subversion.tigris.org, ou, si vous avez déjà contacté la liste de développeurs et qu'on vous a demandé de rapporter le problème rendez vous sur le Système de référencement de problèmes et suivez les instructions.
Merci. Nous savons que cela demande beaucoup de travail de faire un rapport de bogue efficace, mais un bon rapport de bogue fait gagner à nos développeurs beaucoup de temps et augmente la probabilité que le bogue soit corrigé.[modifier] Appendix E. Copyright
This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. A summary of the license is given below, followed by the full legal text. If you wish to distribute some or all of this work under different terms, please contact the author, Karl Fogel
<kfogel@red-bean.com>.Ce travail est sous licence Creative Commons Attributio-ShareAlike License. Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-sa/2.0/fr/legalcode ou envoyez un courrier à Creative Commons Gipsstrasse 12 10119 Berlin Germany ou Creative Commons 171 Second St, Suite 300 San Francisco, CA 94105 USA. Un résumé de cette licence se trouve ci-dessous, suivi par le texte légal complet. Si vous souhaitez distribuer cette œ en partie ou en entier sous des termes différents veuillez contacter l'auteur, Karl Fogel
<kfogel@red-bean.com>.-*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*-
Vous êtes libres :
* de reproduire, distribuer et communiquer cette création au public * de modifier cette création
Selon les conditions suivantes :
* Paternité. Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'œuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'œuvre). * Partage des Conditions Initiales à l'Identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci. * A chaque réutilisation ou distribution de cette création, vous devez faire apparaître clairement au public les conditions contractuelles de sa mise à disposition. La meilleure manière de les indiquer est un lien vers cette page web. * Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits sur cette œuvre. * Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs.
-*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*-
Creative Commons Legal Code: Paternité - Partage Des Conditions Initiales A l'Identique 2.0
Creative Commons n'est pas un cabinet d'avocats et ne fournit pas de services de conseil juridique. La distribution de la présente version de ce contrat ne crée aucune relation juridique entre les parties au contrat présenté ci-après et Creative Commons. Creative Commons fournit cette offre de contrat-type en l'état, à seule fin d'information. Creative Commons ne saurait être tenu responsable des éventuels préjudices résultant du contenu ou de l'utilisation de ce contrat.
Contrat
L'\Oe{}uvre (telle que définie ci-dessous) est mise à disposition selon les termes du présent contrat appelé Contrat Public Creative Commons (dénommé ici « CPCC » ou « Contrat »). L'\Oe{}uvre est protégée par le droit de la propriété littéraire et artistique (droit d'auteur, droits voisins, droits des producteurs de bases de données) ou toute autre loi applicable. Toute utilisation de l'\Oe{}uvre autrement qu'explicitement autorisée selon ce Contrat ou le droit applicable est interdite.
L'exercice sur l'\Oe{}uvre de tout droit proposé par le présent contrat vaut acceptation de celui-ci. Selon les termes et les obligations du présent contrat, la partie Offrante propose à la partie Acceptante l'exercice de certains droits présentés ci-après, et l'Acceptant en approuve les termes et conditions d'utilisation.
1. Définitions
1. « \Oe{}uvre » : œuvre de l'esprit protégeable par le droit de la propriété littéraire et artistique ou toute loi applicable et qui est mise à disposition selon les termes du présent Contrat.
2. « \Oe{}uvre dite Collective » : une œuvre dans laquelle l'œuvre, dans sa forme intégrale et non modifiée, est assemblée en un ensemble collectif avec d'autres contributions qui constituent en elles-mêmes des œuvres séparées et indépendantes. Constituent notamment des \Oe{}uvres dites Collectives les publications périodiques, les anthologies ou les encyclopédies. Aux termes de la présente autorisation, une œuvre qui constitue une \Oe{}uvre dite Collective ne sera pas considérée comme une \Oe{}uvre dite Dérivée (telle que définie ci-après).
3. « \Oe{}uvre dite Dérivée » : une œuvre créée soit à partir de l'\Oe{}uvre seule, soit à partir de l'\Oe{}uvre et d'autres œuvres préexistantes. Constituent notamment des \Oe{}uvres dites Dérivées les traductions, les arrangements musicaux, les adaptations théâtrales, littéraires ou cinématographiques, les enregistrements sonores, les reproductions par un art ou un procédé quelconque, les résumés, ou toute autre forme sous laquelle l'\Oe{}uvre puisse être remaniée, modifiée, transformée ou adaptée, à l'exception d'une œuvre qui constitue une \Oe{}uvre dite Collective. Une \Oe{}uvre dite Collective ne sera pas considérée comme une \Oe{}uvre dite Dérivée aux termes du présent Contrat. Dans le cas où l'\Oe{}uvre serait une composition musicale ou un enregistrement sonore, la synchronisation de l'œuvre avec une image animée sera considérée comme une \Oe{}uvre dite Dérivée pour les propos de ce Contrat.
4. « Auteur original » : la ou les personnes physiques qui ont créé l'\Oe{}uvre.
5. « Offrant » : la ou les personne(s) physique(s) ou morale(s) qui proposent la mise à disposition de l'\Oe{}uvre selon les termes du présent Contrat.
6. « Acceptant » : la personne physique ou morale qui accepte le présent contrat et exerce des droits sans en avoir violé les termes au préalable ou qui a reçu l'autorisation expresse de l'Offrant d'exercer des droits dans le cadre du présent contrat malgré une précédente violation de ce contrat.
7. « Options du Contrat » : les attributs génériques du Contrat tels qu'ils ont été choisis par l'Offrant et indiqués dans le titre de ce Contrat : Paternité - Pas d'Utilisation Commerciale - Partage Des Conditions Initiales A l'Identique.
2. Exceptions aux droits exclusifs. Aucune disposition de ce contrat n'a pour intention de réduire, limiter ou restreindre les prérogatives issues des exceptions aux droits, de l'épuisement des droits ou d'autres limitations aux droits exclusifs des ayants droit selon le droit de la propriété littéraire et artistique ou les autres lois applicables.
3. Autorisation. Soumis aux termes et conditions définis dans cette autorisation, et ceci pendant toute la durée de protection de l'\Oe{}uvre par le droit de la propriété littéraire et artistique ou le droit applicable, l'Offrant accorde à l'Acceptant l'autorisation mondiale d'exercer à titre gratuit et non exclusif les droits suivants :
1. reproduire l'\Oe{}uvre, incorporer l'\Oe{}uvre dans une ou plusieurs \Oe{}uvres dites Collectives et reproduire l'\Oe{}uvre telle qu'incorporée dans lesdites \Oe{}uvres dites Collectives;
2. créer et reproduire des \Oe{}uvres dites Dérivées;
3. distribuer des exemplaires ou enregistrements, présenter, représenter ou communiquer l'\Oe{}uvre au public par tout procédé technique, y compris incorporée dans des \Oe{}uvres Collectives;
4. distribuer des exemplaires ou phonogrammes, présenter, représenter ou communiquer au public des \Oe{}uvres dites Dérivées par tout procédé technique;
5. lorsque l'\Oe{}uvre est une base de données, extraire et réutiliser des parties substantielles de l'\Oe{}uvre.
Les droits mentionnés ci-dessus peuvent être exercés sur tous les supports, médias, procédés techniques et formats. Les droits ci-dessus incluent le droit d'effectuer les modifications nécessaires techniquement à l'exercice des droits dans d'autres formats et procédés techniques. L'exercice de tous les droits qui ne sont pas expressément autorisés par l'Offrant ou dont il n'aurait pas la gestion demeure réservé, notamment les mécanismes de gestion collective obligatoire applicables décrits à l'article 4(d).
4. Restrictions. L'autorisation accordée par l'article 3 est expressément assujettie et limitée par le respect des restrictions suivantes :
1. L'Acceptant peut reproduire, distribuer, représenter ou communiquer au public l'\Oe{}uvre y compris par voie numérique uniquement selon les termes de ce Contrat. L'Acceptant doit inclure une copie ou l'adresse Internet (Identifiant Uniforme de Ressource) du présent Contrat à toute reproduction ou enregistrement de l'\Oe{}uvre que l'Acceptant distribue, représente ou communique au public y compris par voie numérique. L'Acceptant ne peut pas offrir ou imposer de conditions d'utilisation de l'\Oe{}uvre qui altèrent ou restreignent les termes du présent Contrat ou l'exercice des droits qui y sont accordés au bénéficiaire. L'Acceptant ne peut pas céder de droits sur l'\Oe{}uvre. L'Acceptant doit conserver intactes toutes les informations qui renvoient à ce Contrat et à l'exonération de responsabilité. L'Acceptant ne peut pas reproduire, distribuer, représenter ou communiquer au public l'\Oe{}uvre, y compris par voie numérique, en utilisant une mesure technique de contrôle d'accès ou de contrôle d'utilisation qui serait contradictoire avec les termes de cet Accord contractuel. Les mentions ci-dessus s'appliquent à l'\Oe{}uvre telle qu'incorporée dans une \Oe{}uvre dite Collective, mais, en dehors de l'\Oe{}uvre en elle-même, ne soumettent pas l'\Oe{}uvre dite Collective, aux termes du présent Contrat. Si l'Acceptant crée une \Oe{}uvre dite Collective, à la demande de tout Offrant, il devra, dans la mesure du possible, retirer de l'\Oe{}uvre dite Collective toute référence au dit Offrant, comme demandé. Si l'Acceptant crée une \Oe{}uvre dite Collective, à la demande de tout Auteur, il devra, dans la mesure du possible, retirer de l'\Oe{}uvre dite Collective toute référence au dit Auteur, comme demandé. Si l'Acceptant crée une \Oe{}uvre dite Dérivée, à la demande de tout Offrant, il devra, dans la mesure du possible, retirer de l'\Oe{}uvre dite Dérivée toute référence au dit Offrant, comme demandé. Si l'Acceptant crée une \Oe{}uvre dite Dérivée, à la demande de tout Auteur, il devra, dans la mesure du possible, retirer de l'\Oe{}uvre dite Dérivée toute référence au dit Auteur, comme demandé.
2. L'Acceptant peut reproduire, distribuer, représenter ou communiquer au public une \Oe{}uvre dite Dérivée y compris par voie numérique uniquement sous les termes de ce Contrat, ou d'une version ultérieure de ce Contrat comprenant les mêmes Options du Contrat que le présent Contrat, ou un Contrat Creative Commons iCommons comprenant les mêmes Options du Contrat que le présent Contrat (par exemple Paternité - Pas d'Utilisation Commerciale - Partage Des Conditions Initiales A l'Identique 2.0 Japon). L'Acceptant doit inclure une copie ou l'adresse Internet (Identifiant Uniforme de Ressource) du présent Contrat, ou d'un autre Contrat tel que décrit à la phrase précédente, à toute reproduction ou enregistrement de l'\Oe{}uvre dite Dérivée que l'Acceptant distribue, représente ou communique au public y compris par voie numérique. L'Acceptant ne peut pas offrir ou imposer de conditions d'utilisation sur l'\Oe{}uvre dite Dérivée qui altèrent ou restreignent les termes du présent Contrat ou l'exercice des droits qui y sont accordés au bénéficiaire, et doit conserver intactes toutes les informations qui renvoient à ce Contrat et à l'avertissement sur les garanties. L'Acceptant ne peut pas reproduire, distribuer, représenter ou communiquer au public y compris par voie numérique l'\Oe{}uvre dite Dérivée en utilisant une mesure technique de contrôle d'accès ou de contrôle d'utilisation qui serait contradictoire avec les termes de cet Accord contractuel. Les mentions ci-dessus s'appliquent à l'\Oe{}uvre dite Dérivée telle qu'incorporée dans une \Oe{}uvre dite Collective, mais, en dehors de l'\Oe{}uvre dite Dérivée en elle-même, ne soumettent pas l'\Oe{}uvre Collective, aux termes du présent Contrat.
3. Si l'Acceptant reproduit, distribue, représente ou communiq