Skip to content

Conversation

@lucperkins
Copy link
Member

@lucperkins lucperkins commented Nov 17, 2025

Clarifies the wording and instructions around Determinate Nix and upstream Nix in light of recent changes to default behavior.

https://github.com/determinateSystems/nix-installer/tree/lucperkins/gtm-148-determinate-nix-installer-readme

Summary by CodeRabbit

  • Documentation
    • Reorganized README with clearer section headings and improved navigation
    • Enhanced installation guidance emphasizing the default option and installation environments
    • Added dedicated section for installing upstream Nix as an alternative
    • Updated installer settings tables and examples for clarity

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Nov 17, 2025

Walkthrough

The README.md is restructured to emphasize Determinate Nix as the default installation target, introduce upstream Nix as an alternative with dedicated documentation and a new --prefer-upstream-nix flag, reorganize sections with explicit headings, and update installer settings tables for clarity and consistency.

Changes

Cohort / File(s) Summary
Documentation restructuring and reframing
README.md
Expanded introduction emphasizing Determinate Nix as default; added new "Installing upstream Nix" section with GitHub Actions example; reorganized content with explicit section headings (e.g., "Install Determinate Nix," "As a GitHub Action," "Troubleshooting," "Upgrading Nix," "Uninstalling," etc.); updated and realigned installer settings tables with new/modified flags; added macOS tip and upstream Nix availability note; updated URLs and cross-links throughout.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • Documentation consistency and flow across reorganized sections
  • Verification of updated URLs and cross-links
  • Review of new flag documentation (--prefer-upstream-nix) for accuracy and clarity

Possibly related PRs

Suggested reviewers

  • grahamc
  • colemickens

Poem

🐰 The README hops with renewed cheer,
Determinate Nix now crystal clear!
Upstream paths marked with a flag so bright,
Fresh headings guide us left and right. ✨
Clarity blooms where confusion stood near!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly summarizes the main change: rewording documentation around upstream and Determinate Nix, which aligns with the extensive README.md updates described in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch lucperkins/gtm-148-determinate-nix-installer-readme

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-authored-by: Graham Christensen <graham@grahamc.com>
@lucperkins lucperkins requested a review from grahamc November 17, 2025 18:35
@lucperkins lucperkins enabled auto-merge (squash) November 17, 2025 18:35
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
README.md (1)

12-12: Consider more concise wording for feature description.

The phrase "offers a variety of industry-leading" could be simplified. Since multiple features and improvements are being linked, the redundancy of "a variety of" may be unnecessary.

Consider this alternative:

-By default, it installs Determinate Nix, which enables [flakes] and offers a variety of industry-leading [features] and [improvements].
+By default, it installs Determinate Nix, which enables [flakes] and offers industry-leading [features] and [improvements].
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 973787d and 977a982.

