Re: [modularity] Bringing order to the confusing module stream and profile names

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 13, 2019 at 8:55 AM Adam Samalik <asamalik@xxxxxxxxxx> wrote:
>
> There are module streams named 'latest', 'stable', or 'master', but it's not quite clear what exactly those mean. Some modules even have the 'master' and the 'latest' streams at the same time which feels quite confusing.
>
> In a similar manner, there are various unclear profile names, too. Especially the one called 'default', not always being the default profile. I see a module having three profiles called 'default', 'client' and 'server', and the 'server' is the default. What does the one named 'default' represent, then?
>
> We need to bring some order into this.
>
> The Modularity team has published naming guidelines [1] covering some of the cases, but we've recognized it doesn't cover all the cases and that it needs an overall refresh.
>
> So let's start with identifying different cases that should have a unified name — let's say by Monday 18 March. And then, when we see all of them listed, we can name them in a clear and consistent manner.
>
> I've started a list below, let's add to it and discuss. Some of them might get merged into one, others might get split into more.
>
> == Streams
>
> A) Nightly developer builds
> B) The latest stable release, automatically switching to the next latest stable when available
> C) Stable rolling release for projects without a clear versioning scheme
> D) Devel/unstable rolling release for projects without a clear versioning scheme
>
> I'm leaving out the version-specific streams such as X or X.Y or even X.Y.Z, as well as the 'calver' ones as they work fine and we're not changing these.
>
> == Profiles

Something that we really need to make clear: Profiles are essentially
installation groups that are meant to be described by their use-case.
When users look at the available profiles, the ideal case is for the
name to indicate to them what problem it will solve.

I like to use Samba as an example here because, being a large and
complicated project, it would have meaningful profiles for a variety
of use-cases (the below are just examples):
* mount_support: Packages needed to support mounting SMB shares as local paths
* smb_client: Client tools like smbclient
* file_server: Packages needed to share local files to other systems
* domain_controller: Packages needed to run a Windows Domain Controller
* devel: Packages needed to build software that depends on Samba libraries.

>
> a) The most common installation if there is one

I think we ought to rephrase this. Generally speaking, since we can
have multiple profiles be the default (e.g. 'server' and 'client'), it
makes sense in most cases to  just separate the profiles by their
use-case. What we *do* need to do is agree on a name for those rare
cases where there's no obvious use-case name to describe them. For
example, with Node.js, you wouldn't really want to name the `nodejs`
package a "server". You *might* call it an "interpreter", but that's
limiting. So having a generic fallback name makes sense.

To date, we've used the profile name "default", but that was a
holdover from early in development when we thought that we'd have DNF
implement a fallback such that if the module had a profile with the
special-case name "default", we would use that if the user didn't
specify one at the command-line. DNF doesn't actually implement this
and we now have the much more flexible modulemd-defaults approach, so
the name "default" is both vestigial and confusing.

RHEL 8 Beta shipped with a number of modules using the profile name
"common" to satisfy this case, mostly to avoid the confusion inherent
in naming a profile "default".

> b) The client-side installation
> c) The server-side installation
> d) Installation providing a development environment such as -devel packages
>
>
> Any other common cases for streams or profiles that need a unified name? Let's try to find them all by Monday 18 March.
>
> Thanks,
> Adam
>
> [1] https://docs.fedoraproject.org/en-US/modularity/making-modules/naming-guidelines/
> --
>
> Adam Šamalík
> ---------------------------
> Senior Software Engineer
> Red Hat
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux