Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fetch updates from i.d.s by default #772

Merged
merged 2 commits into from
Dec 8, 2023
Merged

Fetch updates from i.d.s by default #772

merged 2 commits into from
Dec 8, 2023

Conversation

grahamc
Copy link
Member

@grahamc grahamc commented Dec 6, 2023

Our goal is to deliver a solid experience with Nix flakes, including an upgrade path that is safe. Occasionally, the upstream Nix project may introduce regressions for the common flake path. This is not desirable for our users, who depend on a consistent and stable flakes experience.

Additionally, the Nix project isn't directly responsible for delivering updates to users as that role is delegated to the Nixpkgs project.

Overall, this means upgrades are not consistently delivered to users.

This update directs future update requests to install.determinate.systems, which we will upgrade as part of our standard release process.

Our standard release process includes proactive testing: validating our installer and Nix's behavior across a wide variety of platforms and scenarios.

After an update passes our proactive validation, we do a phased rollout of reactive monitoring: the update is released to a small percentage of users on GitHub Actions. We monitor the failure rate of the installer and overall workflows to ensure the updated Nix isn't causing widespread failure we weren't able to identify ahead of time.

Only after a release passes both proactive and reactive validation, our macOS .pkg and nix-upgrade paths are bumped to the most recent release. This gives user the confidence they're looking for that the Nix release they're getting is safe.

Description
Checklist
  • Formatted with cargo fmt
  • Built with nix build
  • Ran flake checks with nix flake check
  • Added or updated relevant tests (leave unchecked if not applicable)
  • Added or updated relevant documentation (leave unchecked if not applicable)
  • Linked to related issues (leave unchecked if not applicable)
Validating with install.determinate.systems

If a maintainer has added the upload to s3 label to this PR, it will become available for installation via install.determinate.systems:

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix/pr/$PR_NUMBER | sh -s -- install

Our goal is to deliver a solid experience with Nix flakes, including an upgrade path that is safe. Occasionally, the upstream Nix project may introduce regressions for the common flake path. This is not desirable for our users, who depend on a consistent and stable flakes experience.

Additionally, the Nix project isn't directly responsible for delivering updates to users as that role is delegated to the Nixpkgs project.

Overall, this means upgrades are not consistently delivered to users.

This update directs future update requests to install.determinate.systems, which we will upgrade as part of our standard release process.

Our standard release process includes proactive testing: validating our installer and Nix's behavior across a wide variety of platforms and scenarios.

After an update passes our proactive validation, we do a phased rollout of reactive monitoring: the update is released to a small percentage of users on GitHub Actions. We monitor the failure rate of the installer and overall workflows to ensure the updated Nix isn't causing widespread failure we weren't able to identify ahead of time.

Only after a release passes both proactive and reactive validation, our macOS .pkg and nix-upgrade paths are bumped to the most recent release. This gives user the confidence they're looking for that the Nix release they're getting is safe.
@grahamc grahamc added this to the 0.15.2 milestone Dec 6, 2023
@grahamc
Copy link
Member Author

grahamc commented Dec 6, 2023

Closes #744

Copy link
Contributor

@Hoverbear Hoverbear left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine to me (though I note we did make the U into u)

@grahamc
Copy link
Member Author

grahamc commented Dec 8, 2023

The matching U -> u change is rolling out to install.determinate.systems shortly 👍

@grahamc grahamc enabled auto-merge (squash) December 8, 2023 01:57
@grahamc grahamc merged commit 0b01725 into main Dec 8, 2023
11 of 13 checks passed
@grahamc grahamc deleted the grahamc-patch-2 branch December 8, 2023 03:45
@Hoverbear Hoverbear mentioned this pull request Jan 8, 2024
6 tasks
@fesplugas
Copy link

A couple days ago I upgraded my nix install and now I see a warning when running flakes

warning: unknown setting 'upgrade-nix-store-path-url'

Removing the setting from /etc/nix/nix.conf fixes the warning, but I wonder if there are any side effects.

@cole-h
Copy link
Member

cole-h commented Mar 22, 2024

The only side effect is that you won't get the latest Nix version when you run nix upgrade-nix, but will be beholden to the Nixpkgs maintainers' decisions on which version of Nix to provide in https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix.

If you say you "upgraded" your Nix install but are now seeing that, it seems more likely that you downgraded it (whether on purpose or on accident)? That option was added in Nix 2.19.0 (NixOS/nix#9333), and this PR first appeared in nix-installer version 0.16.0 (https://github.com/DeterminateSystems/nix-installer/releases/tag/v0.16.0), which installed Nix 2.19.2 (and any later versions of the installer should install 2.19.2 or newer versions of Nix).

What version of Nix are you using? nix --version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants