-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathorganisation_sources.theory.txt
212 lines (170 loc) · 10 KB
/
organisation_sources.theory.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ORGANISATIONS SOURCES ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┌────────────────┐
│ ROOT FILES │
└────────────────┘
AUTHORS #Contributeurs :
# - développeurs, dont si code emprunté
#Une ID :
# - Prénom Nom <mail> ou (mail)
#Versions :
# - simple : une ligne, un ID
# - complexe : phrase précédant ou suivant, ou autre aspect de présentation pour dire qui a fait quoi.
MAINTAINERS #Parfois comme AUTHORS.
#Parfois guidelines aux maintainers :
# - prerequis, building, testing
# - droit de commit, etc. sur chaque répertoire récursif
THANKS #Comme AUTHORS, mais pour contributions mineures :
# - traducteurs
# - graphistes
# - testing
# - patches
# - suggestions
# - bug reports
# - documentation
# - packaging
# - organismes et communautés
# - pas toujours marqué ce qu'ils ont fait
README.md #Présentation générale :
# - présentation du logiciel
# - présentation des features
# - dépendances (et où les avoir)
# - site web / resources
# - contribution
# - contacts (non des auteurs, mais du projet)
VERSION # - simple : Version : V.X[.Y][-Z]
# - ou sourcé et utilisé par configure :
# - simple : VERSION=...
# - complexe :
# - PKG_MAJOR=V
# PKG_MINOR=X
# PKG_REVISION=Y
# PKG_BUILD=Z
CHANGELOG.md #Changement entre chaque version :
RELEASE-NOTES #"Version V.X (change from V.X) - Released DATE :
# * Changement
# * Changement..."
#Peut différencier entre BUGFIXES et FEATURES
CHANGES #Comme ChangeLog
NEWS #Comme ChangeLog, mais plus succint (mais depuis le début)
TODO #Liste des new features et fixes souhaités.
#Préférer feature reporting, comme pour BUGS.
BUGS #Liste des bugs.
#Possibilité de classifier leur sévérité.
#Parfois aussi bug reporting (préférer, et utiliser bug tracking system, et mettre URL) ou bug
#searching details.
COPYING #Texte de la license, tel quel.
LICENSE #La mettre aussi :
# - en début de chaque fichier de code source (implémentation et headers)
# En général ne citent que le fichier, sans reproduire license ("You should have received...")
# Fichiers peuvent avoir leur propre license, d'où COPYING.DOC, COPYING.LIB ou COPYING.GPL, etc.
# - parfois root fichiers AUTHORS, THANKS
[COPYING.]GPL #Ou [COPYING.]MIT, [COPYING.]LGPL[v2.1], etc.
[LICENSE.]GPL #Lorsqu'un package est sous plusieurs license :
# - certains fichiers source ont des licenses différentes.
# Auquel cas, parfois expliqué dans LICENSE.
# - on peut également choisir :
# - d'inclure ou non certains fichiers sources
# - de pouvoir lier ou non avec des librairies par ex. GPL (activation d'une macro)
# en choisissant une option (configure) lors de la compilation.
# Parfois expliqué dans LICENSE (ex: ffmpeg)
COPYING.DOC
LICENSE.DOC #License de la documentation, si différente
COPYING.LIB
LICENSE.LIB #License de la bibliothèque, si différente
LICENSE.LOGICIEL #License des logiciels utilisés demandant à ce que leur license soit recopiée (dont copyright, et
#certaines libres)
PLATFORMS #Liste des plateformes supportées :
# - une par ligne
# - OS-COMPILO
NOTES #Ou :
# - Plateform-specific notes :
# - building/configure options pour chaque OS
# - dont plateforme macros pour library (si user-chosen feature macro et non détection
# automatique)
# - bugs spécifiques à une plateforme
# - comme COMPAT
# - comme BUGS
COMPAT #Ensembles de problèmes de rétro-compatibility introduits par chaque version.
#Egalement deprecations.
FAQ #FAQ
#Avec un summary si beacoup de points.
CONTRIBUTING #Rules for contributors (e.g. coding style)
ABOUT-NLS #Fichier indiquant comment support de l'internationalization, toujours le même, utilisé par
#Gnome translation project.
.gitignore #
JAVASCRIPT ==> #
index.js #Prefer using lib/index.js
C/C++ ==> #
Makefile #
configure #
INSTALL #Build instructions :
# - build commands (ex: ./configure, make, make install, mais aussi make check, make clean, make
# uninstall, etc.)
# - notamment pour telle ou telle plateforme
# - requirements
# - configure options
# - how to install precompiled binaries.
#Si automake, il existe un fichier automatiquement créé.
CMakeLists.txt #Pour chaque répertoire et sous-répertoire du tout
┌───────────────┐
│ ROOT DIRS │
└───────────────┘
bin #Final binaries produced or used
dist|release #After minification, compilation, etc.
addons|tools|utilities #Chaque module a son répertoire, avec une nouvelle arborescence
bindings #Comme addons, mais pour les bindings
patches #Suite de patches pouvant être applied
scripts #Scripts pouvant être utilisés
m4 #Ensemble des macros m4
templates #Like Handlebars, etc.
test|spec/ #Test files
po #.po et .gmo files (gettext). Divisé en langues,
#comme doc/, si plusieurs fichiers par langue.
etc|config #Fichiers conf
examples|samples #Real-life examples on on how to use
doc|docs #Documentation (locale, à générer ou non (ex :
#Doxygen)). Subdivisé en répertoires de langues, "fr",
#"en_US", etc.
manpages #Contient les manpages, prêtes à être copiées
bench #When using BENCHMARK for example
JAVASCRIPT ==> #
lib/ #Main source (librairies)
support|vendor/ #Libraries when not using Bower or NPM
assets/js|css #Non-compiled client-side
src/js|css #Non-compiled server-side
public/js|css|images|
fonts #Client-side, static files
app #Compiled server-side or non-static
app/models|views|
controllers|routes/
BRANCH #MVC app structure
app/index.html #Main file
app/favicon.ico #
app/robots.txt #
app/humans.txt #Like AUTHORS. See HTML doc for format
C/C++ ==> #
src #Deux systèmes :
# - sans répertoire include/ :
# - chaque fichier .c a son fichier .h dans le même
# répertoire
# - les fichiers sont ou bien tous à la racine de
# src/, ou rangés dans des répertoires
# représentant le module
include # - avec le répertoire include/ :
# - src/ et include/ ont la même structure (avec
# ou sans organisation par modules), include/
# ayant les .h, et src/ les .c
# - si modules, un .h incluant le module entier est
# présent à côté du répertoire module (simplifie
# le #include <>
resources
images #
lib #Partie du code source pouvant être utilisés à part
#comme une librairie à elle toute-seule. De même,
#nouvelle arborescence.
#Pour une librairie, remplace donc src/
extlibs #Bibliothèque extérieure éventuellement utilisées
cmake #Cmake dir
bin #Pre-compiled binaries : éviter de mettre ce répertoire