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 |