summaryrefslogtreecommitdiff
path: root/RFC_7990_RFC_Format_Framework.txt
blob: 6599750448e714ff6d8a0bb70b5dba440296ea8a (plain)
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
Titre: RFC 7990: RFC Format Framework
Auteur: 
Date: Fri 16 Dec 2016 01:00:00 +0100
Lien: https://www.bortzmeyer.org/7990.html

Voici enfin la série de RFC décrivant le nouveau format des RFC. Ce projet a 
commencé il y a plusieurs années, mais les discussions ont été longues. Ce 
nouveau RFC et les huit autres qui l'accompagnent, marquent un changement 
important dans ces « textes sacrés » de l'Internet : l'ancien format « texte 
brut » n'est plus le format de référence. Désormais, tout RFC sera fait en XML,
format d'où seront produits automatiquement des versions texte brut, HTML, PDF,
etc.

Les RFC sont des documents cruciaux pour l'Internet. C'est sous forme de RFC 
que sont publiées les normes techniques de la famille de protocoles TCP/IP. Et 
il y a bien d'autres RFC qui ne sont pas forcément des normes (cf. RFC 1796). 
Librement disponibles en ligne (contrairement aux normes techniques des 
organisations traditionnelles du mésozoïque), dans un format ouvert, la 
disponibilité des RFC est l'une des raisons du succès de l'Internet.

