On Mon, Jul 31, 2017 at 10:59:58AM -0400, Matthew Miller wrote: > The thing that jumps out immediately is that respondents _really_ > prefer the "dnf module install httpd" syntax — 73% love or like that, > while 7% dislike or hate it. 21% love or like "dnf install httpd" for > installing > modules, while 46% dislike or hate it. And a full half of that dislike > is hate, or in other words more people completely hate it than like or > love it _combined_. The "dnf install @httpd" syntax gets just a little > bit less hate, but also less love.
I talked to Langdon, who is a strong advocate of the "bare" `dnf install httpd` syntax. His argument is that modules should be seen as if they are metapackages¹, and that it would be an odd extra step to have to effectively first enable the ability to install packages and _then_ install them. I'll let Langdon make his own argument, but basically akin to shipping Fedora split in different repos, some of them disabled. That's because with the other options, if you install Modular Fedora and don't have an enabled module containing the package you ask for, you get "that doesn't exist".² This did not convince me, exactly — but it did sway me in favor of the `dnf install @httpd` syntax. That's because I think these are really more like Super Comps Groups (with more and better metadata and multi-stream powers!) than they are like virtual packages, and I still think the bare syntax is confusing because behavior will be different based on something you might not know before you run the command. And we already _have_ the @whatever syntax for comps groups. So that's now my revised personal opinion. :) In fact, I think we should support a syntax like this: dnf install [rpm][@module[:stream]] so you could do dnf install rpm # install an rpm from any stream dnf install @module # enable default stream of a module # and also install default profile dnf install rpm@module # enable module, install rpm from it dnf install *@module # install all packages from module? dnf install @module:latest It'd also be lovely to have a way to pick a profile as well as a stream. I'm not sure of a great way to encode that. Maybe dnf install {minimal}@module with literal {}s? This could all be backed by "dnf module install" commands, just like we have "dnf install @compsgroup" and "dnf groupinstall compsgroup". --- 1. They're not literal RPM metapackages because 1) that would require possibly-incompatible changes to RPM metadata and 2) this gives us the flexibility to _possibly_ in the future integrate other packaging formats, like native packages or containers or whatever, without redesigning everything. 2. I guess DNF could learn to say "`foo` RPM isn't in any enabled modules, but maybe you meant 1) a module named `foo` or 2) to enable module `bar`, which contains RPM `foo`. -- Matthew Miller <mat...@fedoraproject.org> Fedora Project Leader _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org