DevHeads.net

Release criteria proposal: installing / removing software

Hi, folks!

It's been noted a few times before that we have a release criterion
that requires *updating* packages (or, these days, 'software', to cover
things like modules) to work...but we don't have criteria covering
other basic software management tasks, notably installing and removing.
There is a possible justification for this: so long as update works,
bugs in installation and removal can be fixed with updates. But really,
it seems reasonable to me that we should require basic
installation/removal of packages (and modules, and anything else we may
choose to consider release critical now or in future, e.g. flatpaks,
Shell extensions...) to work on release.

So, I'm proposing we modify the existing Basic and Beta criteria that
cover only updates, to also cover installation and removal. I like this
a bit more than adding separate criteria as the footnotes would be very
similar, and combining allows the footnotes to be shared.

So, the Basic criterion would change from:

"The installed system must be able to download and install appropriate
updates with the default console tool for the relevant update type
(e.g. default console package manager)."

to:

"The installed system must be able to install, remove, and install
appropriate updates for software with the default console tool for the
relevant software type (e.g. default console package manager). This
includes downloading of packages to be installed/updated."

the Beta criterion would similarly change from:

"The installed system must be able to download and install appropriate
updates with the default tool for the relevant update type in all
release-blocking desktops (e.g. default graphical package manager)."

to:

"The installed system must be able to install, remove, and install
appropriate updates for software with the default tool for the relevant
update type in all release-blocking desktops (e.g. default graphical
package manager). This includes downloading of packages to be
installed/updated."

the footnotes would be tweaked to refer more generically to 'software'
and stuff instead of 'updates', just kinda logical changes to reflect
the broadened criterion; I can go into detail on that if anyone wants.

Obviously if the criterion change is agreed upon, we will add test
cases to the test matrices.

Thoughts, comments, suggestions, acks and nacks? Thanks!

Comments

Re: Release criteria proposal: installing / removing software

By Matthew Miller at 06/12/2018 - 21:51

On Tue, Jun 12, 2018 at 11:35:21AM -0700, Adam Williamson wrote:
+1 in theory. The wording is a bit awkward, though -- it sounds like
"updates" are things we must be able to install, remove, and install
again. Why not just:

"The installed system must be able to install, remove, and update
software with the default console tool for the relevant software type
(e.g. default console package manager). This includes downloading of
packages to be installed/updated."

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 06/13/2018 - 12:56

On Tue, 2018-06-12 at 21:51 -0400, Matthew Miller wrote:
We already have a thread about exactly this wording problem. :P The
reason I didn't go for that wording is that it loses the 'appropriate'
concept, which is important and was specifically included. It appears
that people are having trouble parsing the intended sense of the
wording I chose - there are three actions, "install", "remove" and
"install appropriate updates for", all of which affect "software" - so
I'm trying to think of another way to put it.

Re: Release criteria proposal: installing / removing software

By Matthew Miller at 06/14/2018 - 11:48

On Wed, Jun 13, 2018 at 09:56:07AM -0700, Adam Williamson wrote:
Don't we also want appropriate software installed and removed?

"The installed system must be able to appropriately install, remove,
and updates software with ..." ?

That just seems like filler — "appropriate" seems like it's already
understood.

Or do you mean "update, if an update is available"? Or "update to the
latest one"? Or "update and not screw things up"? What _is_
appropriate, anyway?

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 06/14/2018 - 18:47

On Thu, 2018-06-14 at 11:48 -0400, Matthew Miller wrote:
It doesn't really...apply in that case. It's about the selection of
appropriate updates when updating.

There's a footnote explaining that already:

"Appropriate means that the relevant update mechanism(s) for any given
deployment must apply the correct updates to the correct components,
and not apply incorrect updates. To give a specific example of why this
wording is included, there was previously a case where newer package
versions from modules were being installed as 'updates' to systems
which did not have those modules installed, only the package with the
same name from the non-modular system repositories. This would be an
example of 'inappropriate' updating that violated this criterion."

as explained there, we actually *specifically* added this wording
because there was a bug with packages from modules being selected as
updates when the modules they were from weren't installed, and we felt
it was best to have the criterion explicitly cover this kind of
situation.

Re: Release criteria proposal: installing / removing software

By Matthew Miller at 06/14/2018 - 19:25

On Thu, Jun 14, 2018 at 03:47:25PM -0700, Adam Williamson wrote:
Ah, that clears it up. Thanks :)

Hmmm; this *could* apply to install, too -- for example, installing a
package from a module that's not supposed to be enabled, or failing to
from one that is.

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 06/14/2018 - 20:31

