Steve George <st...@futurile.net> writes:

> Hi all,
>
> After a good long discussion I'm moving GCD005 to Deliberation.
>
> The final version is below and can be found on Codeberg:
>
>     
> https://codeberg.org/guix/guix-consensus-documents/src/branch/main/005-regular-releases.md
>
> This means that team members have 14 days to send one of the following 
> replies on the patch-tracking entry of the GCD:
>
> - “I support”, meaning that one supports the proposal;
> - “I accept”, meaning that one consents to the implementation of the proposal;
> - “I disapprove”, meaning that one opposes the implementation of the proposal.
>
> The Issue is:
>
>     78...@debbugs.gnu.org
>
>     https://issues.guix.gnu.org/78332
>
> In terms of next steps beyond the GCD, Efraim has said he's willing to be the 
> next Release Manager, and both myself and Andreas have committed to help out 
> - I'm sure there will be others!
>
> Thanks so much!
>
> Steve / Futurile
> title: Regular and efficient releases
> id: 005
> status: submitted
> discussion: https://issues.guix.gnu.org/78332
> authors: Steve George
> sponsors: Andreas Enge, Ludovic Courtès, Efraim Flashner
> date-submitted: 2025-05-21
> SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-or-later
> ---
>
> # Summary
>
> Guix doesn't have a regular release cycle which has led to infrequent new
> releases.  Sporadic releases are detrimental for our users, contributors and
> the project.  This GCD proposes we implement an annual release cadence and
> simplify the release process to make releases easier.
>
> The project currently releases new versions of Guix on an ad hoc frequency.
> The 1.4.0 release happened in December 2022 [^1], which is almost 2.5 years
> ago, at the time of writing.
>
> The weaknesses in this release strategy are:
>
> 1. No clarity on when the next Guix release is.
> 2. Releases are complex and toil for developers.
> 3. Rolling updates aren't suitable for all users.
>
> This GCD proposes the following combined solution for solving the challenges
> associated with #1. and #2. above:
>
> 1. Regular releases: switch to a time-based release of Guix every year.
> 2. Efficient releases: use *package sets* and *supported architectures* to
> reduce the scope of work required to create a Guix release.  Create a
> rotating *Release Team* who will organise each release, with the goal of
> *automating releases* wherever possible.
>
> The benefits will be:
>
> 1. New installations of Guix will be better because installation media and
>    manuals will be up to date.  The version of Guix distributed through other
>    GNU/Linux distributions will also be more recent.
> 2. Package installation will improve for all users.  Packages will be 
> ungrafted
>    during each release cycle.
> 3. Package quality will improve for all users, because regular releases will
>    provide a cadence for focusing on our quality.
> 4. A regular cadence for promoting the project to potential users.  Helping us
>    to inform more people about the benefits of using GNU Guix!
> 5. A regular release cycle is a rallying point for our contributors giving 
> them a
>    consistent calendar of when to focus on releases versus other hacking.
>
> This GCD doesn't attempt to address the challenge that rolling updates aren't
> suitable for all users (#3. above).  Adding a slower-moving branch akin to
> Nix's stable could be an eventual goal [^2].  However, this GCD aims for a 
> single
> achievable change by implementing regular releases which is a substantial 
> change
> that would be a big improvement for our users.
>
>
> # Motivation
>
> Releases are important for any Free Software project because they update the
> user experience and are a focal point for excitement [^3].  Regular releases
> help us to improve the quality of our software by bringing focus, and
> exercising regular usage scenarios (e.g. testing the installer).
>
> The majority of distributions follow time-based releases, six months is a
> common cycle time.  For further comparison see the research on the
> [release strategies of 
> distributions](https://codeberg.org/futurile/guix-org/src/branch/master/release-mgmt)
> .  A summary is:
>
> - NixOS: releases every six months (May/November), both rolling release and
> slower stable branch.
> - OpenSUSE: rolling release, slow-roll release and fixed releases.
> - Ubuntu: every six months, with 9 months maintenance. LTS releases every
> 2 years.
> - Debian: Every 2 years (not time fixed), with about 4-5 months of package
> updates freeze before the release while bugs are ironed out.
>
> As a rolling release Guix immediately provides the latest improvements to
> users.  Consequently, it could be argued that releases are unnecessary.
> However, they provide a focal point for the project to undertake additional
> testing and stabilisation across the repository.  They also ensure we update
> installation media, documentation, themes and web site.
>
> A specific issue caused by irregular releases is that new users/installs may
> have a poor initial user experience due to time-bombs which occur in obsolete
> packages and their test suites.  People installing from a release tarball 
> often
> find that important packages fail to build, making their initial attempts to 
> use
> Guix unnecessarily hard.  Old release artifacts also risk upstream sources
> disappearing and require the project to keep older substitutes on our servers.
>
> People using Guix installed on another GNU/Linux distribution often use the
> guix-daemon packaged by their distribution.  This means that any daemon 
> related
> changes, such as a change to substitute's compression algorithm or changing 
> the
> substitute servers, only reach those users after their distributions have
> updated their packaged guix-daemon version. Downstream GNU/Linux distributions
> will only package new official releases from the project.
>
> Regular releases are also good for casual users because they provide an
> opportunity for us to promote new features and improvements.  For prospective
> users promotional activity about the release means they are more likely to 
> hear
> about capabilities that will attract them to experiment with Guix.
>
> Many desktop distributions release every six months to align with the major
> desktop environments (GNOME/KDE) who release two or three times a year.  This 
> is
> why Nix (May/November) and Ubuntu (April/October) align their releases.
>
> Since Guix is used [extensively as a 
> desktop](https://guix.gnu.org/en/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-1/)
> it would make sense to align with these upstream releases.  However, given 
> that
> Guix is a volunteer project that doesn't have the practise of releasing it's
> unrealistic to move to two releases a year.  Something along these lines could
> be a future goal [^4].
>
> This GCD proposes an annual release cycle, with releases **in June**.
>
> To move onto this cycle the first release would be a little later: aiming for
> the **November of 2025**, with a short cycle to release in June 2026.
>
>
> # Creating efficient releases
>
> To create efficient releases we need to focus efforts by defining the scope
> of work that the Release Team does.
>
> The result of the interaction between `package sets`, `architectures` and
> `release artifacts` is that the Release Team's QA and testing is reduced as
> follows:
>
> 1. Packages and services within the `package sets` must build on the `primary
>    architectures`. Other packages are optional for a release.
> 2. Release artifacts are only made from packages within the `package sets` and
>    on the `primary architectures`. Other architectures or release artifacts 
> are
>    optional for a release.
> 3. Testing and QA is on `package sets` on the `primary architectures` only.  
> The
>    Release Team has flexibility to choose their response to bugs and issues.
> 4. Testing is prioritied towards the installation of Guix System and Guix (on 
> a
>    foreign distribution) using the `release artifacts`.  Practically, this 
> means
>    testing Guix System installs using the ISO image and QCOW2 image; and that
>    Guix installs on a foreign distribution using the binary installer.
> 5. Each successive Release Team will look for ways to **automate releases**
>    which may enable more efficient releases and alterations in the scope.
>
>
> ## Package Sets
>
> There are currently over 30,000 packages in the archive, it's unrealistic for
> all packages to receive the same amount of QA effort for a release.
>
> Many other distributions focus attention on the critical parts of their
> repository by identifying those packages that are required for a particular
> use-case.  For example, Arch Linux limits their efforts to a specific
> repository (called "main").  Ubuntu identifies various seeds for specific
> use-cases which determines their maintained packages; other packages outside
> these sets do not receive security updates.
>
> Guix is both a package manager that can be hosted on other GNU/Linux
> distributions, and a GNU/Linux distribution itself.  Limiting the range of
> packages and services that receive attention is consequently more complicated.
> Guix already has manifests to track which packages are used by
> [Guix System's 
> installer](https://git.savannah.gnu.org/cgit/guix.git/tree/etc/manifests/release.scm)
> , so this proposal extends that concept.
>
> For this proposal each successive Release Team would identify key packages 
> which
> would receive the most Quality Assurance (QA) attention in that release.
>
> The package sets would be:
>
> * Required packages: packages required to boot and install a minimal Guix 
> System
>   or install Guix on a foreign distribution.  This only includes default
>   options **required** by the installer which **must** work for a release 
> since
>   they are part of the default installer path.  For example, this would 
> include
>   the guix daemon, kernels, boot loaders, file-systems and minimal utilities.
> * Desktop packages: additional desktop environments and other options from
>   the installer. This includes packages that are part of the installer
>   (but not default) and other popular options as chosen by the Release Team.
>   Packages **should** work, but they may receive less QA attention from the
>   Release Team than %system_packages.
> * Important packages: important packages that anyone may wish to install on 
> Guix and
>   consequently the project wants to maintain substitutes for. This may include
>   important toolchains, runtimes and utilities. The Release Team **may**
>   perform QA on these packages.
>
> Guix would still make all packages and services part of a release (the entire
> archive).  Guix teams would be asked to test the parts of the archive that 
> they
> look after. But, only Release Critical bugs in the `package sets` could block
> a release.
>
> The Release Team may identify other package sets as needed.
>
> Packages within the `packages sets` must build on the primary architectures
> (see definition lower).  As part of the release's QA contributors would be 
> asked
> to test these packages.
>
> Where a significant issue is found within a package or service that's part of
> a `package set` the Release Team would work to resolve the problem. This could
> involve (but isn't limited to) fixing the underlying issue, documenting it as
> a limitation in the release notes or promoting an alternative and deprecating
> the broken package using the Deprecation Policy.  As always, packages may be
> un-deprecated and returned to the archive at a later date.
>
> Given the constraints on developers the overal aim of the `package sets` would
> be for them to be as small a set of packages and services as reasonably 
> possible.
> It would mean that developers could focus on the critical packages and 
> services
> during a release.  As an example, this would mean that a major issue in the
> Linux kernel could block a release, but not an issue in a game.
>
>
> ## Platforms and Architecture tiers
>
> Guix is built and maintained on multiple different architectures, and two
> kernels (Linux, GNU Hurd).  As the goal of the project is to maximise user
> freedom this variety is significant and is a key motivator for developers.
>
> However, with limited resources (developer and CI) we want to make it as
> efficient as possible to create a release.  The more toil involved in a 
> release
> the less likely developers are to work on it.
>
> The [2025 Guix User 
> Survey](https://guix.gnu.org/en/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-2/)
> showed that 98% of users were on x86_64 and 19% on AArch64.  Consequently, the
> proposal is the following tiers:
>
> - Primary architectures:
>   - Architectures: x86_64, AArch64
>   - Kernel: Linux
>   - Coverage: all packages and services that are not explicitly platform
>     specific must work to be included in the archive.
>   - Package status: package updates should build for this architecture.  If a
>     package update is broken it must not be pushed to users (e.g. master).
>
> - Alternative architectures
>   - Architectures: all others
>   - Kernel: Linux, Hurd
>   - Coverage: all packages and services that are not explicitly platform
>     specific may build
>   - Package status: package updates should work for this architecture.
>     Updates that do not build for this architecure, but do build for a primary
>     architecture may be pushed to users.
>
> Packages or services that do not build for the Primary architectures as part 
> of
> a release would be removed from the archive using Guix's deprecation policy.
>
>
> ## Release artifacts
>
> Using the primary architecture tier and the package sets would involve 
> creating
> the following release artifacts:
>
> - GNU Guix System ISO image
> - GNU Guix System QCOW2 image
> - GNU Guix binary installer
> - GNU Guix source tarball (as produced by `make dist`)
>
> The Release Team should co-ordinate with any downstream GNU/Linux 
> distributions
> that packages Guix to assist them to make the new release part of their
> distribution.
>
> Again in an effort to reduce developer toil, additional release artifacts 
> could
> be created but would not be part of the formal release testing and errors 
> would
> not block a release.
>
>
> # Release team and project
>
> A regular release cycle should galvanise all Guix developers to work on our
> releases.  But, to ensure there are sufficient people involved a call will be
> put out to create a specific release team for each release project.  We would
> expect the final release team to be around four-six members. The release team
> will work together to fix issues and test the various release artifacts. The
> expectation is that the release projects will be as short as possible, around
> a 12 week commitment with each team member having a few hours a week to take
> part.
>
> The project would like to achieve releases with the minimum amount of effort
> by developers.  Consequently, a goal for each Release Team is to find ways to
> **automate releases** reducing the toil of successive releases.
>
> To manage the release it's proposed that each release will have a Release 
> Manager
> role. The role of the Release Manager is to:
>
> - co-ordinate the release project
> - communicate with the release team and wider developers status and release
>   critical bugs
> - arbitrate changes to release blocking bugs, package sets and release
>   artifacts
> - influence and assist teams to resolve problems
> - define the release artifacts and create them
> - encourage and excite **everyone to create and test the release**
>
> The Release Manager role is likely to require the most effort, so it will be
> rotated and consist of two people from the release team.  For each release
> there would be a primary person and a secondary person in the role.  The
> primary person is new to the role.  The secondary person has previously done 
> it
> and is mentoring the new person.  The impact of this is that each new release
> manager is agreeing to take responsibility during two release cycles.
> This system is modelled on the [Nix release 
> management](https://codeberg.org/futurile/guix-org/src/branch/master/release-mgmt/nix-release-mgmt.md)
> approach.
>
> One of the release team will take on the role of Release Advocate [^5].  They
> will take responsibility for preparing the release announcement and
> coordinating the creation of content to promote the new release (e.g. web 
> site)
> This role can be done by any member of the Guix community who has sufficient
> interest.
>
> The final release team is:
>
> - a new Release Manager
> - a returning Release Manager
> - up to 4 other members, one of whom acts as the Release Advocate
>
> The Release Managers of each release will create and communicate a release
> project plan setting out the stages and dates for each stage.  To try and
> galvanise the Guix development team to focus on the release it's envisioned
> that a release project will be about 12 weeks. See Appendix 1: Release Project
> Template for an example.
>
> In order to improve knowledge transfer and reduce the toil of doing releases
> the Release Managers for a release will document the release process.  There 
> is
> inspiration for this in [NixOS's release 
> wiki](https://nixos.github.io/release-wiki/Home.html)
> and we already have detailed [release 
> documentation](https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/doc/release.org)
> .
>
>
> # Cost of Reverting
>
> If regular releases were not successful then the project would switch back to
> irregular releases.  There would be no impact for exiting users as they will
> be tracking the rolling release's master branch.
>
> If the project is able to successfully undertake regular releases then over
> time it may be possible to undertake full releases every six months or some
> other release cadence.
>
>
> # Drawbacks and open issues
>
> There's no particular drawback to attempting regular release.  It should be
> noted that the project is entirely dependent on volunteers so it may be that
> contributors don't have enough time available to achieve regular releases.  If
> that's the case we would revert back to irregular releases.
>
> Appendix 1: Release Project Template sets out a proposed time-line and major
> steps to be undertaken by the project to release a new version of Guix.  It
> proposes freezing master while the team focuses on releasing the new version
> of Guix. Specifically, a major updates freeze (week 8->12), and a hard freeze
> (week 10->12).  The drawback of this approach is that it would slow the
> velocity of changes.  During this period contributors would have to keep
> updates on team branches, or use an alternative temporary branch.  Each 
> Release
> Team will iterate and improve the release process, so it's possible that this
> freeze period will be reduced, changed, or removed over successive releases.
>
> There are various improvements that could be made to the release strategy over
> time, such as:
>
> 1. Create separate releases of the Guix source necessary for installing Guix
>    on a foreign distribution. This would mean that downstream GNU/Linux
>    distributions that package Guix could have new release more often.
> 2. Adding an additional slower release cadence. This could be either a 
> security
>    and critical fixes branch strategy, such as implemented by Nix. Or it could
>    be a slightly slower moving branch, such as implemented by SUSE SlowRoll 
> [^4].
>
>
> # Appendix 1: Release Project Template
>
> To show the major steps of a release this release project template is a 
> starting
> point.  After each successive release the Release Team will undertake a
> retrospective and will document improvements that can be made to the release
> process and areas to automate to improve efficiency.
>
> The aim in this template is for a 12 week active release project, with the 
> first
> one using 16 weeks in total to give teams time to prepare.
>
> The current outline builds from our current [release 
> document](https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/doc/release.org)
>
> | Week of Project | Event |
> | --- | --- |
> | N/A | Nominate a release team |
> | -4 | Notify teams of upcoming release |
> | 01 | Release project start |
> | 03 | Package set finalisation |
> | 04 | Toolchain and transition freeze |
> | 06 | Initial testing |
> | 08 | Major updates freeze |
> | 08 | Breaking changes to next-master |
> | 08 | Ungraft master branch |
> | 09 | Bugs and documentation focus |
> | 09 | Branch and tag release branch |
> | 10 | Testing and hard freeze |
> | 10 | Release candidate |
> | 10 | Prepare release communications |
> | 12 | Final release target |
> | 14 | Alternative release target #1 |
> | 16 | Alternative release target #2 |
> | +1 | Integration branch merged to master |
> | +2 | Release retrospective |
> | +2 | Relax - it's done! |
>
> ## Nominate a release team annually
> Nominate a release team with two Release Managers (1 is the previous RM), and
> up to 4 other people who will work on the release.  Put out a call for a 
> Release
> Advocate who can be anyone in the Guix community who's willing.  The best time
> to do this would be annually at Guix Days as it's a natural motivational point
> in the calendar.
>
> ## Notify teams of upcoming release (week -4)
> Make sure all teams are aware of the upcoming release.  This gives them 4 
> weeks
> to undertake any large transitions or major changes.
>
> ## Release project start (week 01)
> Start the project with weekly updates to guix-devel and regular meetings of 
> the
> release team.  Encourage participation in testing and identifying bugs from
> the community.
>
> ## Package set finalisation (week 03)
> Specify the package sets for this release.  The Release Team will identify all
> packages and their inputs so that a full manifest for the release is created.
>
> Packages that do not build for the primary architectures so could be risk of
> removal will be identified and developers will be notified following the
> Deprecation Policy.
>
> ## Toolchain and transition freeze (week 04)
> No major changes to toolchains (e.g. gcc-toolchain, rust-1.xx) or runtimes
> (e.g. java).  There should be no changes that will cause major transitions.
>
> Debian defines a transition as one where a change in one package causes 
> changes
> in another, the most common being a library.  This isn't suitable for Guix 
> since
> any change in an input causes a change in another package.  Nonetheless, any
> change that alters a significant number of packages should be carefully
> considered and updates that cause other packages to break should be rejected.
>
> No alterations to the Guix daemon are accepted after this point.  Packages
> and services in the 'minimal' package set should not be altered.
>
> ## Initial testing (week 06)
> An initial testing sprint to look at packages, services, install media and
> upgrade testing. This should identify:
>
> * packages or services that may need to be removed because they fail on a
>   primary architecture
> * packages and services in the package sets install and can be used
> * installation artifacts can be created and used
> * example system definitions can be used
> * system upgrades
>
> Update the list of packages that's at risk of being deprecated following their
> identification in `Package set finalisation: see if these build failures have
> been resolved.
>
> A build failure of a package or service that's in a package set will be marked
> as a blocker for the release: Release Team to make determination on response.
>
> ## Major updates freeze (week 08)
> Major package updates are frozen on 'master' as the focus is on fixing any
> blocking packages.  **Security updates still go to 'master'**.
>
> All major changes not related to the release remain on team-branches.
>
> Team branches can still be folded into the release branch as long as changes 
> are
> minor package upgrades.
>
> ## Breaking changes to an integration branch (week 08)
> If there are major breaking changes that must be moved from a team branch an
> integration branch will be created. For example `next-master`, this will be
> short-lived, existing only until after the release.
>
> The master branch slows down from this week until the release.
>
> This concept comes from the Nix project where they flow big changes into a
> staging branch while they do release stabilisation to prevent big flows of
> breaking changes into master which broke one of their releases [^6].
>
> ## Ungraft master branch (week 08)
> Guix master is ungrafted to minimise the difference with users of the release
> initial 'guix pull' experience.
>
> ## Bugs and documentation focus (week 09)
> The master branch should be quiet at this point as everyone should focus on
> testing and resolving any bugs.  New documentation can also be done.
>
> ## Branch and tag release branch (week 09)
> The master branch is tagged and a new release branch is created.
>
> * release branch: regularly merged from master, tracks the release artifacts.
> * master branch: receives security and resolutions of RC bugs.
> * next-master: everything that normally goes to master.
>
> At this point in time the master branch only receives security updates and
> resolutions of RC bugs.  The focus is on stabilising, creating release 
> artifacts
> and ensuring that the substitute builders have caught up.  The release branch
> receives regular merges from the master branch: the release artifacts are 
> built
> from this branch, so it tracks the release.  All other changes stay in a team
> branch or go to an integration branch (e.g. next-master).
>
> Only security updates go to the master branch from this point.  All other
> changes stay in a team branch or go to an integration branch
> (e.g. next-master).  The focus on the release branch is to stabilise so only
> resolutions to bugs and anything required to create release artifacts should
> be pushed.
>
> ## Testing and Hard Freeze (week 10)
> Release Crictical (RC) bugs and issues should be solved for the release 
> branch.
>
> Only changes that will fix a non-building package, or a RC bug in a
> package/service are allowed.  Ideally avoid new upstream versions, but it's
> acceptable to use a new minor upstream version to solve a bug.
>
> Any non-building packages are deprecated using the Deprecation Policy.  As 
> always,
> packages can be un-deprecated at a later date.
>
> The drawback of a freeze is that it slows down changes reaching users. As each
> Release Team iterates and improves the release process they will consider 
> whether
> this freeze period can be reduced, changed, or removed.
>
> Call for testing from all developers and users: goal is to test the main
> installation use-cases and packages within the `package sets`.
>
> ## Release candidate (week 10)
> Release artifacts are created for the release candidate.  There's a final 2
> weeks of testing with these artifacts.  If there are no release blocking bugs
> discovered then the release uses these artifacts.  If bugs are found/fixed 
> then
> release artifacts are regenerated as needed.
>
> ## Prepare release communications (week 10)
> Determine all the changes of interest and highlights that will be communicated
> to users during the release. At a mimimum this will be an update to the NEWS
> file, and a blog post.
>
> ## Final release target (week 12)
> Final release is targeted for this date. All planning and work should be done
> to this date.
>
> The new release is announced and new release artifacts are published.
>
> If the Release Team determines that release has Release Critical bugs without
> workarounds they may move the release to Alternative release target #2.
> The concept of buffer weeks to ensure the release balances time and quality
> comes from [Fedora's release 
> plan](https://docs.fedoraproject.org/en-US/releases/lifecycle/#_release_dates)
>
> ## Alternative release target #1 (week 14)
> This release target date may be used if the Release Team determines that there
> were Release Critical bugs without workarounds at the Final release target
> date.
>
> If the Release Team determines that release has Release Critical bugs without
> workarounds at this date they may move the release to Alternative release
> target #2.
>
> ## Alternative release target #2 (week 16)
> This release target date may be used if the Release Team determines that there
> are Release Critical bugs without workarounds at one of the previous target 
> dates.
>
> If the Release Team determines that the release has Release Critical bugs
> without workarounds they may move the release to an alternative date or cancel
> the release.
>
> ## Integration branch merged to master (release +1 week)
> If there were any breaking changes placed onto the integration branch
> (e.g. `next-master`) then these can be merged into the `master` branch at this
> point.  The master branch then continues as normal.
>
> ## Release retrospective (release +2 weeks)
> A retrospective is undertaken by the release team to understand how the 
> release
> process can be improved to make it more reliable for users and 
> easier/efficient
> for developers.
>
> ## Relax! (release +2 weeks)
> The release has been cut, everyone is now excited, and hopefully all is well.
> Take some time off from release work!  There's some time built-in here to
> relax and get back to other hacking before it's time to start again with the
> next release.
>
> ---
>
> [^1]: https://guix.gnu.org/en/blog/2022/gnu-guix-1.4.0-released/
>
> [^2]: Examples of distributions that have cadences for different users and 
> screnarios
>       are Nix's stable branch, OpenSUSE's SlowRoll branch and Ubuntu's LTS
>       (Long Term Support) releases.
>
> [^3]: the aspect of creating news and excitement for casual users is 
> well-known
>       in the FOSS community. An example from 
>       [GNOME's earlier 
> days](https://mail.gnome.org/archives/gnome-hackers/2002-June/msg00041.html).
>
> [^4]: OpenSuse has a [SlowRoll 
> branch](https://en.opensuse.org/Portal:Slowroll)
>       where they release a smaller set of package updates on a monthly basis.
>       This is an interesting innovation as it allows users to still benefit 
> from
>       a rolling release but at a slower rate of change (fewer regressions).
>       They are also not dropping too far behind the rolling release, so 
> there's
>       not as much maintenance for OpenSUSE developers dealing with an out of
>       date release branch and having to backport software.
>
> [^5]: Nix has the concept of a [Release 
> Editor](https://nixos.github.io/release-wiki/Release-Editors.html)
>       who is responsible for improving the legibility of the release notes.  
> Our
>       version extends the idea to make sure other artifacts and activities 
> that
>       promote the release happen.
>
> [^6]: 
> https://github.com/NixOS/rfcs/blob/master/rfcs/0085-nixos-release-stablization.md

I accept

Reply via email to