Conversation
WalkthroughRemoved Changes
Sequence Diagram(s)sequenceDiagram
participant Runner
participant Action as NixInstallerAction
participant Env as Environment
Runner->>Action: instantiate action (runtime info)
Note right of Action `#ddeeff`: detect platform (os + arch)
alt x86_64 macOS (Intel)
Action->>Runner: emit hard error (Intel macOS unsupported)
Note right of Runner `#ffeecc`: constructor may abort
Action->>Action: attempt read input "source-tag"
alt input undefined
Action->>Runner: emit notice about pinning to v3.12.2
Action->>Env: set INPUT_SOURCE-TAG = "v3.12.2"
else input provided
Action->>Runner: continue with provided tag
end
else other platform
Action->>Runner: proceed normally
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ 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). (9)
Comment |
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/index.ts (1)
93-105: Consider refactoring this platform-specific guard for maintainability and code quality.While this approach is functional for handling end-of-support for Intel Macs, there are several improvements to consider:
Unprofessional comment (line 94): The comment "Holy guacamole this is ugly" should be removed or rewritten professionally. Comments like this undermine code quality and don't explain why this approach was necessary.
Hardcoded version string (line 103): The version
"v3.12.2"is hardcoded, making it harder to maintain. Consider extracting it as a constant at the file level:const LAST_INTEL_MAC_SUPPORTED_VERSION = "v3.12.2";Direct environment manipulation: Setting
process.env["INPUT_source-tag"]directly bypasses normal input mechanisms. While this works for GitHub Actions (which reads inputs fromINPUT_*environment variables), it's unconventional and could be confusing. Consider documenting why this approach is necessary, or explore ifdetsys-tsprovides a cleaner way to set default inputs.Constructor placement: While technically correct (no
thisaccess beforesuper()), having complex conditional logic in the constructor is less than ideal. Consider extracting to a private static method:private static applyIntelMacWorkaround(): void { if (platform.getArchOs() === "X64-macOS") { actionsCore.warning("..."); const sourceTag = inputs.getStringOrUndefined("source-tag"); if (sourceTag === undefined) { actionsCore.notice("..."); process.env["INPUT_source-tag"] = LAST_INTEL_MAC_SUPPORTED_VERSION; } } }Given the PR comment "CI needs attention," please verify that the pinned version works correctly on Intel Macs and that appropriate tests exist for this code path.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
dist/index.jsis excluded by!**/dist/**
📒 Files selected for processing (1)
src/index.ts(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/index.ts (1)
dist/index.js (4)
platform(99922-99922)sourceTag(101443-101443)inputs(3395-3397)process(24980-24980)
⏰ 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). (10)
- GitHub Check: Test: macos-14-large
- GitHub Check: Test: macos-14-xlarge
- GitHub Check: Test: macos-14-xlarge with determinate
- GitHub Check: Test: macos-14-large with determinate
- GitHub Check: Test: namespace-profile-default-arm64 with determinate
- GitHub Check: Test: macos-13-large with determinate
- GitHub Check: Test: macos-13-large
- GitHub Check: Test: namespace-profile-default-arm64
- GitHub Check: Test: nscloud-ubuntu-22.04-amd64-4x16
- GitHub Check: Test: ubuntu-latest
c8bf775 to
2387849
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
dist/index.jsis excluded by!**/dist/**
📒 Files selected for processing (1)
src/index.ts(1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/index.ts (1)
dist/index.js (4)
platform(99922-99922)sourceTag(101443-101443)inputs(3395-3397)process(24980-24980)
⏰ 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). (9)
- GitHub Check: Test: macos-14-xlarge with determinate
- GitHub Check: Test: macos-13-large
- GitHub Check: Test: macos-14-xlarge
- GitHub Check: Test: macos-14-large
- GitHub Check: Test: ubuntu-latest
- GitHub Check: Test: macos-14-large with determinate
- GitHub Check: Test: macos-13-large with determinate
- GitHub Check: Test: nscloud-ubuntu-22.04-amd64-4x16
- GitHub Check: Test: namespace-profile-default-arm64
|
|
||
| - name: Render the devshell | ||
| if: success() || failure() | ||
| if: (success() || failure()) && matrix.runner != 'macos-13-large' && matrix.runner != 'macos-14-large' |
There was a problem hiding this comment.
why? Does the devshell not build for macOS? That's surprising?
There was a problem hiding this comment.
macos-13-large and macos-14-large are Intel macs, which no longer has a dev shell
There was a problem hiding this comment.
why are they not just removed from the matrix, if we're dropping them after all?
There was a problem hiding this comment.
I don't want to cause all CI runs to immediately fail as soon as we merge and cause a stop-the-world emergency for people all at once. That'll include us, since we haven't deleted x86_64-darwin from all our CI workflows. I'm thinking we have this pin-back warning, and then in a couple weeks or so move to failing.
There was a problem hiding this comment.
(...which implies making sure it works :P)
There was a problem hiding this comment.
Ok, the reason we're keeping this around is so that we actually test our "fall back to version that supports x86" code, so we don't immediately break all users who were using x86 macs
And since there's no devshell for x86 macs in this repo anymore we have to skip this step
But we still want to test that x86 isn't hard-broken just yet.
| actionsCore.error( | ||
| "Determinate Nix Installer no longer supports macOS on Intel. Please migrate to Apple Silicon, and use Nix's built-in Rosetta support to build for Intel. See: https://github.com/DeterminateSystems/nix-src/issues/224", | ||
| ); | ||
| const sourceTag = inputs.getStringOrUndefined("source-tag"); |
There was a problem hiding this comment.
What if they're setting source-rev, or source-pr, or any of our other source-..... args? We probably shouldn't override those too.

Implements DeterminateSystems/nix-src#224
Description
Checklist
Summary by CodeRabbit
Chores
Bug Fixes / Behavior