On Tue, Apr 2, 2019 at 2:50 PM Stephen Gallagher <sgall...@redhat.com>
wrote:

> On Tue, Apr 2, 2019 at 3:36 AM Adam Samalik <asama...@redhat.com> wrote:
>
> > When a packager doesn't provide the YAML defaults file at all, I'd
> assume it could have been unintentional and notified them about that fact.
> However, I wouldn't prevent the module to get to the compose or anything —
> just let them know so they can decide.
> >
> > How DNF should behave? Considering there is no default stream nor
> default profile, I'd suggest the following command to fail with an
> appropriate error message:
> >
> > $ dnf module install modulename:stream
> >
> > I'd strongly encourage DNF to suggest how to move forward, notifying the
> user there is no default profile defined for this module and that they
> either need to specify one in the install command:
> >
> > $ dnf module install modulename:stream/profile
> >
> > ... or to enable the module in order to consume the packages directly by
> the following command:
> >
> > $ dnf module enable modulename:stream
> > $ dnf install packagename
> >
> > As Modularity is a new technology, I personally wouldn't be afraid of
> longer error messages — within reason of course — giving the user guidance.
> >
>
> Yeah, I think if no default object exists in the metadata, `dnf module
> install modulename:stream` should probably not install anything and
> instead prompt them to select a profile explicitly (ideally listing
> the available options or suggesting `dnf enable modulename:stream`).
>
> >>
> >>
> >>
> >> === A module has explicitly set one or more of its streams to have no
> >> default profiles ===
> >>
> >> This is a similar case to the above, except that a conscious choice
> >> was made by the module maintainer to say that this module has no
> >> reasonable default packages that could be selected. (For example, it
> >> could be a collection of popular libraries that extend a particular
> >> programming language, but there’s no obvious subset of them that makes
> >> sense to install. It may exist and have streams solely because it
> >> needs to be kept in sync with the interpreter version.)
> >>
> >> The open question is the same as the previous one: how should dnf
> >> module install handle this case? In this particular example, it might
> >> be more acceptable that it follows the enable fallback, since the
> >> maintainer selected the lack of a profile explicitly. However, having
> >> context-sensitive differences can be difficult for people to process.
> >
> >
> > I assume the difference here is that the packager has provided the YAML
> defaults file, but haven't specified a default profile as opposed to not
> providing that file at all?
> >
>
> No, this is "the packager has provided a YAML defaults file like:
>
> ```
> document: modulemd-defaults
> version: 1
> data:
>     modified: 201904020000
>     module: somemodule
>     stream: 1.0
>     profiles:
>         1.0: [ ]
> ```
>
> See that the '1.0' stream is listed as having an empty set of default
> profiles. Thus, a conscious decision has been made that no default
> makes sense for this stream. What do we do here?
>
> I'm leaning towards treating it like the above. DNF should provide a
> helpful error suggesting available profiles or `dnf enable
> module:stream`
>

Ah, got it!

Still strongly prefer consistent behaviour of this and the above — failing
and giving the user a guidance.


>
>
> > If that's true, I would strongly prefer consistency and fail on an
> install command without having a stream specified, and give the user
> guidance in an error message as above.
> >
> >>
> >>
> >>
> >> === A module has a profile that contains zero RPMs ===
> >>
> >> In this case, a profile definition has been made in the module
> >> metadata and it explicitly contains zero RPMs within it. Such an
> >> example might be for compatibility: the module previously provided a
> >> profile with that name that contained content, but it is no longer
> >> doing so. Retaining the name may have been done to allow existing
> >> scripts to avoid breaking. If we have a profile that contains zero
> >> packages, should it be an error if we attempt to install it? If not,
> >> what should the UX look like?
> >
> >
> > This seams as a strange, yet possible choice for the packager to make.
> >
> > I do not have a strong opinion on this one. I'd probably suggest to not
> be too clever and let them have that choice, and make the install command
> work without installing any RPMs, and possibly emit a warning to the user
> about the fact.
>
> Yeah, I'm leaning towards making a zero-package profile be a
> validation error in libmodulemd.
>

Actually, that sounds very reasonable.

>
>
> >
> >>
> >>
> >> [1]
> https://communityblog.fedoraproject.org/modularity-hackfest-march-2019/
> >> _______________________________________________
> >> devel mailing list -- devel@lists.fedoraproject.org
> >> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> >> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> >> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> >> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> >
> >
> >
> > --
> >
> > Adam Šamalík
> > ---------------------------
> > Senior Software Engineer
> > Red Hat
> > _______________________________________________
> > devel mailing list -- devel@lists.fedoraproject.org
> > To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> > Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
>


-- 

Adam Šamalík
---------------------------
Senior Software Engineer
Red Hat
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
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