epics-extensions/EPNix

Proposition: switch to branch releases

Closed this issue · 5 comments

Right now, we don't have a great way of handling breaking changes:

  • we don't have release notes or any communication channel to warn users
  • we don't have any communication channel to instruct users how to "upgrade"
  • we don't have any "stable releases"

To fix all three, I propose that we generally follow the practices of nixpkgs:

  • have a master branch that has no stability guarantees
  • have one branch per NixOS release, for example
    • a nixos-23.05 branch
    • a nixos-23.11 branch
    • a nixos-24.05 branch
  • each of these "release branch" is guaranteed to not contain breaking changes
  • on those "release branches", EPNix will depend on the corresponding nixpkgs branch

Since NixOS/nixpkgs itself has breaking changes, there's a good chance that we'll be affected by them (for example, a major upgrade of a dependency), which is why I think we should have the same release schedule.

Right now, I don't have a specific plan on which of those branches we'll keep supporting. Since the life of an accelerator is much greater than 6 months, there's a good chance that we'll have to maintain those branches longer than nixpkgs. I think for now it's enough to say "best effort".

cc @agaget @Rider128 @stephane-cea @Synthetica9 for your opinions

I agree with your proposition. We will have to update all our EPNix IOCs in order to not use the master branch anymore, this will represent quite some work since we already have many EPNix IOCs, but the sooner the better!

I agree with the proposition. I think a branch "unstable" will be great, for push easily in master.

Seems sensible, wouldn't really impact us as we're not running EPNix in production (yet)

Note from experience in nixpkgs, I think I'm going to disable creating any branch in the main EPNix repository, so that there's only "official branches" there. People would have to contribute through forking.

Branch releases are now in place, with the help of a backport mechanism (the same as in nixpkgs). We now have three main branches:

  • main
  • nixos-23.05
  • nixos-23.11

No new branches can be created on the main repository (except for backports and dependabot).