On Fri, Oct 04, 2019 at 10:57:39AM -0400, Stephen Gallagher wrote:
[snip]
> * The state `dep_enabled` would be set whenever a stream becomes
> enabled because some other module stream depended on it. This state
> must be entered only if the previous state was `default` or
> `available`. (We don't want `enabled` or `disabled` streams being able
> to transition to this state.)
> 
> * The state `default_enabled` would be set whenever a stream becomes
> enabled because a transaction pulled in a package from a default
> stream, causing it to be enabled. This state must only be entered if
> the previous state was `default` or `dep_enabled`. We don't want
> `enabled` or `disabled` to be able to transition to `default_enabled`.
> If a user requests installation of a package provided by a stream
> currently in the `dep_enabled` state, that stream should transition to
> the `default_enabled` state (meaning that now the user would expect it
> to be treated the same as any other default-enabled stream).
> 
> * When running `dnf update`, if a module stream's dependency on
> another module changes to another stream, the transaction should cause
> that new stream to be enabled (replacing the current stream) if it is
> in the `dep_enabled` state.
> When running `dnf update` or `dnf system-upgrade`, if the default
> stream for a module installed on the system changes and the module's
> current state is `default_enabled`, then the transaction should cause
> the new default stream to be enabled.

Hmmm, maybe I'm not thinking straight today, but what happens when you
cross the streams? Correct me if I'm wrong in the following scenario:

Release N:
  - foo: available streams: 1.0, 2.0, default: 2.0
  - bar: depends on foo 1.0
  - user installs foo and bar, gets bar and both foo 1.0
    (default_enabled) and foo 2.0 (dep_enabled)

Release N + 1: (cross the streams)
  - bar: depends on foo 2.0 now
  - foo 1.0 gets uninstalled(?), foo 2.0... what happens to foo 2.0?
    does it move to default_enabled or does it remain in dep_enabled?
    or does it move to "enabled"?

Release N + 2: (the streams diverge again)
  - foo: 1.0 is removed, 3.0 appears and is made default
  - what happens on the user's machine? foo 2.0 needs to remain
    installed, since bar explicitly depends on it, but will there also
    be a foo 3.0 module installed (since the user requested the default
    way back when, still in release N)?

Of course, it is completely possible that this case is indeed handled in
the proposal and I am the one at fault for not parsing it properly.
Anyway, thanks to you all for your work on this!

G'luck,
Peter

-- 
Peter Pentchev  roam@{ringlet.net,debian.org,FreeBSD.org} p...@storpool.com
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13

Attachment: signature.asc
Description: PGP signature

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to