Re: [Modularity] A proposal for stream naming

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

 



On Thu, Jun 29, 2017 at 03:26:50PM +0200, Petr Šabata wrote:
> > * Modules which correspond primarily to a single application or
> >   versioned software stack (e.g. Apache HTTP 2.4 or Node.js v8) MUST
> >   use a stream label corresponding to the major version of that software
> >   (e.g. 2.4 or 8)
> So if I'm reading this correctly, you're proposing Fedora should
> forbid packagers from creating alternative streams for the same
> major release of such software?  I can imagine different variants
> of httpd 2.4, built with different compile time options, bundling
> different components, having different module metadata and such.

I think alternate versions are okay, but those should come after a
primary version -- there should be *at least* this and then there could
be others.

In thinking a little further, I think there are three basic bits of
metadata that need to be easily visible per-stream. Whether it goes
into the stream label or into other metadata is an implementation
detail. They are:

*  major identifier (in the case of modules with a primary piece of 
     software, probably the major version of that software)
* lifecycle / eol identifier
* extra tags describing alternate options

So, for example:


    nodejs 8:e1912  (or maybe 8:e1912:main, but I don't like that)
    nodejs 8:e1806:turbocharged
    nodejs 8:e1912:lite
    httpd  24:stable
    httpd  26:latest
    httpd  24:e1812:spdypatches


 
> > * Such modules MAY additionally have a "latest" stream, which would be
> >   "rolling release" of the latest stable version (as opposed to master,
> >   which corresponds to rawhide and may be unstable).
> Sounds like the no-more-alphas Rawhide.  Such "latest" streams
> would drop major changes/rebases on the end users' systems.
> It makes sense to have this, especially for developers, but
> we should warn people that it's not the best choice for stable
> systems and that... it will eat their babies ;)

No, this should definitely not eat babies. (Even Rawhide doesn't do
that anymore. Usually.) And while automatic gating would be fine, it
wouldn't need to be.


> There are still some open questions regarding EOLs.
> 
> For instance:
> 
> Are they bound to the artifact or could that depend on the
> context?  Like "this module will go EOL next year for standard
> Fedora and nobody will care to make it work with the latest
> Platform but we'll still support it in the context of this LTS
> spin / derived distro / whatnot".

If this is a thing, modularity hasn't really succeeded.


> Can EOL be extended for already released artifacts and if so, do
> we need to issue an update to let users know through refreshing
> their metadata?

This is partly why I described EOL as "EOL no earlier than" (thanks to
Langdon). I think the best thing to do in the case of a long extension
would be to create a new branch/stream with the new EOL. That's part of
why I think modules need to carry their own succession information,
too. 

> Answers to these questions help us decide whether EOL metadata
> should be bundled with the module, inside modulemd in the
> repodata, or whether it belongs in an external system such
> as PDC.

Right. :)


> >   * A "latest" rolling stream (As above, this would be separate from
> >     "rawhide", as "latest stable", but could update frequently and
> >     arbitrarily.)
> By the way, should rawhide streams be called rawhide or would
> master be fine?  Stream names come directly from dist-git branch
> names but of course there could be a hardcoded exception in
> MBS that does s/master/rawhide/.

There's two big things here. First, it absolutely shouldn't be rawhide.
That's the same as having f26 or f27 branches: tied to a particular
base.

Second, though, if we have all the various different variants per
stream as you describe above, does it even make sense to _have_ a
master branch? Which variants would it be the master _for_? This might
suggest that long-lived and very distinct streams should actually have
a different _name_ and live in a different repo in dist-git, with
streams in the same repo required to be closely linked in some way.

I'm not sure I like that, though, and it seems very contrary to the
current design. I guess one option would be for master to automatically
correspond to "latest major version, rolling release", but that
seems not as helpful as being explicit. Maybe "master" should just
contain a readme describing the various branches.



> >   * One or more streams corresponding to "end of life no earlier than",
> >     in the format "YYMM". (Or "eolYYMM"? Or "eYYMM"? Or "uYYMM" for
> >     'until'? Or "fYYMM" for 'fedora' — which might make sense if we get
> >     to my dream of mixing and matching with CentOS modules....)
> See my EOL-related points above.  Plus this would be ugly :P

Uglier than a bunch of random names with no semantic relation? I'm not
so sure!

> > Additionally and for all of our sanity, I suggest:
> >   * Valid module end-of-life dates are always either June or December,
> >     corresponding to the Fedora schedule of early May / late October
> >     base releases. So, f1806 or f1812, but not f1810 or f1901.
> Sounds like a valid recommendation rather than a necessary rule.

I'm gonna argue for rule. As a user, a situation where modules are
arbitrarily EOLing every day seems nightmarish.

[And I'm going to reply to the second half of this in a separate
message.]


-- 
Matthew Miller
<mattdm@xxxxxxxxxxxxxxxxx>
Fedora Project Leader
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [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