[Modularity] A proposal for stream naming

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

 



Okay, so, I decided to get my hands dirty with this to make sure my
conceptual understanding stays in sync with the reality. And, it turns
out we really do need a system-tools module. So, I'm going to make
that. And in doing so, I ran into something I think is unresolved.

An early decision needed when making a module is the label for the
stream — that is, the dist-git branch it builds from. The convention is
that within a stream, interfaces remain the same (just as now we expect
big changes from release to release, not within f25 or f26). For
modules which correspond primarily to a single piece of software (and
associated stuff), it makes sense for the stream to match the major
version of the software: module nodejs might have streams for 8 and 10,
and httpd might have streams for 2.4 and 2.6.

In fact, let's make that a guideline. I believe the existing
https://fedoraproject.org/wiki/Module:Guidelines#Module_name.2C_update_stream_and_version
doesn't have any rules, so let's make one. Specifically:

* 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)

* 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).


So far, easy, I think. But what about modules like mine which are
collections of stuff? We could give them an arbitrary version and
increment that. Or, since this module will to follow the same 13-month
lifecycle of a base Fedora release, and make big changes in new streams
on the same cadence, it is tempting to use "f26", "f27" and so on. I
think, though, we want to avoid this, because it introduces a
conceptual overload that will become confusing and limiting.

On the other hand, I want a label that tells people what to expect.
Langdon suggested that expected EOL might be a good way to do this. So,
I propose a convention that modules which do not correspond to single
specific versioned software all follow this convention:

Each such "collection" module MUST have one or both of the following:

  * A "latest" rolling stream (As above, this would be separate from
    "rawhide", as "latest stable", but could update frequently and
    arbitrarily.)

  * 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....)

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.

I know there is some work on stream-to-stream upgrades in modularity;
that work could take advantage of this convention.

So, we'd have:

  httpd 2.4
  httpd 2.6
  nodejs 8
  nodejs 10
  sysadmin-tools latest
  sysadmin-tools f1812
  sysadmin-tools f1906

Does this make sense? Do you have improvements or entirely better
ideas?

I have an alternate idea too: "collection" type modules would
use arbitrary integer versions starting with 1 and increase only if the
content undergoes a major switch. ALL module streams would contain EOL
information after the version number separated by a ":". This EOL info
would be a date as above, or the string "latest", _or_ the string
"stable", indicating that no abi-breaking changes are expected ever and
that we basically have no known EOL.

With this alternate proposal, we'd have:

  httpd 2.4:stable
  httpd 2.6:latest (rolling as httpd 2.5 development leads to 2.6...)
  nodejs 8:f1912  (because that's upstream eol)
  nodejs 9:f1806  (if someone wants to do the work for a non-lts release)
  nodejs 10:f2106 (or maybe e2012)
  sysadmin-tools 1:latest
  sysadmin-tools 1:f1812
  sysadmin-tools 1:f1906


-- 
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