HOWTO sur la publication de logiciels
Eric S. Raymond <
[email protected]> Traduction par Thierry
B�zecourt <
[email protected]>
2.0, 18 septembre 1999
Ce HOWTO d�crit des m�thodes de publication de logiciel convenant �
des projets de logiciel libre pour Linux. En adoptant ces r�gles, vous
permettrez � vos utilisateurs de compiler votre code et de l'utiliser
plus facilement, et � d'autres d�veloppeurs de mieux le comprendre et
de vous aider � l'am�liorer. Ce document est � lire absolument par
les d�veloppeurs d�butants. Ceux qui ont plus d'exp�rience devraient
le parcourir � nouveau au moment de publier un nouveau projet. Il sera
mis � jour p�riodiquement afin de refl�ter l'�volution des r�gles de
bonne pratique.
______________________________________________________________________
Table des mati�res
1. Introduction
1.1 Raison d'�tre de ce document
1.2 Nouvelles versions de ce document
2. R�gles d'usage pour le nommage de votre projet et de votre archive
2.1 Utilisez le style de nommage GNU, avec un pr�fixe suivi d'un num�rotage du type majeur.mineur.patch.
2.2 Mais respectez le cas �ch�ant les conventions locales
2.3 Choisissez avec le plus grand soin un pr�fixe unique et facile � taper
3. R�gles d'usage pour la licence et le copyright : la th�orie
3.1 Les logiciels � code ouvert et le copyright
3.2 D�terminer ce qui peut �tre qualifi� comme logiciel � code ouvert
4. R�gles d'usage pour la licence et le copyright : la pratique
4.1 Donnez le copyright � vous-m�me ou � la FSF
4.2 Choisissez une licence conforme � l'Open Source Definition
4.3 N'�crivez pas votre propre licence si vous pouvez l'�viter.
5. R�gles d'usage du d�veloppement
5.1 Ecrivez soit en C ANSI pur, soit dans un langage de script portable
5.2 Respectez les r�gles de portabilit� du C
5.3 Utilisez autoconf/automaker/autoheader
5.4 Soignez la rigueur de votre code avant chaque nouvelle version
6. R�gles d'usage pour la mise au point de la distribution
6.1 Assurez-vous que vos archives se d�compactent toujours dans un r�pertoire nouveau et unique.
6.2 Ecrivez un README
6.3 Adoptez les conventions courantes de nommage des fichiers
6.4 Fournissez des RPM
7. Comment communiquer
7.1 Faites une annonce dans c.o.l.a
7.2 Faites une annonce dans un forum de discussion ad�quat
7.3 Ayez un site Web
7.4 H�bergez des listes de diffusion pour votre projet
7.5 Publiez dans les archives les plus importantes
8. La bonne gestion d'un projet
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
11..11.. RRaaiissoonn dd''��ttrree ddee ccee ddooccuummeenntt
Un vaste ensemble de traditions relatives au d�veloppement de
logiciels libres permet � d'autres personnes de porter le code plus
facilement, de l'utiliser et de participer � son d�veloppement.
Certaines de ces conventions sont des traditions du monde Unix
ant�rieures � Linux ; d'autres ont �t� suscit�es r�cemment par
l'apparition de nouveaux outils et de nouvelles technologies comme le
World Wide Web.
Ce document vous aidera � acqu�rir ces r�gles d'usage. Il se compose
de plusieurs sections th�matiques, chacune contenant une liste de
points � v�rifier. Consid�rez que ces sections sont pour votre
distribution comme la liste de contr�le qu'un pilote d'avion v�rifie
avant le d�collage.
11..22.. NNoouuvveelllleess vveerrssiioonnss ddee ccee ddooccuummeenntt
Ce document sera envoy� chaque mois dans le forum de discussion
comp.os.linux.answers . Ce document est archiv� sur plusieurs sites
FTP Linux, dont metalab.unc.edu dans le r�pertoire
pub/Linux/docs/HOWTO.
Vous pouvez aussi voir la derni�re version, en anglais, de ce HOWTO
sur le World Wide Web � l'URL
<
http://metalab.unc.edu/LDP/HOWTO/Software-Release-Practice.html>. La
version fran�aise est disponible � l'adresse
<
http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/fr>.
Vous pouvez envoyer vos questions et vos commentaires sur ce HOWTO �
Eric S. Raymond,
[email protected] <mailto:
[email protected]>.
22.. RR��gglleess dd''uussaaggee ppoouurr llee nnoommmmaaggee ddee vvoottrree pprroojjeett eett ddee vvoottrree aarrcchhiivvee
Au fur et � mesure que s'accro�t la charge de travail des
gestionnaires d'archives comme Metalab, le site PSA ou le CPAN, les
soumissions sont de plus en plus souvent trait�es, en tout ou en
partie, par des programmes (et non en totalit� par des humains).
Il est donc tr�s important que le nom de votre projet et celui de
votre fichier d'archive suivent des r�gles pr�cises, afin que des
programmes informatiques puissent les analyser et les comprendre.
22..11.. nnuumm��rroottaaggee dduu ttyyppee mmaajjeeuurr..mmiinneeuurr..ppaattcchh.. UUttiilliisseezz llee ssttyyllee ddee
nnoommmmaaggee GGNNUU,, aavveecc uunn pprr��ffiixxee ssuuiivvii dd''uunn
Vous faciliterez la vie � tout le monde en donnant � vos archives des
noms dans le style GNU : un pr�fixe-racine alphanum�rique tout en
minuscules, suivi par un tiret, puis un num�ro de version, une
extension et d'autres suffixes.
Supposons que vous ayez un projet nomm� "toto", qui en est � la
version 1, mise � jour 2, niveau 3. S'il est compos� d'une seule
archive (sans doute le code source), voici � quoi devrait ressembler
son nom :
ttoottoo--11..22..33..ttaarr..ggzz
L'archive des sources
ttoottoo..llssmm
Le fichier LSM (si vous l'envoyez � Metalab).
N'utilisez _p_a_s les noms suivants :
ttoottoo112233..ttaarr..ggzz
Beaucoup de programmes croiront qu'il s'agit du fichier
d'archive d'un projet nomm� `toto123', sans num�ro de version.
ttoottoo11..22..33..ttaarr..ggzz
Beaucoup de programmes croiront qu'il s'agit de l'archive d'un
projet nomm� `toto1' � la version 2.3.
ttoottoo--vv11..22..33..ttaarr..ggzz
Beaucoup de programmes prendront cela pour un projet nomm�
`toto-v1'.
ttoo__ttoo--11..22..33..ttaarr..ggzz
Le caract�re soulign� est difficile � prononcer, � taper, et �
retenir.
TTooTToo--11..22..33..ttaarr..ggzz
A moins que vous vouliez _v_r_a_i_m_e_n_t ressembler � un accroc du
marketing. L� encore, c'est difficile � prononcer, � taper et �
retenir.
Si vous voulez faire s�par�ment une archive de sources et une archive
de binaires, ou diff�rentes archives de binaires, ou encore indiquer
un certain type d'option de compilation dans le nom de l'archive,
rajoutez pour cela une extension _a_p_r_�_s le num�ro de version. Voici
quelques exemples :
ttoottoo--11..22..33..ssrrcc..ttaarr..ggzz
sources
ttoottoo--11..22..33..bbiinn..ttaarr..ggzz
binaires, type non sp�cifi�
ttoottoo--11..22..33..bbiinn..EELLFF..ttaarr..ggzz
binaires ELF
ttoottoo--11..22..33..bbiinn..EELLFF..ssttaattiicc..ttaarr..ggzz
binaires ELF li�s statiquement
ttoottoo--11..22..33..bbiinn..SSPPAARRCC..ttaarr..ggzz
binaires pour SPARC
N'utilisez _p_a_s des noms comme `toto-ELF.1.2.3.tar.gz', car les
programmes ont beaucoup de mal � s�parer un infixe (tel que `ELF') de
la racine du mot.
Un bon sch�ma de nommage g�n�rique contient, dans l'ordre, les parties
suivantes :
1. pr�fixe du projet
2. tiret
3. num�ro de version
4. point
5. "src" ou "bin" (optionnel)
6. point ou tiret (un point de pr�f�rence)
7. type de binaire et options (optionnel)
8. extensions relatives au mode d'archivage et de compression
22..22.. MMaaiiss rreessppeecctteezz llee ccaass ��cchh��aanntt lleess ccoonnvveennttiioonnss llooccaalleess
Certains projets ou communaut�s ont des conventions bien �tablies pour
les noms et les num�ros de version, et ces conventions ne sont pas
toujours compatibles avec les conseils qui pr�c�dent. Par exemple, les
modules Apache ont en g�n�ral des noms du genre mod_foo, et ils ont �
la fois un num�ro de version propre et le num�ro de la version
d'Apache avec laquelle ils fonctionnent. De m�me, les num�ros de
version des modules Perl peuvent �tre trait�s comme des nombres
d�cimaux (par exemple, vous pouvez voir 1,303 � la place de 1.3.3), et
les distributions s'appellent en g�n�ral Foo-Bar-1.303.tar.gz pour la
version 1.303 du module Foo::Bar.
Apprenez et respectez les conventions des communaut�s et d�veloppeurs
sp�cialis�s ; suivez les r�gles ci-dessus dans le cas g�n�ral.
22..33.. ttaappeerr CChhooiissiisssseezz aavveecc llee pplluuss ggrraanndd ssooiinn uunn pprr��ffiixxee uunniiqquuee eett
ffaacciillee ��
Le pr�fixe-racine devrait �tre le m�me pour tous les fichiers d'un
projet, et il devrait �tre facile � lire, � taper et � retenir.
N'utilisez pas le caract�re "soulign�". Et ne mettez pas de majuscules
ou de MajusculesInt�rieures sans une tr�s bonne raison -- cela d�range
le trajet naturel de l'oeil humain, et vous aurez l'air de faire du
marketing.
C'est difficile de s'y retrouver lorsque deux projets ont le m�me nom.
Assurez-vous donc, dans la mesure du possible, qu'il n'y a pas de
conflit de nommage avant de publier votre premi�re version. Un bon
endroit pour le v�rifier est l'index de Metalab
<
http://metalab.unc.edu/pub/Linux>.
33.. RR��gglleess dd''uussaaggee ppoouurr llaa lliicceennccee eett llee ccooppyyrriigghhtt :: llaa tthh��oorriiee
La licence que vous choisissez d�finit le contrat social que vous
souhaitez mettre en place avec vos co-d�veloppeurs et vos
utilisateurs. Le copyright que vous mettez sur le logiciel sert
principalement de d�claration l�gale de votre droit � fixer les termes
de la licence sur le logiciel et sur les oeuvres qui en sont d�riv�es.
33..11.. LLeess llooggiicciieellss �� ccooddee oouuvveerrtt eett llee ccooppyyrriigghhtt
(Note du traducteur : dans cette section comme dans celles qui
suivent, l'expression "(logiciel �) code ouvert" est utilis�e pour
traduire l'anglais "open source", tandis que l'expression habituelle
"logiciel libre" sert � transcrire "free software")
Tout ce qui n'appartient pas au domaine public poss�de un copyright,
voire plusieurs. Selon la Convention de Berne (qui a force de loi aux
Etats-Unis depuis 1978), le copyright n'a pas besoin d'�tre explicite.
C'est-�-dire que les auteurs d'une oeuvre sont d�tenteurs du copyright
m�me s'il n'y a pas de note de copyright.
Il peut �tre tr�s difficile de d�terminer qui peut �tre compt� comme
un auteur, surtout lorsque de nombreuses mains ont travaill� sur le
logiciel. C'est ce qui fait l'importance des licences. En pr�cisant
les conditions dans lesquelles l'oeuvre peut �tre utilis�e, elles
donnent aux utilisateurs des droits qui les prot�gent des actions
arbitraires que pourraient entreprendre les d�tenteurs du copyright.
Dans le logiciel propri�taire, les termes de la licence sont formul�s
de mani�re � prot�ger le copyright. Ils permettent de donner quelques
droits aux utilisateurs tout en assurant au propri�taire (le d�tenteur
du copyright) la plus grande possibilit� d'action possible sur le plan
l�gal. Le d�tenteur du copyright a une grande importance, et la
licence est tellement restrictive dans l'esprit que les d�tails
techniques de ses termes sont g�n�ralement sans importance.
Dans le logiciel � code ouvert, la situation est souvent exactement
inverse ; le copyright existe pour prot�ger la licence. Les seuls
droits qui sont toujours conserv�s au d�tenteur du copyright sont ceux
qui permettent de renforcer la licence. Parmi les autres droits, un
petit nombre seulement sont r�serv�s, et c'est l'utilisateur qui a la
plus grande libert�. En particulier, le d�tenteur du copyright ne peut
pas modifier la licence sur une copie que vous poss�dez d�j�. Par
cons�quent, le d�tenteur du copyright dans les logiciels � code ouvert
n'a presque aucune importance -- contrairement aux termes de la
licence.
Normalement, le d�tenteur du copyright sur un projet est le
responsable actuel du projet ou une organisation m�c�ne. Le changement
de responsable � la t�te d'un projet se manifeste souvent par la
modification du copyright. Toutefois ce n'est pas une r�gle absolue ;
dans de nombreux projets � code source ouvert, le copyright revient �
de multiples personnes, et il n'y a pas de cas connu o� cela ait
entra�n� des complications sur le plan l�gal.
Certains projets choisissent de donner le copyright � la Free Software
Foundation, avec l'id�e que cette fondation a un int�r�t dans la
d�fense du logiciel � code ouvert, et poss�de les avocats pour s'en
occuper.
33..22.. oouuvveerrtt DD��tteerrmmiinneerr ccee qquuii ppeeuutt ��ttrree qquuaalliiffii�� ccoommmmee llooggiicciieell ��
ccooddee
En ce qui concerne la licence, on peut distinguer plusieurs sortes de
droits transf�rables via une licence. Les droits de _c_o_p_i_e _e_t
_r_e_d_i_s_t_r_i_b_u_t_i_o_n, les droits d'_u_t_i_l_i_s_a_t_i_o_n, les droits de _m_o_d_i_f_i_c_a_t_i_o_n _�
_u_s_a_g_e _p_e_r_s_o_n_n_e_l et les droits de _r_e_d_i_s_t_r_i_b_u_t_i_o_n _d_e _c_o_p_i_e_s _m_o_d_i_f_i_�_e_s.
Une licence peut restreindre chacun de ces droits ou les accompagner
de conditions.
L'Open Source Initiative <
http://www.opensource.org> est le r�sultat
d'un important effort de r�flexion sur ce qui fait un ``logiciel �
code ouvert'' ou (dans une terminologie plus ancienne) un ``logiciel
libre''. L'association place les contraintes suivantes sur les
licences :
1. Un droit de copie illimit� doit �tre accord�.
2. Un droit d'utilisation illimit� doit �tre accord�.
3. Un droit de modication illimit� pour utilisation personnelle doit
�tre accord�.
Ces r�gles proscrivent les restrictions sur la redistribution de
binaires modifi�s ; cela correspond aux besoins des distributeurs de
logiciels, � qui il faut pouvoir livrer sans entraves du code en �tat
de marche. Cela permet aux auteurs de demander que le code source
modifi� soit redistribu� sous la forme du code source original plus
des patchs, ce qui fait appara�tre les intentions de l'auteur et, dans
un``suivi d'audit'', toutes les modifications faites par d'autres
personnes.
L'OSD est la d�finition l�gale de la marque de certification `OSI
Certified Open Source', et vaut toutes les d�finitions qu'on a pu
faire du ``logiciel libre''. Toutes les licences courantes (MIT, BSD,
Artistic et GPL/LGPL) la v�rifient (encore que certaines, comme la
GPL, ajoutent d'autres restrictions que vous devriez comprendre avant
de les adopter).
Notez que les licences n'autorisant qu'un usage non commercial ne
peuvent _p_a_s �tre qualifi�es de licences � code ouvert, m�me si elles
affichent la licence ``GPL'' ou quelque autre licence courante. Elles
font de la discrimination envers des occupations, des personnes et des
groupes particuliers. Elles rendent la vie trop compliqu�e aux
distributeurs de CD-ROM et aux autres personnes qui essaient de
diffuser commercialement les logiciels � code ouvert.
44.. RR��gglleess dd''uussaaggee ppoouurr llaa lliicceennccee eett llee ccooppyyrriigghhtt :: llaa pprraattiiqquuee
Voici comment appliquer dans la pratique la th�orie qui pr�c�de :
44..11.. DDoonnnneezz llee ccooppyyrriigghhtt �� vvoouuss--mm��mmee oouu �� llaa FFSSFF
Dans certains cas, si vous avez derri�re vous une organisation m�c�ne
qui poss�de des avocats, vous pouvez choisir de donner le copyright �
cette organisation.
44..22.. CChhooiissiisssseezz uunnee lliicceennccee ccoonnffoorrmmee �� ll''OOppeenn SSoouurrccee DDeeffiinniittiioonn
L'Open Source Definition (D�finition du Code Ouvert) est la r�gle d'or
pour les licences. L'OSD n'est pas une licence en soi ; elle d�finit
plut�t un ensemble minimal de droits qu'une licence doit garantir afin
d'�tre consid�r�e comme une licence � code ouvert. On peut trouver
L'OSD, avec des documents compl�mentaires, sur le site Web de l'Open
Source Initiative <
http://www.opensource.org>.
44..33.. NN''��ccrriivveezz ppaass vvoottrree pprroopprree lliicceennccee ssii vvoouuss ppoouuvveezz ll''��vviitteerr..
Les licences compatibles � l'OSD et connues de tous ont des traditions
d'interpr�tation bien �tablies. Les d�veloppeurs (et, dans la mesure
o� ils s'y int�ressent, les utilisateurs) savent ce qui en d�coule, et
mesurent les risques et les inconv�nients qu'elles comportent. Par
cons�quent, utilisez si possible l'une des licences standards sur le
site OSI.
Si vous devez �crire votre propre licence, prenez soin de la faire
certifier par l'OSI. Cela vous �pargnera de nombreuses discussions et
des co�ts importants. Si vous n'�tes jamais pass� par l�, vous ne
pouvez pas imaginer pas � quel point un d�bat sur les licences peut
tourner au vinaigre ; les gens s'enflamment, parce que les licences
sont consid�r�es comme des pactes presque sacr�s qui touchent aux
valeurs essentielles de la communaut� des logiciels ouverts.
De plus, l'existence d'une tradition d'interpr�tation bien �tablie
pourrait se r�v�ler importante si un jour votre licence faisait
l'objet d'un proc�s. A la date o� on �crit ces lignes (septembre
1999), il n'y a pas d'exemple de d�cision judiciaire qui ait confirm�
ou invalid� une licence de logiciel � code ouvert. Toutefois, c'est un
principe de droit (au moins aux Etats-Unis, et sans doute dans
d'autres pays de droit coutumier comme l'Angleterre et le reste du
Commonwealth) que les cours de justice doivent interpr�ter les
licences et les contrats en fonction des attentes et des pratiques de
la communaut� qui les a produits.
55.. RR��gglleess dd''uussaaggee dduu dd��vveellooppppeemmeenntt
La plupart de ces r�gles visent � assurer la portabilit�, non
seulement entre les diff�rentes distributions de Linux, mais aussi
avec d'autres vari�t�s d'Unix. La portabilit� vers Unix n'est pas
seulement une question de professionnalisme ou de savoir-vivre entre
programmeurs, c'est aussi une assurance non n�gligeable contre les
�volutions futures de Linux lui-m�me.
D'autres personnes finiront par essayer de compiler votre code dans
d'autres environnements que Linux ; avec la portabilit�, vous recevrez
moins de messages ennuyeux de la part d'utilisateurs perplexes.
55..11.. EEccrriivveezz ssooiitt eenn CC AANNSSII ppuurr,, ssooiitt ddaannss uunn llaannggaaggee ddee ssccrriipptt
ppoorrttaabbllee
Pour des raisons de portabilit� et de stabilit�, il est fortement
recommand� d'�crire soit en C ANSI pur, soit dans un langage de script
dont la portabilit� soit garantie par une impl�mentation multi-
plateforme unique.
Parmi les langages de script, Python, Perl, Tcl et Emacs Lisp
respectent ce crit�re. Le bon vieux shell _n_e _c_o_n_v_i_e_n_t _p_a_s ; il existe
trop d'impl�mentations diff�rentes, chacune ayant des particularit�s
subtiles, et l'environnement du shell est souvent transform� de
mani�re impr�visible par des configurations propres � chaque
utilisateur, comme les alias.
Java promet beaucoup sur le plan de la portabilit�, mais les
impl�mentations disponibles sur Linux sont encore sommaires et mal
int�gr�es dans le syst�me d'exploitation. Java est encore un choix
exotique, bien qu'il ait de fortes chances de gagner en popularit�
lorsqu'il aura plus de maturit�.
55..22.. RReessppeecctteezz lleess rr��gglleess ddee ppoorrttaabbiilliitt�� dduu CC
Si vous �crivez en C, n'h�sitez pas � utiliser � fond les
fonctionnalit�s d�crites dans la norme ANSI -- y compris les
prototypes de fonction, qui vous aideront � rep�rer les incoh�rences
entre modules. Les compilateurs du type K&R rel�vent du pass�.
En revanche, ne supposez _p_a_s que certaines caract�ristiques
sp�cifiques � GCC comme l'option `-pipe' ou les fonctions imbriqu�es
sont disponibles. Cela vous poursuivra et vous vous en repentirez le
jour o� quelqu'un portera votre logiciel vers un syst�me autre que
Linux, et d�pourvu de GCC.
55..33.. UUttiilliisseezz aauuttooccoonnff//aauuttoommaakkeerr//aauuttoohheeaaddeerr
Si vous �crivez en C, utilisez autoconf/automaker/autoheader pour
assurer la portabilit�, v�rifier la configuration du syst�me et
affiner vos makefiles. De nos jours, les gens qui compilent � partir
des sources s'attendent � devoir juste taper "configure; make" et que
tout se compile proprement - sans la moindre erreur.
55..44.. SSooiiggnneezz llaa rriigguueeuurr ddee vvoottrree ccooddee aavvaanntt cchhaaqquuee nnoouuvveellllee vveerrssiioonn
Si vous �crivez en C, faites une compilation de test avec l'option
-Wall et corrigez les erreurs r�sultantes, au moins une fois avant
chaque nouvelle version. On trouve comme cela un nombre surprenant
d'erreurs. Pour �tre vraiment complet, compilez aussi avec l'option
-pedantic.
Si vous �crivez en Perl, v�rifiez votre code avec perl -c (voire -T
dans les cas ad�quats). Utilisez perl -w 'use strict' religieusement
(consultez la documentation de Perl pour plus d'informations).
66.. RR��gglleess dd''uussaaggee ppoouurr llaa mmiissee aauu ppooiinntt ddee llaa ddiissttrriibbuuttiioonn
Les indications qui suivent montrent � quoi votre distribution devrait
ressembler lorsqu'on la r�cup�re et qu'on la d�compacte.
66..11.. rr��ppeerrttooiirree nnoouuvveeaauu eett uunniiqquuee.. AAssssuurreezz--vvoouuss qquuee vvooss aarrcchhiivveess ssee
dd��ccoommppaacctteenntt ttoouujjoouurrss ddaannss uunn
L'erreur la plus aga�ante que font les d�veloppeurs novices est de
fabriquer des archives qui d�compactent les fichiers et r�pertoires de
la distribution dans le r�pertoire courant, avec le risque d'�craser
des fichiers d�j� pr�sents. _N_e _f_a_i_t_e_s _j_a_m_a_i_s _c_e_l_a _!
A la place, faites en sorte que les fichiers de vos archives partagent
le m�me r�pertoire, avec un nom d�rivant de celui du projet. Ainsi,
ils se placeront dans un seul r�pertoire, juste _e_n_-_d_e_s_s_o_u_s du
r�pertoire courant.
Voici un moyen de r�aliser cela dans un makefile, en supposant que le
r�pertoire de votre distribution est `toto' et que SRC est une
variable contenant la liste des fichiers de votre distribution. Vous
devez avoir GNU tar 1.13.
VERS=1.0
toto-$(VERS).tar.gz:
tar --name-prefix='toto-$(VERS)/' -czf toto-$(VERS).tar.gz $(SRC)
Si votre version de tar est plus ancienne, faites quelque chose dans
ce genre :
toto-$(VERS).tar.gz:
@ls $(SRC) | sed s:^:toto-$(VERS)/: >MANIFEST
@(cd ..; ln -s toto toto-$(VERS))
(cd ..; tar -czvf toto/toto-$(VERS).tar.gz `cat toto/MANIFEST`)
@(cd ..; rm toto-$(VERS))
66..22.. EEccrriivveezz uunn RREEAADDMMEE
Fournissez un fichier nomm� README ou READ.ME, qui donne une vision
d'ensemble de votre distribution. C'est une vieille convention, et
c'est le premier fichier que l'intr�pide explorateur lira apr�s avoir
extrait les sources (Note du traducteur : le fichier README, comme son
nom l'indique, est �crit en anglais afin d'�tre lisible par le plus
grand nombre de personnes possible. Vous pouvez aussi, si vous le
jugez utile, fournir une traduction fran�aise dans un fichier nomm�
LISEZMOI, pour les utilisateurs francophones).
Voici quelques �l�ments qu'il est bon d'avoir dans un README :
� Une br�ve description du projet.
� Un lien vers le site Web du projet, le cas �ch�ant.
� Des indications sur l'environnement de compilation du d�veloppeur
et sur les possibles probl�mes de portabilit�.
� Un plan d'ensemble des fichiers et sous-r�pertoires importants.
� Les instructions de compilation et d'installation, ou bien un lien
vers le fichier les contenant (habituellement INSTALL).
� Le nom des responsables et des contributeurs, ou un lien vers le
fichier contenant ces noms (habituellement CREDITS).
� Les derni�res nouvelles relatives au projet, ou un lien vers un
fichier les contenant (habituellement NEWS).
66..33.. AAddoopptteezz lleess ccoonnvveennttiioonnss ccoouurraanntteess ddee nnoommmmaaggee ddeess ffiicchhiieerrss
Avant m�me d'avoir regard� le README, votre intr�pide explorateur aura
parcouru la liste des fichiers dans r�pertoire principal de votre
distribution. Ces noms, par eux-m�mes, contiennent de l'information.
En suivant certaines r�gles de nommage, vous donnerez � l'explorateur
de bons indices pour orienter son parcours.
Voici quelques noms recommand�s pour les fichiers du r�pertoire
principal, avec leur signification. Tous ne sont pas indispensables
dans chaque projet.
RREEAADDMMEE oouu RREEAADD..MMEE
le plan d'ensemble, � lire en premier
IINNSSTTAALLLL
instructions de configuration, de compilation et d'installation
CCRREEDDIITTSS
liste des contributeurs du projet
NNEEWWSS
derni�res nouvelles
HHIISSTTOORRYY
histoire du projet
CCOOPPYYIINNGG
termes de la licence (convention GNU)
LLIICCEENNSSEE
termes de la licence
MMAANNIIFFEESSTT
liste des fichiers
FFAAQQ
Foire Aux Questions pour le projet, au format texte.
TTAAGGSS
Fichier de tags g�n�r� automatiquement, pour �tre utilis� par
Emacs ou vi
Remarquez que la convention g�n�rale est que les fichiers dont le nom
ne comporte que des majuscules sont des fichiers d'information sur le
projet lui-m�me, et ne sont pas des �l�ments du syst�me � compiler.
66..44.. FFoouurrnniisssseezz ddeess RRPPMM
Le format standard de facto pour les distributions de binaires �
installer est celui qu'utilise le Red Hat Package Manager, RPM. Il est
pr�sent dans les distributions Linux les plus populaires, et il est
support� en pratique par toutes les autres (sauf Debian et Slackware ;
et Debian peut faire des installations � partir de RPM).
Par cons�quent, c'est une bonne id�e de fournir sur le site de votre
projet des RPM installables en m�me temps qu'une archive des sources.
C'est aussi une bonne id�e d'inclure dans votre archive de sources le
fichier de sp�cification du RPM, avec dans le Makefile une entr�e qui
fabrique les RPM � partir de lui. Le fichier de sp�cification devrait
avoir l'extension `.spec' ; c'est comme cela que l'option -t de rpm le
trouve � l'int�rieur de l'archive.
Encore un point de style : g�n�rez votre fichier de sp�cification avec
un script shell qui ins�re automatiquement le num�ro de version en
analysant le Makefile ou un fichier version.h.
77.. CCoommmmeenntt ccoommmmuunniiqquueerr
Votre logiciel n'apportera pas grand-chose � l'univers si vous �tes le
seul � conna�tre son existence. De plus, en �tablissant une pr�sence
visible sur Internet pour votre projet, vous pourrez recruter plus
facilement des utilisateurs et des co-d�veloppeurs. On le fait
habituellement comme ceci :
77..11.. FFaaiitteess uunnee aannnnoonnccee ddaannss cc..oo..ll..aa
Annoncez vos nouvelles versions dans comp.os.linux.announce
<news:comp.os.linux.announce>. Non seulement ce forum est lu par un
grand nombre de personnes, mais c'est aussi un fournisseur important
pour des sites Web d'information comme Freshmeat
<
http://www.freshmeat.net>.
77..22.. FFaaiitteess uunnee aannnnoonnccee ddaannss uunn ffoorruumm ddee ddiissccuussssiioonn aadd��qquuaatt
Trouvez un forum USENET dont le th�me de discussion est directement
concern� par votre application, et faites-y aussi votre annonce.
N'envoyez votre message qu'aux endroits o� la _f_o_n_c_t_i_o_n remplie par
votre logiciel est pertinente, et restez mesur�.
Si (par exemple) vous publiez un programme en Perl qui interroge des
serveurs IMAP, vous devriez probablement envoyer un message dans
comp.mail.imap. Mais s�rement pas dans comp.lang.perl, � moins que le
programme utilise de mani�re instructive des techniques Perl avanc�es.
Votre annonce devrait aussi contenir l'URL du site Web de votre
projet.
77..33.. AAyyeezz uunn ssiittee WWeebb
Si vous comptez �tablir une communaut� substantielle d'utilisateurs ou
de d�veloppeurs autour de votre projet, celui-ci devrait avoir son
site Web. Voici des �l�ments que l'on trouve habituellement sur un
site Web :
� La charte du projet (pourquoi il existe, quelle est son audience,
etc).
� Des liens pour le t�l�chargement des sources.
� Des instructions relatives � l'inscription � la ou les liste(s) de
diffusion.
� Une FAQ (Foire Aux Questions).
� Une version en HTML de la documentation.
� Des liens vers des projets proches et/ou concurrents.
Certains projets ont m�me une URL pour un acc�s anonyme �
l'arborescence principale du code source.
77..44.. HH��bbeerrggeezz ddeess lliisstteess ddee ddiiffffuussiioonn ppoouurr vvoottrree pprroojjeett
Il est d'usage d'avoir une liste de d�veloppement priv�e qui permet
aux collaborateurs du projet de communiquer et d'�changer des patchs.
Vous voudrez peut-�tre cr�er en plus une liste d'annonces pour les
gens qui veulent �tre inform�s de la progression du projet.
77..55.. PPuubblliieezz ddaannss lleess aarrcchhiivveess lleess pplluuss iimmppoorrttaanntteess
Depuis plusieurs ann�es, le site Metalab
<
http://www.metalab/unc.edu/pub/Linux/> est le plus important des
endroits d'�change de logiciels pour Linux.
Voici quelques autres sites notables :
� le site Python Software Activity <
http://www.python.org>
(pour les logiciels �crits en Python).
� le CPAN <
http://language.perl.com/CPAN> ou R�seau d'Archives Perl
Global (pour les logiciels �crits en Perl).
88.. LLaa bboonnnnee ggeessttiioonn dd''uunn pprroojjeett
Bien g�rer un projet lorsque tous les participants sont b�n�voles
pr�sente des d�fis particuliers. Le sujet est trop large pour �tre
trait� dans le cadre d'un HOWTO. Heureusement, il existe des documents
de r�flexion qui vous aideront � comprendre les principaux points.
Pour un essai sur l'organisation de base du d�veloppement et du
principe `distribuez t�t, mettez � jour souvent' propre au `mode
bazar', lisez The Cathedral and the Bazaar
<
http://www.tuxedo.org/~esr/writings/cathedral-bazaar/>.
Pour une r�flexion sur les motivations psychologiques, des coutumes de
la communaut� et de la r�solution des conflits, lisez Homesteading the
Noosphere <
http://www.tuxedo.org/~esr/writings/homesteading/>.
Pour un expos� des principes �conomiques et des mod�les commerciaux �
adopter, lisez The Magic Cauldron
<
http://www.tuxedo.org/~esr/writings/magic-cauldron/>.
Si vous �tes allergique � la langue de Shakespeare, vous pourrez
trouver des traductions de ces documents sur le site Linux France
<
http://www.linux-france.org/article/these/>.
Ces papiers ne pr�tendent pas se poser comme les r�f�rences ultimes �
propos des d�veloppements � code source ouvert. Mais ils constituent
les premi�res analyses s�rieuses �crites sur le sujet, et n'ont pas
encore �t� d�pass�s.