Parlons de format, justement. Les RFC, jusqu'à maintenant, étaient sous forme 
de texte brut, et en ASCII seul. (Certes, des versions PDF et HTML 
non-officielles étaient diffusées mais on voyait bien qu'elles avaient été 
produites à partir du texte brut... Certes, il était possible depuis dix ans 
d'écrire les RFC en XML, cf. RFC 2629, mais ce n'était pas le format de 
référence.) Pourquoi donc[1] se limiter à ce format ? Il y avait plusieurs 
bonnes (et d'autres moins bonnes) raisons mais il ne faut pas de cacher qu'une 
des raisons les plus importantes était qu'il est difficile de faire changer un 
processus de production bien établi, même s'il comprend des archaïsmes, comme 
l'utilisation de troff pour traiter des documents. L'actuelle éditrice des RFC,
Heather Flanagan, a donc eu bien du mérite à faire aboutir ce projet de 
changement. Il a fallu beaucoup de discussions, dans une communauté souvent 
divisée. (Que les informaticiens pensent aux grands débats du genre « vi ou 
emacs ? »)

Le projet de réforme des RFC avait sérieusement commencé en 2013 avec le RFC 
6949, le véritable cahier des charges du nouveau format. La décision formelle 
de migrer vers le nouveau format, et donc de décider que le format de référence
serait désormais le XML et non plus le texte brut a été prise en mai 2013[2]. 
Avant et pendant cette décision, d'innombrables messages ont été échangés sur 
la liste de diffusion rfc-interest[3].

Il est important de noter que cette discussion portait sur le processus de 
publication des RFC terminés. L'élaboration des Internet-Drafts, la décision de
les publier ou pas (qui dépend de chaque voie, cf. RFC 4844) ne sont pas 
concernées.

La section 2 de notre RFC résume le problème que veut résoudre le nouveau 
format. Le monde a bien changé depuis que seuls une poignée de Californiens 
anglophones venait aux réunions IETF. Les participants viennent aujourd'hui de 
45 pays, situés dans le monde entier, les lecteurs des RFC sont plus divers que
jamais, utilisent des engins très variés, et il est toujours aussi crucial que 
les RFC soient largement disponibles et accessibles, et sur une très longue 
période (mon favori est le RFC 768, publié en 1980 et toujours d'actualité). Le
format de référence en texte ASCII brut ne permettait clairement pas cela.

Mais choisir un successeur n'était pas facile : notre RFC insiste sur le fait 
qu'il y a aujourd'hui plusieurs groupes qui utilisent les RFC (pas seulement 
des techniciens, juristes et chefs accèdent aujourd'hui à des RFC), et sur le 
fait qu'il fallait un compromis entre les besoins actuels et l'importance d'une
disponibilité à long terme (par exemple, adopter le format à la mode du moment 
pourrait se payer cher plus tard lorsque ce format n'intéressera plus 
personne).

Un peu de terminologie (section 3) est nécessaire pour bien comprendre le choix
effectué : 

  * Format canonique : le format de référence, archivé, utilisé en cas de 
    conflit (XML, donc). Il est important d'en avoir un, au cas où une bogue 
    dans les logiciels change une partie d'un RFC.
  * Formats de publication : les divers formats sous lesquels est publié le RFC
    (détaillés en section 7). Peu de gens liront le RFC en XML (quoique cela 
    soit possible, une propriété qui est importante pour la conservation à long
    terme). Ils liront de l'HTML, du PDF, voire du texte seul pour les 
    traditionnalistes. Tous ces formats seront produits (de préférence 
    automatiquement) à partir du format canonique. Chacun a ses avantages et 
    inconvénients (section 5). Par exemple, HTML avec JavaScript fournit des 
    capacités de navigation bien meilleures que le texte brut.
  * Format révisable : le format que le RFC Editor utilisera pour son travail 
    interne. Ce sera XML.
  * Format de soumission : le format sous lequel le texte sera transmis 
    initialement par les auteurs au RFC Editor. Aujourd'hui, le texte brut est 
    obligatoire, le XML autorisé en prime. Demain, ce sera du XML, mais avec 
    des exigences moins strictes que pour le format canonique.

Et aussi un terme important : texte réagencable (ou réajustable, reflowable 
text). C'est du texte qui s'ajuste automatiquement à la largeur du dispositif 
de lecture. C'est banal dans le monde HTML, où c'est fait automatiquement 
depuis toujours. Mais c'était un des principaux inconvénients de l'ancien 
format des RFC : le texte avait une largeur fixe.

Quel sera donc exactement le format canonique ? La section 6 répond à cette 
question : 

  * Le langage sera du XML avec le vocabulaire spécifié dans le RFC 7991 (nommé
    « v3 »). Il est normalement meilleur que les précédents vocabulaires 
    utilisés depuis le RFC 2629.
  * Les auteurs pourront envoyer leur draft en suivant le format dit « v2 » 
    (celui du RFC 7749), voire en texte brut, mais il sera ensuite converti 
    dans le format v3 ci-dessus.
  * Le SVG sera autorisé dans le source XML.
  * Comme en v2, DTD est abandonné, la description officielle du schéma XML est
    en Relax NG.
  * Les textes obligatoires (RFC 5741) seront automatiquement insérés.
  * Le source XML du format canonique sera autonome. Cela veut dire qu'il 
    n'aura pas de références à des sources extérieures. Ainsi, si un auteur 
    référence un code source externe avec <>sourcecode src="[un URI 
    externe]"... (RFC 7991, section 2.48), le code en question sera inclus dans
    la version canonique. Idem si l'auteur a utilisé XInclude.
  * Il n'y aura pas de commentaires ou de processing instructions dans le 
    source XML. Si l'auteur en a mis, ils seront retirés.

Notez donc que les images (en SVG) seront désormais possibles (voir le RFC 
7996).

Le guide du style des RFC (RFC 7322) avait été révisé pour tenir compte de ce 
nouveau format. Notamment, il se concentre désormais sur le contenu du texte, 
ne demandant plus aux auteurs des efforts de présentation. (La section 5 résume
les changements importants pour les auteurs.)

Enfin, la section 7 décrit les formats de publication. À partir du source XML, 
seront automatiquement produits HTML, PDF, texte brut et peut-être plus tard 
d'autres. Le HTML est évidemment la cible évidente. Son utilisation pour les 
RFC est décrite dans le RFC 7992. Le résultat sera certainement bien meilleur 
que les versions HTML non-officielles actuelles, qui sont produites à partir du
texte brut, qui ne contient pas assez de structure pour faire du bon HTML. La 
mise en page sera évidemment assurée par CSS (RFC 7993), il y aura une feuille 
de style standard, que chacun sera bien sûr libre de remplacer. Le SVG sera 
inclus dans l'HTML (il faudra donc un navigateur qui gère bien SVG). Il y aura 
même du JavaScript mais avec de sévères restrictions. Notamment, le code 
JavaScript ne devra pas changer le texte, ou supprimer du texte.

PDF, quant à lui, est spécifié dans le RFC 7995. Il devra suivre le profil 
PDF/A-3, spécialement prévu pour de l'archivage à long terme, et pour pouvoir 
être relu par des logiciels PDF n'ayant pas tous les derniers gadgets.

Naturellement, le texte brut n'est pas abandonné. Comme indiqué dans le RFC 
7994, il y aura une version en texte brut produite automatiquement à partir du 
XML, même si elle ne sera plus la version canonique. Parmi les nouveautés par 
rapport à l'ancien format, UTF-8 sera désormais autorisé, même si c'est de 
façon limitée (voir les limitations dans le RFC 7997). Il pourra y avoir une 
variante non découpée en pages.

Dans le futur, il est possible que le format EPUB soit ajouté à cette liste.

Au passage, comment a été décidé cet important changement dans le format des 
RFC ? La section 4 résume cette histoire. Comme indiqué plus haut, cela a pris 
très longtemps et nécessité beaucoup de discussions, qui ont notamment eu lieu 
sur la liste de diffusion rfc-interest[3], et au cours des réunions physiques 
de l'IETF. Le cahier des charges a été formalisé en 2013 dans le RFC 6949. Une 
fois le cahier des charges décidé, une équipe spécialisée a été désignée par le
RFC Editor pour mettre au point les détails, notamment en adaptant le langage 
XML utilisé, partant de la dernière version (RFC 7749), pour arriver au futur 
langage, RFC 7991. Des éditeurs professionnels ont également été consultés, 
ainsi d'autres SDO et même des juristes (oui, car aux États-Unis, rien n'est 
désormais à l'abri d'actions en justice, même pas les RFC, le choix du format 
de sortie PDF/A-3 venait en partie de la nécessité de répondre aux subpoenas). 
Le tout était bien sûr fait sous la supervision du RFC Series Oversight 
Committee[4]. Certaines décisions furent consensuelles, les autres tranchées 
par le RFC Editor (cf. RFC 6635). Le tout a été approuvé par l'IAB en août 2016[5]
.

Après ce tour du passé, le futur. Comment se fera la transition vers le nouveau
système (section 10) ? C'est qu'il va falloir créer de nouveaux outils (cf. RFC
7998). L'appel d'offres pour leur développement a été fait en septembre 2016[6]
. La description des outils est une très intéressante lecture[7] (l'appel 
d'offres formel est sur la page des Request For Proposal[8]). L'appel d'offres 
a été gagné par les sociétés SeanTek et Elf Tools.

Pendant une période intermédiaire, le texte seul sera toujours utilisé comme 
format canonique, mais les nouveaux RFC passeront également par le nouveau 
workflow, pour vérifier que tout se passe bien et que le résultat est correct. 
Double travail, donc, mais nécessaire pour s'assurer que tout est en place.

Notez que, même une fois la transition finie, les auteurs ne seront pas forcés 
de soumettre leur document sous forme d'un fichier XML (ils seront simplement 
très fortement encouragés à le faire). S'ils envoient le texte seul comme 
avant, le RFC Editor devra produire le XML lui-même, et c'est ce XML qui sera 
la version canonique. Rappelez-vous que beaucoup de RFC sont des documents 
normatifs et que chaque mot, voire chaque virgule peut compter ! Voici pourquoi
il faudra s'assurer que tout est parfait, même si, au début, cela entrainera 
certainement des retards dans la publication.

Dans le cas où l'auteur envoie du XML suivant le RFC 7991, il y aura moins de 
travail pour le RFC Editor, juste convertir ce XML au XML canonique (résoudre 
les références extérieures, par exemple) et passer ce XML canonique dans les 
nouveaux outils.

Notez que le RFC Editor maintient une FAQ très utile[9] sur toutes les 
questions que pose le nouveau format. Et la RFC Editor avait fait un très drôle
Pecha Kucha à Séoul en novembre 2016, sur le cahier des charges du nouveau 
format[10].

Liens:
[1]: http://www.bortzmeyer.org/rfc-en-texte-brut.html (lien)
[2]: http://www.rfc-editor.org/pipermail/rfc-interest/2013-May/005584.html (lien)
[3]: https://www.rfc-editor.org/mailman/listinfo/rfc-interest (lien)
[4]: https://www.iab.org/activities/programs/rfc-editor-program/ (lien)
[5]: https://www.iab.org/2016/08/06/iab-approves-rfc-format-related-drafts-for-publication/ (lien)
[6]: https://mailarchive.ietf.org/arch/msg/ietf-announce/pC618gbTXrLIIAcAhOUCuahfjCI (lien)
[7]: http://www.nostrum.com/~rjsparks/rfced/ (lien)
[8]: https://iaoc.ietf.org/rfps.html (lien)
[9]: https://www.rfc-editor.org/rse/format-faq/ (lien)
[10]: http://snaggletooth.akam.ai/Seoul-videos/7-heather-8.mp4 (lien)