📒 Files selected for processing (1)
  • README.md (13 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: grahamc
Repo: DeterminateSystems/nix-installer PR: 1664
File: src/settings.rs:56-67
Timestamp: 2025-09-10T15:49:03.281Z
Learning: In the nix-installer codebase, the prefer_upstream CLI flag is intentionally designed as a presence-only flag. Users wanting Determinate Nix should use --determinate instead of --prefer-upstream=false, as this was a deliberate UX design choice to keep the interface simpler.
📚 Learning: 2025-09-10T15:49:03.281Z
Learnt from: grahamc
Repo: DeterminateSystems/nix-installer PR: 1664
File: src/settings.rs:56-67
Timestamp: 2025-09-10T15:49:03.281Z
Learning: In the nix-installer codebase, the prefer_upstream CLI flag is intentionally designed as a presence-only flag. Users wanting Determinate Nix should use --determinate instead of --prefer-upstream=false, as this was a deliberate UX design choice to keep the interface simpler.

Applied to files:

  • README.md
🪛 LanguageTool
README.md

[style] ~12-~12: Consider using a more concise synonym.
Context: ... Nix, which enables [flakes] and offers a variety of industry-leading [features] and [improv...

(A_VARIETY_OF)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: build-aarch64-linux / Build aarch64 Linux (static)
  • GitHub Check: build-aarch64-darwin / Build aarch64 Darwin (static)
  • GitHub Check: build-x86_64-linux / Build x86_64 Linux (static)
  • GitHub Check: Lints
🔇 Additional comments (5)
README.md (5)

9-16: Introduction effectively clarifies default and alternative paths.

The restructured introduction clearly establishes Determinate Nix as the default while the NOTE block explicitly calls out upstream Nix availability with a sunset date, which aligns well with the PR's objectives.


40-68: GitHub Actions documentation is clear and well-organized.

The examples and pinning guidance are straightforward, and the explicit section headings improve navigability.


70-278: Section restructuring and headings improve organization and clarity.

The addition of explicit section headings throughout (Planners, Troubleshooting, Upgrading, etc.) makes navigation easier, and the content remains clear and actionable. WARNING blocks are used appropriately for platform constraints.


436-451: Dedicated upstream Nix section is well-structured and correct.

The documentation of the --prefer-upstream-nix flag and the GitHub Actions alternative are clear and actionable. This provides a good counterpoint to the Determinate Nix default path.


374-393: Installer settings table correctly documents the new --prefer-upstream-nix flag.

The flag is properly documented with its description, default value (false), and environment variable. The table structure is consistent and clear.

Comment on lines +18 to 24
## Install Determinate Nix

If you'd prefer upstream Nix:
This one-liner installs Determinate Nix on just about any supported system:

```shell
curl -fsSL https://install.determinate.systems/nix | sh -s -- install --prefer-upstream-nix
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Remove --prefer-upstream-nix flag from Determinate Nix installation command.

Line 23 includes the --prefer-upstream-nix flag, but this command is in the "Install Determinate Nix" section and is supposed to install the default. According to the installer settings table (line 390), this flag "specify[ies] that you want the installer to install upstream Nix rather than Determinate Nix"—the opposite of what this section intends. The upstream Nix installation command is correctly shown later (lines 438-441).

Apply this diff to fix the command:

 ```shell
-curl -fsSL https://install.determinate.systems/nix | sh -s -- install --prefer-upstream-nix
+curl -fsSL https://install.determinate.systems/nix | sh -s -- install

<details>
<summary>🤖 Prompt for AI Agents</summary>

In README.md around lines 18 to 24, the Determinate Nix install one-liner
incorrectly uses the --prefer-upstream-nix flag; remove this flag so the command
installs the default Determinate Nix. Update the line to use: curl -fsSL
https://install.determinate.systems/nix | sh -s -- install (i.e., delete only
the --prefer-upstream-nix token, keep the rest of the line intact).


</details>

<!-- This is an auto-generated comment by CodeRabbit -->

[macos-upgrades]: https://determinate.systems/posts/nix-survival-mode-on-macos/
[nix]: https://nixos.org
[nix-installer-action]: https://github.com/DeterminateSystems/nix-installer-action
[nix-installer-action]: https://github.com/determinateSystems/nix-installer-action
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix GitHub organization name case in link definition.

Line 489's link definition uses determinateSystems (lowercase 's'), but line 444's GitHub Actions example uses DeterminateSystems (capital 'S'). GitHub organization names are case-sensitive; the link should match the actual organization name.

Apply this diff to fix the case:

-[nix-installer-action]: https://github.com/determinateSystems/nix-installer-action
+[nix-installer-action]: https://github.com/DeterminateSystems/nix-installer-action
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[nix-installer-action]: https://github.com/determinateSystems/nix-installer-action
[nix-installer-action]: https://github.com/DeterminateSystems/nix-installer-action
🤖 Prompt for AI Agents
In README.md around line 489, the link definition for the GitHub organization
has the wrong case ("determinateSystems" vs the correct "DeterminateSystems");
update the bracketed link target to use the exact organization name
"DeterminateSystems" so it matches the GitHub Actions example and the real org
(preserve surrounding formatting and only change the organization name's case).

Comment on lines +9 to +10
**Determinate Nix Installer** is the easiest and most reliable way to install [Determinate Nix][det-nix] (as well as [Determinate Systems][detsys]' longest-running project as a company).
The installer works across a wide range of environments, including macOS, Linux, Windows Subsystem for Linux (WSL), SELinux, the Valve Steam Deck, and more, it offers support for seamlessly [uninstalling Nix](#uninstalling), it enables Nix to survive [macOS upgrades][macos-upgrades], and offers a [range of features](#features) that make it the industry standard for installing Nix.
Copy link
Member

Choose a reason for hiding this comment

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

nit/opinion: a bit of a chunk, maybe (macOS) features could be split out as bulleted list, or omitted at this point?

but really, a nit, it's fine as-is of course.

@lucperkins lucperkins merged commit 3e92fe5 into main Dec 9, 2025
19 checks passed
@lucperkins lucperkins deleted the lucperkins/gtm-148-determinate-nix-installer-readme branch December 9, 2025 18:52
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.

4 participants