(I'm not a Coreboot dev/maintainer, so apologies for commenting from the
peanut gallery...)


On Mon, Apr 18, 2022 at 04:32:36AM +0200, Martin Roth wrote:
> [...]
> 2) Decide on a set of criteria that we can use to evaluate whether or
> not things should be removed from the master branch and maintained on
> a release branch.

Makes sense.


> Currently, the only reason we have specified that a platform will be
> moved to a release branch is if it's hindering progress.  Basically if
> it's not using an API we want to mark a required, or using code that
> is being deprecated.
> 
> If hindering progress is the only reason that something should ever be
> removed from the master branch, I'm fine with that.  Let's decide that
> and document it so we don't have to have this discussion in the
> future.

Surely there will sometimes be platforms/chips that, for good reason,
the community wants to keep in master - even if this would mean rewrites
for those platforms/chips re the two matters you mentioned above:

a.  not using APIs that future versions of coreboot will require;

b.  using code that is being deprecated?


Such "good reasons" could include that the plaform/chip:

1.  is in widespread use with coreboot, even if long out of production
    (e.g. certain server boards or Thinkpad models); or

2.  is targeted by related projects (e.g. Heads) that coreboot
    developers would prefer to avoid unnecessarily inconveniencing; or

3.  has active coreboot testers/maintainers able to integrate relevant
    updates, and is passing all significant CI tests.


> Other options we could look at:
>
> - A platform has not been sold in X years.
>
> - A chip has not been produced for X years.

I can see the appeal of these criteria: they are easy to define.
However, they are probably not wise criteria, as they may conflict with
one or more of the "good reasons" above, especially reason 1.


> - A platform has not been tested in X years.
>
> - A platform hasn't had an active maintainer for X years.  (Maybe the
>   maintainer should be asked to test a platform as well?)

These seem much better criteria.

To make them easier to apply, should coreboot comprehensively track, for
platforms/chips (roughly as Debian does for packages):

-   the current maintainer(s) for that platform/chip,

-   the current tester(s) for that platform/chip,

-   when that platform/chip was last tested, and

-   what the test results were?

I think coreboot already tracks some of this data via
https://lava.9esec.io or https://qa.coreboot.org/ - I'm not certain.

That being so, I propose some draft policy wording (please
change/improve...):

    "For any given platform or chip that has ever been targeted by the
    coreboot project:

    -   For each coreboot "version" (point release, master, or
        hardware-specific branch):

        -   if the platform/chip has been tested on that version, but
            the test was unsuccessful, the platform/chip shall be
            labelled *broken* re that version; else

        -   if the test was successful, the platform/chip shall be
            labelled *working* re that version; else

        -   the platform/chip shall be labelled *untested* re that
            version.

    -   If the platform/chip has known security vulnerabilities on that
        version, the shall be labelled *vulnerable* re that version.

    -   If the platform/chip has a person/team assigned to test/maintain
        it re master, it shall be labelled *maintained*, unless it has
        been *vulnerable*, *broken*, or *untested* re master for at
        least 6 months in which case it shall be labelled
        *unmaintained*,

    -   If a platform/chip has been labelled *unmaintained* for at least
        6 months, a branch shall be created for it, from the last
        coreboot point-release for which it was tested and found to be
        working.  Such a platform/chip shall be labelled *relegated*.

    -   A person/team who merges subsequent updates from master into
        such a branch, such that the branch becomes acceptable to the
        gatekeepers of master for merging back into master, and who also
        successfully tests the relegated platform/chip on the resulting
        codebase, and who volunteers to maintain that platform/chip for
        the foreseeable future, may become that platform/chip's
        maintainer, and upon the relevant changes being merged into
        master, the platform/chip shall no longer be labelled
        *relegated* but instead shall be labelled *tested* and
        *maintained*."


> Thanks everyone [...]  I'm not trying to argue with anyone, just
> looking to get an actual decision of some sort out of this thread.

Ditto!

Sam
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to