#128 Discussion: naming common streams and profiles
Closed: Fixed 3 months ago by asamalik. Opened 4 months ago by asamalik.

I need an input on naming common streams and profiles so I can update the docs.

The way we name certain module streams and profiles is not consistent. For example, there are stream names such as latest, master, or stable used interchangeably, and it is not clear what they mean in each case. Sometimes it's a devel build, sometimes it tracks the latest stable, etc.

The same goes for profiles which are a way to define use-case based install groups for modules. There is the one named default which was originally a fallback for DNF, used when there was no default profile defined. But that's no longer true and in some cases this profile is not the default one which is quite confusing.

My goal is to identify common streams and profiles, define them clearly, and give each one name. That way we'll be able to clearly tell what is what.

Proposal

This has been already briefly discussed in a devel list thread. Based on that, I propose the following:

Streams:

  • rolling — For projects without a traditional versioning scheme, or to track the latest stable release.
  • dev — Development or experimental builds.

Profiles:

For profiles, we highly encourage using descriptive, use-case oriented names. However, there might be cases when we need to define some common names:

  • common — Either the most common or generic installation, especially when there is no clear descriptive name for it.

Edits:

2019-03-27: Changed stream name latest -> rolling for "projects without a traditional versioning scheme, or to track the latest stable release"


I'd appreciate your input @sgallagh @psabata @ngompa @langdon and many others. I'm also adding it to the Modularity Team meeting's agenda for tomorrow.

Metadata Update from @asamalik:
- Issue tagged with: Meeting

4 months ago

Is the idea to replace the existing naming guidelines or enhance them?

@langdon just to replace the "Unified stream names" and "Unified profile names" sections.

@langdon just to replace the "Unified stream names" and "Unified profile names" sections.

sorry, feeling a little daft. Accepting this proposal would result in this?

streams:

  • "stable" for special cases when the module doesn’t really conform to a versioning scheme (e.g. Python’s timezone database, pytz).
  • latest — For projects without a traditional versioning scheme, or to track the latest stable release.
  • dev — Development or experimental builds.

profiles:

  • "default" a default profile for a "standard" installation, should the module have something like this
  • "devel" for development-related profiles
  • "client" only the client component of a piece of software (e.g. database client)
  • "server" only the server component of a piece of software (e.g. database server)
  • "common" Either the most common or generic installation, especially when there is no clear descriptive name for it.

@langdon No, it would replace the content that's there now.

Oh, I am not a fan of that. I like changing it to be like my example above. Why would we lose the other examples?

@langdon Among other things, the "default" case is actively confusing and needs to go away.

I'm not entirely comfortable with picking or latest "for projects without a traditional versioning scheme, or to track the latest stable release", but I like stable even less than that. Both make promises that they cannot honor:

  • stable implies a stability guarantee that Fedora doesn't back up
  • latest implies a frequency of release that the packager may not be able to manage.

Another option is rolling, which I'm slightly leaning towards. It doesn't suggest stability like stable, but the general usage (e.g. in rolling release distros) is that it's new-and-mostly-stable. It doesn't carry a specific implication of a timeframe like latest does.

Maybe for such streams we should just call it fedora? Realistically, the behavior we would expect such streams to have is essentially the same as current non-modular streams. So perhaps we own that and run with it. Or the whimsical version: the trust-us stream.

Another option is rolling, which I'm slightly leaning towards. It doesn't suggest stability like stable, but the general usage (e.g. in rolling release distros) is that it's new-and-mostly-stable. It doesn't carry a specific implication of a timeframe like latest does.

I quite like rolling for "projects without a traditional versioning scheme, or to track the latest stable release" for the reasons you state.

Maybe for such streams we should just call it fedora? Realistically, the behavior we would expect such streams to have is essentially the same as current non-modular streams. So perhaps we own that and run with it. Or the whimsical version: the trust-us stream.

I'd say that anything coming from Fedora — a community — should be considered best effort. Personally, even names such as latest or stable I'd interpret as an intention and their promises delivered as best effort rather than guarantees. But I totally agree that they might (ok, will) cause confusion, so I'm not in favour of using them. The rolling proposal you suggest is the most accurate name I've seen so far.

This will be discussed at the Modularity Team meeting today:

  • Last call to make changes in the proposal before it goes to the docs
  • Ideas about how to align existing modules — renaming streams and profiles will potentially break things

I can agree to rolling name, but I definitely don't like common name for profile. What is it common for?

@ignatenkobrain The common profile name is a fallback in a situation when you have a module that you want to make installable by dnf module install ... — for which you need to have a profile — but you can't think of a descriptive, use-case oriented name that would fit. So it will be installable in some sort of most usual way. Like the nodejs module for example would have both an interpreter and the npm package manager in that profile which is the most common installation for it. Or a window manager could use it for the most common type of installation. etc.

But as I say in the proposal, we highly encourage using descriptive, use-case oriented names whenever possible. So a database could have a server and client profiles, etc.

Does that make sense now?

About the meeting yesterday: https://meetbot.fedoraproject.org/fedora-meeting-3/2019-04-02/modularity.2019-04-02-15.01.html

We agreed the name "dev" would be confusing in Fedora because a similar "devel" is used to indicate developer-oriented packages. That needs a new name.

We couldn't, however, agree that this proposal is good to go. Specifically, one member found having the two streams to be confusing, two other members agreed there is a need for the two streams, regardless of their name. Unfortunately, we had to stop the discussion for time constraints, and continue here in the ticket or next time.

agreed: There will be two streams named "rolling" for the user-focused builds and "unstable" for the preview/master/pre-release things, and this will be just a suggestion to the packagers, but using whatever is established upstream is also a good option. We'll not rename nor enforce renaming of anything, we'll leave it to packagers and mandate a good use of the description summary field for this purpose. +4 0 -0

Metadata Update from @asamalik:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

3 months ago

Just for the record, we'll tracking the progress here: https://tree.taiga.io/project/modularity-wg/epic/136

Whoever wants to send a PR is free to do so, otherwise I'll do that likely next week.

Login to comment on this ticket.

Metadata