On Thu, 2018-06-14 at 19:25 -0400, Matthew Miller wrote:
Hum, that's a decent point. /me continues to cogitate

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 07/16/2018 - 20:32

On Thu, 2018-06-14 at 17:31 -0700, Adam Williamson wrote:
So, having cogitated, how about this wording?

Basic:

"The installed system must be able appropriately to install, remove,
and update software with the default console tool for the relevant
software type (e.g. default console package manager). This includes
downloading of packages to be installed/updated."

Beta:

"The installed system must be able appropriately to install, remove,
and update software with the default tool for the relevant software
type in all release-blocking desktops (e.g. default graphical package
manager). This includes downloading of packages to be
installed/updated."

Grammatically, this means the "appropriately" applies to all three
actions ("install, remove and update").

The footnote would read:

"Appropriately?

''Appropriately'' means that the relevant software mechanism(s) for any
given deployment must choose the software to be installed, updated or
removed in ways that are broadly in line with the user's intent and
typical expectations, and the project's intent as to which software
should be provided from which repositories etc.

To give a specific example of why this wording is included, there was
previously a case where newer package versions from modules were being
installed as 'updates' to systems which did not have those modules
installed, only the package with the same name from the non-modular
system repositories. This would be an example of 'inappropriate'
updating that violated this criterion. Other examples might include
installing packages from the wrong module stream, or failing to include
available updates from an enabled official repository."

Does that sound good to everyone? Thanks!

Re: Release criteria proposal: installing / removing software

By Nathanael D. Noblet at 07/17/2018 - 17:09

On Mon, 2018-07-16 at 17:32 -0700, Adam Williamson wrote:
Just a small typo/grammar correction I think.

"The installed system must be able to appropriately install, remove,
and update.."

just moved the 'to' infront of appropriately.. Apologies if that's a
dumb thing to nit-pick. Otherwise looks good to me.

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 07/17/2018 - 17:48

On Tue, 2018-07-17 at 15:09 -0600, Nathanael D. Noblet wrote:
This is the old English grammatical chestnut known as the "split
infinitive" (or rather, in the case of my draft, the infinitive is
intentionally *not* split).

Both forms are used, and mean the same. The one I chose is sometimes
considered the more 'classically' correct, and some stick-in-the-muds
consider your form to be incorrect. Wikipedia has quite a good article
on it:

<a href="https://en.wikipedia.org/wiki/Split_infinitive" title="https://en.wikipedia.org/wiki/Split_infinitive">https://en.wikipedia.org/wiki/Split_infinitive</a>

I instinctively like the non-split form here because, to me, it
emphasizes more clearly that "appropriately" applies to all three
actions.

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 07/17/2018 - 17:53

On Tue, 2018-07-17 at 14:48 -0700, Adam Williamson wrote:
To be clearer here, consider these options:

"...to appropriately install, remove and update..."
"...to install, remove and update appropriately..."
"...appropriately to install, remove and update..."

To me, it's at least possible that someone might read the first as if
the "appropriately" applies only to the action "install", and the
second as if the "appropriately" applies only to the action "update".
The third, however, can't really be understood in any way *other* than
with "appropriately" applying to all three actions.

Re: Release criteria proposal: installing / removing software

By Chris Murphy at 07/17/2018 - 23:55

On Tue, Jul 17, 2018 at 3:53 PM, Adam Williamson
< ... at fedoraproject dot org> wrote:
Use a colon.

to appropriately: install, remove, and update...

Unambiguous.

Re: Release criteria proposal: installing / removing software

By drago01 at 07/18/2018 - 02:49

Just drop "appropriately" and replace it with a footnote. Then there is no
need for all of this discussion and the text is easier to read (also
installing the correct update falls into common sense hence for most people
it will be clear even without reading the footnote).

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 07/18/2018 - 15:51

On Wed, 2018-07-18 at 08:49 +0200, drago01 wrote:
There already is a footnote; to me the footnote reads better if it has
a word in the text to key off.

To be honest I don't think anyone's actually pointed out any real
*problem* with the revised draft yet and I'm inclined to just go with
it, after a few more days for substantive feedback.

Re: Release criteria proposal: installing / removing software

By Jeff Johnson at 07/18/2018 - 10:56

There is also historical precedent in open source software for using the terms "recommended" and "suggested" rather than "appropriate".

Installing/upgrading licensed software is never appropriate.

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 07/18/2018 - 15:50

On Wed, 2018-07-18 at 14:56 +0000, Jeff Johnson wrote:
Those have specific meanings in RPM terms which are not at all what the
release criterion is about. It is not talking about soft dependencies
or hints.

Huh?

This discussion seems to have taken a bizarre turn, to be honest.
Unless there's some sort of massive outcry I'm kinda inclined to ignore
the extremely nitpicky wordsmithing debates going on and just go with
the revised draft I promised; it doesn't seem like anyone has really
got any substantive issue with it.

Re: Release criteria proposal: installing / removing software

By Alexander Bokovoy at 07/17/2018 - 09:55

On ma, 16 heinä 2018, Adam Williamson wrote:

Re: Release criteria proposal: installing / removing software

By Jeff Johnson at 07/17/2018 - 12:39

Try "expected" rather than "appropriately"

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 07/17/2018 - 13:05

On Tue, 2018-07-17 at 16:39 +0000, Jeff Johnson wrote:
I think I prefer "appropriately". "Expected" only begs the question
"what does that mean?" even more: expected by whom? (It also doesn't
fit into the current grammatical structure of the draft, unless you
write "Expectedly to install, update and remove...", which is hideous
and no-one will understand it).

Re: Release criteria proposal: installing / removing software

By Chris Murphy at 07/17/2018 - 13:33

On Tue, Jul 17, 2018 at 11:05 AM, Adam Williamson
< ... at fedoraproject dot org> wrote:

Expect is a word of probability. Appropriate is about ownership and
that which is proper.

One possible "expectation" is *shit should work for most people most
of the time, users aren't all freaking out, while also not leaving a
significant minority completely stranded*

A more refined "expectation" is QA takes the lead on determining
whether install/update/remove is working appropriately, taking into
consideration all the limitations of Fedora infrastructure as well as
reasonable user expectations.

"Appropriate means that the relevant update mechanism(s) for any given
deployment must apply the correct updates to the correct components,
and not apply incorrect updates. To give a specific example of why this
wording is included, there was previously a case where newer package
versions from modules were being installed as 'updates' to systems
which did not have those modules installed, only the package with the
same name from the non-modular system repositories. This would be an
example of 'inappropriate' updating that violated this criterion."

"We expect that a given deployment will apply correct updates to
components, and not apply incorrect updates."

I think you can make expect or appropriate work equally well, the
openendedness at first glance is really on "what do correct and
incorrect" mean? But that's probably something that logic dictates the
outcome of in straightforward fashion once you start doing the autopsy
on the problem.

Re: Release criteria proposal: installing / removing software

By stan at 06/13/2018 - 15:56

On Wed, 13 Jun 2018 09:56:07 -0700

Maybe:

"The installed system must be able to install software, remove software,
and install appropriate software updates with the default console tool
for the relevant software type (e.g. default console package manager).
This includes downloading of packages to be installed/updated."

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 06/13/2018 - 16:15

On Wed, 2018-06-13 at 12:56 -0700, stan wrote:
I like that! Let's go with it. Thanks.

Re: Release criteria proposal: installing / removing software

By =?UTF-8?B?TWlyb... at 06/12/2018 - 14:55

On 12.6.2018 20:35, Adam Williamson wrote:
Install, remove and update?

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 06/12/2018 - 15:03

On Tue, 2018-06-12 at 20:55 +0200, Miro Hrončok wrote:
That would be simpler but unfortunately loses the "appropriate"
wording, which is important. We could make it "appropriately update"
but that reads kinda weird to me.

Re: Release criteria proposal: installing / removing software

By Zbigniew =?utf-... at 06/12/2018 - 18:02

On Tue, Jun 12, 2018 at 12:03:51PM -0700, Adam Williamson wrote:
Miro has a point, this sentence doesn't make sense as is.

In "The installed system must be able to install, remove, and install
appropriate updates for software ..." the subject is "updates", so
both "install" and "remove" apply to it. Another noun must be inserted.

Something like "The installed system must be able to install and
remove <packages>, and install appropriate updates for software ...",
except that <packages> (as you wrote) is not generic enough.

So maybe something like
"The installed system must be able to install, remove, and update the
software with the default console tool for the relevant software type
(e.g. default console package manager). The downloading of any
packages/software must work and the appropriate updates must be used."

Zbyszek

Re: Release criteria proposal: installing / removing software

By Adam Williamson at 06/12/2018 - 18:23

On Tue, 2018-06-12 at 22:02 +0000, Zbigniew Jędrzejewski-Szmek wrote:
No, it isn't. The sense is:

"The installed system must be able to:

1) install
2) remove
3) install appropriate updates for

software..."

If that isn't sufficiently clear, though, I'll try to reword it.