Hi All,

Recently, we've been doing some work[1][2][3][4] regarding stable version
upgrades in OE. I'm sending this email to facilitate discussion and help us
reach a consensus before moving forward.

There are two main subtopics below, but please feel free to bring up any other
related topics.

Topic 1: how this will be used on stable branches

1a) Should patches be backported to released stable branches?

    According to Yocto release schedule[5], wrynose EOL is April 2030,
    scarthgap EOL is April 2028. Personally, I'd prefer to see wrynose
    include these changes.

    @Yoann @Anju what are your thoughts on this?

    Please note that future changes for recipes like these may be coming:
    https://lists.openembedded.org/g/openembedded-core/message/237197
    https://lists.openembedded.org/g/openembedded-core/message/237201

    The criteria for adding such settings will follow the consensus we reach
    in Topic 2.

1b) Should part of AUH stable upgrades be done by humans or by a robot?

    For successful AUH stable version upgrades, the chance of regression is
    low. This makes it feasible for a robot to automatically send out AUH
    upgrades for stable versions. After the patch series passes OEQA, it
    could be merged. Failed upgrades could then be handled by people
    interested in upgraing those recipes.

    Personally, I lean toward having humans handle these upgrades. In my
    opinion, the action of sending out an upgrade patch is also a promise to
    fix any further problems or regressions. I think we'll have a problem of
    people duplicating some work though.

Topic 2: determine the criteria for OE stable upgrades

2a) What is a stable version upgrade in OE

    I recently learnt that OE's policy for stable version upgrades is
    somewhat different from other distros. As I understand it, the policy
    allows bug-fix-only upgrades and prohibits new feature, even if they're
    backward compatible. If my understanding is incorrect, please correct me.

2b) Maintainers can allow exceptions

    Layer maintainers/stable branch maintainers can allow exceptions to the
    above "bug-fix-only" policy. A typical example is scarthgap openssl
    upgrade (3.2.6 -> 3.5.5). Again, please correct me if I've misunderstood.

2c) Criteria for setting UPSTREAM_STABLE_RELEASE_REGEX

    Setting this variable for a recipe means we can be sure that some certain
    upgrades are stable version upgrades under OE's criteria. AUH will then
    upgrade recipes with this variable set for stable releases.

    Note: This does not mean recipes without this variable cannot be upgraded
    for stable releases. They simply won't be picked up by AUH.

    Alex suggested looking at upstream repos' stable branches as a criteria
    to determine if we can set this variable for a recipe. Examples:
    https://lists.openembedded.org/g/openembedded-core/message/237200
    https://lists.openembedded.org/g/openembedded-core/message/237198

    I'd like to propose the following standard:

    1. Upstream stable branches exist

       If a recipe's upstream repo has stable branches named with a stable
       version component, it should be considered reliable criteira for
       stable version upgrades, and we can set this variable for it.
       For example, util-linux's version is 2.41.3. There are three parts in
       the version. And util-linux has branches like origin/stable/v2.41.
       There are two parts (2.41) in the branch. In this case, we can
       confidently set UPSTREAM_STABLE_RELEASE_REGEX for it.

    2. Upstream maintainer confirmation

       If the upstream project's maintainer confirms that a bump in some part
       of the version is bug fix only, we can set this variable.

    3. Clear historical or common-sense evidence

       If a project's change history shows clearly that some kind of version
       bump is bug fix only, or it's just common sense that some kind of
       version bump is bug fix only, then we can set this variable for the
       recipe.

       kmod and openssh are two such examples:
       https://lists.openembedded.org/g/openembedded-core/message/237199
       https://lists.openembedded.org/g/openembedded-core/message/237201

That's all from me for now. I look forward to our discussion and hope we can
reach a consensus.

[1] oe-core changes: 
https://lists.openembedded.org/g/openembedded-core/message/237195
[2] bitbake changes: 
https://lists.openembedded.org/g/bitbake-devel/message/19501
[3] devtool changelog change: 
https://lists.openembedded.org/g/openembedded-core/message/237247
[4] AUH change: https://lists.yoctoproject.org/g/yocto-patches/message/3930
[5] Yocto Release Schedule: https://wiki.yoctoproject.org/wiki/Releases

Best regards,
Qi
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#2356): 
https://lists.openembedded.org/g/openembedded-architecture/message/2356
Mute This Topic: https://lists.openembedded.org/mt/119437109/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-architecture/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

  • [Openembedded-architecture] ... Chen Qi via lists.openembedded.org

Reply via email to