Gentoo Archives: gentoo-dev

From: Grobian <grobian@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] GLEP 42 "Critical News Reporting" Round Two
Date: Sat, 05 Nov 2005 10:31:15
Message-Id: 436C8951.4010008@gentoo.org
In Reply to: [gentoo-dev] GLEP 42 "Critical News Reporting" Round Two by Ciaran McCreesh
1 Ciaran McCreesh wrote:
2 > Motivation
3 > ==========
4 >
5 > There are currently several ways of getting news out to our users, none of them
6 > particularly effective:
7
8 This assumes the following ways are really ineffective, something which
9 you don't prove or give any reason for. Hence it's eligable for another
10 big discussion. To avoid that, I would suggest to add a number of
11 reasons, or whatever to make this assumption sound (more) valid. It is
12 important, I think, that the reader can understand your grounds for
13 saying this.
14 (I personally disagree on this statement now, but it makes no use
15 discussing it since you haven't given any ground as on why. Maybe if
16 you would give a definition, I could adjust my own definition and agree.)
17
18 > A more reliable way of getting news of critical updates out to users is required
19 > to avoid repeats of the various recent upgrade debacles.
20
21 Perhaps you want to add a small footnote here, to give a small example
22 of such debacle, and using that example point out what is the problem
23 you think is important, and hence will address in this paper... eh GLEP.
24
25 > This GLEP proposes a
26 > solution based around pushing news items out to the user via the ``rsync`` tree.
27
28 This is a minor side issue, but I think that GLEP 2 states that you
29 should use ' instead of `. No discussion on it please, I might be wrong
30 or you just didn't know.
31
32 > Preemptive
33 > Users should be told of changes *before* they break the user's system,
34 > after the damage has already been done.
35
36 style suggestion for unambigous interpretation:
37 perhaps a "because if applied afterwards" instead of "after"
38
39 > No user subscription required
40 > It has already been demonstrated [#forums-whining]_ that many users do not
41 > read the ``gentoo-announce`` mailing list or ``RSS`` feeds. A solution which
42 > requires subscription has no advantage over current methods.
43
44 You implicitly state that many users do not read the gentoo-announce
45 list and RSS-feeds because they are subscription based. This sounds
46 like a too quick assumption to me. At least it is not founded in any
47 way. Consider that for RSS-feeds one typically doesn't have to
48 subscribe, but just add it to his/her reader. Make clear why you think
49 the subscription model stops users from reading, and why a push-based
50 alternative (as you suggest here) will work. Remember that it is easy
51 to say here that users don't read what's on their consoles as well, as
52 in post emerge messages etc. So make sure you deal with it upfront, why
53 you think now it *will* work.
54
55 > No user monitoring required
56 > It has already been demonstrated [#forums-whining]_ that many users do not
57 > read news items posted to the Gentoo website, or do not read news items
58 > until it is too late. A solution that relies upon active monitoring of a
59 > particular source has no advantage over current methods.
60
61 Apart from that this point seems to repeat much of the previous one, it
62 introduces a new unfounded claim (users do read, but now too late) which
63 somehow contradicts previous statements. Beware that you clearly deal
64 with this, or just introduce it earlier so it doesn't look you're
65 contradicting yourself.
66
67 > Lightweight
68 > It is not reasonable to expect all users to have an MTA, web browser, email
69 > client, cron daemon or text processing suite available on their system.
70
71 Direct question that follows from this: what *do* we expect a
72 user/system to have available? I think it's good to state that as well,
73 since you're excluding a lot here in once sentence.
74
75 > 3. The news item is committed to a CVS (or Subversion [#glep-36]_) repository.
76 > From here, it is merged with the rsync tree. This is described in `News Item
77 > Distribution`_.
78 > 4. The news item is merged with the rsync tree. Implementation details of this
79 > point are beyond the scope of this GLEP; existing solutions are in place
80 > for merging GLSAs to the tree.
81
82 Where does point 4 differ from the second part of point 3? Also, point
83 3 implies that the merging into the rsync tree is being described
84 further on, while point 4 states the oposite of not discussing it (out
85 of scope). Maybe split point 3 and merge with 4?
86
87 > 5. Users fetch the news item when they sync. This ensures that the news items in
88 > question are pushed to the user before the user accidentally makes an
89 > unwanted change. No changes to the existing rsync process are required by
90 > this GLEP.
91
92 I would suggest a reference to a place where you will explain this
93 'pushing' to the user in detail. Especially the time and the way how
94 are important. Or maybe I was just confused by "pushed" and is the only
95 thing this point wants to say that all news items are just synced
96 together with the rest of the portage tree upon a emerge --sync. The
97 latter sounds logical considering the last sentence quoted above.
98
99 > 6. Portage filters the news item and, if it is relevant, installs it in a
100 > special location to be read by a news item reader. Messages are also
101 > displayed to inform the user that news is available.
102
103 So, same as for point 5, the exact details on how this works and what a
104 'news item reader' is (since you previously defined a requirement of
105 having almost nothing available on the system) should be refered to
106 here. I want to be sure that you will elaborate on it lateron, so I can
107 stack up my many questions for now.
108
109 > 7. The news item is handled by the user's choice of news item reader. See `News
110 > Item Clients`_.
111
112 Wow. Seems like point 6 mentioned 'news item reader' too early! Same
113 for point 5 of mentioning "pushing" which is only dealt with in point 6.
114 In any case, the reference is there: good.
115
116 > The news item will be named in the form ``yyyy-mm-dd-item-name.en.txt``, where
117 > ``item-name`` is a very short name (e.g. ``apache-updates``) and ``en`` is the
118 > two letter ISO 639 [#iso-639]_ language code for the news item. The short name
119 > must consist only of characters ``a-z``, ``A-Z``, ``0-9`` and ``-`` (hyphen).
120
121 Consider replacing hyphen with an underscore to ease parsing.
122
123 > An English (``en``) version must be available for all news items. Other
124 > languages may be provided either by the original author or by other translators
125 > who have commit access. This anglocentricity is justified on the grounds that
126 > nobody objected to it with GLEP 34 [#glep-34]_.
127
128 This might sound a bit 'attacking'. Try to rephrase it a bit to sound
129 more formal. Also, note that probably noone cares about it and takes it
130 for granted. You included support for other languages, so there's
131 nothing to make a sharp point on here, I guess.
132 (Maybe: "An English (''en'') version must be available for all news
133 items as per GLEP 34 [#glep-34]_. Other languages ...")
134
135 > A news item's content will consist of an RFC 822 [#rfc-822]_ style header
136 > followed by the main body of the message as plain text. This GLEP defines
137 > various optional and mandatory headers. Future GLEPs may propose new headers --
138 > tools handling these news items must ignore any unrecognised header.
139
140 Ah, a clear sight on the future. Good! (Also from the perspective of
141 the paper.)
142
143 > ``Author:``
144 > Author's name and email address, in the form ``Real Name <email@address>``.
145 > Mandatory, multiple author fields may be specified if appropriate.
146
147 Separated how? Using commas, semicolons, spaces or whatever?
148
149 > ``Posted:``
150 > Date of posting, in ``dd-mmm-yyyy`` format (e.g. 14-Aug-2001). UTC time in
151 > ``hh-mm-ss +0000`` format may also be included. This field is mandatory.
152
153 Consider stressing the requirement for UTC time by stating it in a
154 separate sentence.
155
156 > ``Version:``
157 > Initially 1. Incremented every time a non-trivial change is made. Changes
158 > which require a re-read of the news item should instead use a new news item
159 > file.
160
161 Perhaps you want to track trivial changes as well in the minor, in order
162 to be able to quickly see a change was made, and prevent people from
163 considering a non-trivial change as trivial. Maybe you should
164 explicitly state this field is optional and why. I could think of some
165 reasons why this header should be mandatory, but perhaps you add a
166 completely different value to the header than I do now.
167
168 > The following headers are used for filtering. If none of these headers are
169 > specified, the news item is displayed for all users. Otherwise, the news item is
170 > displayed if *at least one* header matches.
171
172 From a completeness perspective, it would perhaps be a option to
173 include a special header that contains a boolean expression that
174 resolves to true if the message is relevant to the user, and false
175 otherwise. This would allow AND and NOT to be included instead of only
176 OR semantics.
177 In any case, elaborate on why supporting only OR was chosen and why
178 other (probably investigated) options were discarded (and hence make my
179 statement above unnecessary).
180
181 > The text body should be wrapped at 72 characters. No fancy formatting or tab
182 > characters should be used -- the news item may be being displayed directly to a
183 > terminal. Paragraphs should be separated by two blank lines.
184
185 Elaborate some more on "No fancy formatting or tab characters". People
186 might want/like to include a bulleted/numbered list or insert a small
187 (shell) code example. Also make some note on the average length (number
188 of paragraphs) and perhaps a predefined structure (ie.:
189 introduction/abstract, impact, solutions/actions, links/more-information)
190
191 > YourSQL databases created using YourSQL version 4.0 are incompatible
192 > with YourSQL version 4.1 or later. There is no reliable way to
193 > automate the database format conversion, so action from the system
194 > administrator is required before an upgrade can take place.
195 >
196 > Please see the Gentoo YourSQL Upgrade Guide for instructions:
197 >
198 > http://www.gentoo.org/doc/en/yoursql-upgrading.xml
199
200 Note that this indenting of the URL can be considered 'fancy
201 formatting'. Hence there is a clear need to define the term.
202
203 >
204 > Also see the official YourSQL documentation:
205 >
206 > http://dev.yoursql.com/doc/refman/4.1/en/upgrading-from-4-0.html
207 >
208 > After upgrading, you should also recompile any packages which link
209 > against YourSQL:
210 >
211 > revdep-rebuild --library=libyoursqlclient.so.12
212 >
213 > The revdep-rebuild tool is provided by app-portage/gentoolkit.
214
215 Consider including a new paragraph in the example just to show your
216 proposed structure.
217
218 > Thus, all proposed news items must be posted to the ``gentoo-dev`` or
219 > ``gentoo-core`` mailing list, and ``Cc:``\ed to ``pr@g.o`` at least 72
220 > hours before being committed (exceptions may be made in exceptional
221 > circumstances). Any complaints regarding wording or clarity **must** be
222 > addressed before the news item goes live.
223
224 The idea is great, but perhaps the current docs teams should deal with
225 this, as they are currently responsible for the webpages as well?
226 In any case:
227 - 72 hours is a lot (is there a way to shorten it when everything is
228 there?)
229 - consider using either -dev or -core not both in an "OR" relation,
230 clarity if good for everyone.
231 - what if noone feels like commenting on the submission?
232 - how do you know a certain dev is a competent English speaker?
233 - when do you know that it has been read, approved?
234 This raises many questions. I suggest to define the process a bit more
235 and include a scheme that deals with this kind of concerns to actually
236 make it water (and fool) proof.
237
238 > News items must only be for **important** changes that may cause serious upgrade
239 > or compatibility problems. Ordinary upgrade messages and non-critical news items
240 > should remain in ``einfo`` notices. The importance of the message to its
241 > intended audience should be justified with the proposal.
242
243 Somehow there needs to be a voting/selection process to figure out
244 whether something is **important** or not. Be aware that there are bugs
245 that indicate that users would like to see all einfo messages being
246 delivered to them in some way. It might be confusing to the user what
247 is the difference (and for me as well... when is something considered
248 important?). Try to define what you think is important, or maybe give
249 some well explanatory examples and what the advantage is over einfo. To
250 comment on your YourSQL example: perhaps YourSQL just gives an error
251 about an incompatible database when starting it, and points itself to a
252 migration site. One could consider for this reason a message on it not
253 important, as nothing gets unrepairable broken. Linking back to your
254 'preemptive' requirement: define damage and broken.
255
256 > The unread news message will also be displayed immediately after an
257 > ``emerge sync``.
258
259 Include a note on configurability, i.e. disabling such behaviour for
260 users that don't like it. Elaborating on other ways to inform the
261 administrator (ie. via email) would be great too. Consider automated
262 installs, end-user/desktop installs (basically everything from big to
263 small) such that for each situation the information being supplied can
264 be pushed to the admin in the way that is desirable (for him/her).
265
266 > Portage may also warn of unread news items using, for example, a red flashy
267 > before actions such as merging a package.
268 >
269 > Portage must keep track of news items which have already been installed to avoid
270 > repeatedly reinstalling a deleted news item.
271 >
272 > Users who really don't care about news items can use ``rsync_excludes`` to
273 > filter out the ``news/`` directory.
274
275 Does portage only 'warn' and still continue, or does it completely stop
276 when an unread news item is found for a package that is to be upgraded?
277 In the first case, the 'preemptive' requirement is being violated, in
278 the latter, the option for a '--force' or something must be discussed.
279 (Users with multiple systems might already know the message, or users
280 might not be interested in it since they don't run the application in
281 production.)
282
283 A concluding note on this Section is that I have the impression that
284 only one use-scenario has been dealt with. Both this scenario is not
285 described, as well as that this scenario doesn't reflect 99.9% of our
286 user base. Many alternative opinions will stem from the fact that
287 different people envision different scenarios. I think that elaborating
288 on a number of representative (need not to be most popular) scenarios
289 and how the proposed setup functions in there is good to get a grip on
290 the many different demands of users. I could help to define a scenario
291 for a larger scale more or less automated/cronned install.
292
293 > News Item Clients
294 > -----------------
295 >
296 > Once a news item is 'installed', third party tools (or a traditional Unix pager
297 > and ``rm``) can be used to display and view the news files. An ``eselect``
298 > [#eselect]_ module shall be created as the 'suggested' display tool; other
299 > display tools (for example, a news to email forwarder, which would be ideal for
300 > users who sync on a cron) are left as options for those who desire them -- the
301 > simple file format make this relatively simple.
302
303 This Section is too short in this form to live on its own. It should
304 either be extended or merged with text above where I made a comment on
305 the details. Perhaps you can elaborate on how to implement such
306 forwarders, especially in the light of my comments on the previous Section.
307
308 > News Item Removal
309 > -----------------
310 >
311 > News items can be removed (by removing the news file from the main tree) when
312 > they are no longer relevant, if they are made obsolete by a future news item or
313 > after a long period of time. This is the same as the method used for ``updates``
314 > entries.
315
316 This sounds much alike what 'mail' used to (and still) does. It has the
317 ability to see which messages are waiting, select them to read with a
318 pager and delete them. Make sure you explain why this is better, and
319 why you 'seemingly' reinvent the wheel here. I think I can think of
320 some reasons, but I think you need to make it clear.
321
322 > Integration with Existing Systems
323 > =================================
324 >
325 > It would be trivial to convert these news items into the format used for news
326 > items on the Gentoo website or posts for the ``gentoo-announce`` mailing list.
327
328 Yes, and make it a requirement that all news messages get posted
329 somewhere on public channels. Some admins really like to see all news
330 items, so your GLEP should cover the possibility for that, I think.
331 Somewhat related to my suggestion for using scenarios, this also implies
332 that there will be users that want to turn this off completely, as such
333 doing the right rsync_exclude should be documented somewhere.
334
335
336
337 I hope I have not created a new opportunity for large flame wars. I
338 tried being quite constructive, and reviewed the GLEP as a scientific
339 paper. Given the fact I had a lot to add, indicates for me there are a
340 lot of questions to be asked regarding this GLEP. Many of those
341 questions can simply be answered by providing the underlying rationales
342 and background information that is not made explicit. I hope you can do
343 something useful with my comments. If you don't like them, ignore them
344 and throw them away. If you want to use them, feel free to do so.
345
346
347 --
348 Fabian Groffen
349 Gentoo for Mac OS X Project -- Interim Lead
350 --
351 gentoo-dev@g.o mailing list

Replies