Skip to content

build(nix): split development shells - #5028

Closed
GAlexIHU wants to merge 1 commit into
mainfrom
codex/split-nix-dev-shells
Closed

build(nix): split development shells#5028
GAlexIHU wants to merge 1 commit into
mainfrom
codex/split-nix-dev-shells

Conversation

@GAlexIHU

@GAlexIHU GAlexIHU commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a lightweight .#go shell for root Go code generation without Node
  • add an .#api shell that layers the pinned Node runtime, pnpm, and API generation tools on the Go shell
  • keep default and .#ci as the complete compatibility environment, while moving generator CI commands and developer guidance to the purpose-specific shells

Validation

  • nix flake check --impure
  • nix develop --impure .#go smoke test and full make generate
  • verified the realized .#go closure contains no Node, pnpm, or V8 derivations
  • nix develop --impure .#api smoke test: Node v26.8.1 matches .nvmrc; pnpm, yq, Go, and make are available
  • nix develop --impure .#ci compatibility smoke test for the existing broad toolset
  • git diff --check

Summary by CodeRabbit

  • New Features

    • Added dedicated development environments for Go-only and API/JavaScript workflows.
    • Improved tooling setup by providing only the dependencies needed for each workflow.
  • Documentation

    • Updated repository guidance with instructions for selecting the smallest suitable development environment.
  • Chores

    • Updated automated checks and code-generation tasks to use the appropriate development environments.
    • Added required patching tools to Go-focused workflows and aligned Node.js version validation with the API environment.

Greptile Summary

The PR splits the Nix development environment into purpose-specific Go and API shells while retaining the complete default/CI environment.

  • Adds lightweight go and layered api development shells.
  • Moves generator CI commands to the smallest shell containing their required tools.
  • Updates contributor guidance for selecting development shells.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
flake.nix Factors the existing environment into Go, API, and full shells while preserving the default and CI compatibility toolsets.
.github/workflows/ci.yaml Routes Node/API and Go generation checks through their corresponding purpose-specific Nix shells.
AGENTS.md Documents shell selection and maintains the Node-version synchronization guidance.

Reviews (3): Last reviewed commit: "build(nix): split development shells" | Re-trigger Greptile

@GAlexIHU GAlexIHU added the release-note/misc Miscellaneous changes label Aug 31, 2026
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 5a6ab0dc-34d1-465e-bd9a-7923ea06379d

📥 Commits

Reviewing files that changed from the base of the PR and between 2ed298c and b52dca3.

📒 Files selected for processing (2)
  • .github/workflows/ci.yaml
  • flake.nix

📝 Walkthrough

Walkthrough

The PR replaces the single inline Nix shell with layered Go, API, full, and CI shells. Contributor guidance and CI checks now select the smallest shell that provides their required tools.

Changes

Nix development shell layers

Layer / File(s) Summary
Shell composition
flake.nix
Defines Go, API, and full shells. The API shell adds Node, pnpm, and yq-go. The full shell adds Python, hooks, tools, and environment variables.
Shell registration
flake.nix
Registers go, api, default, and ci shells.
Shell consumers
.github/workflows/ci.yaml, AGENTS.md
Updates contributor guidance and CI checks to use .#go or .#api where required.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to 2ed29

The PR separates development tooling into purpose-specific shells while retaining the complete default and CI environments. No actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: turip, chrisgacsal, tothandras

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: splitting the Nix development shells.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/split-nix-dev-shells

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.

@GAlexIHU
GAlexIHU marked this pull request as ready for review August 31, 2026 14:36
@GAlexIHU
GAlexIHU requested a review from a team as a code owner August 31, 2026 14:36
@GAlexIHU
GAlexIHU enabled auto-merge (squash) August 31, 2026 14:36
@borbelyr-kong
borbelyr-kong force-pushed the codex/split-nix-dev-shells branch from 2ed298c to b8b5853 Compare August 31, 2026 14:59
@GAlexIHU
GAlexIHU force-pushed the codex/split-nix-dev-shells branch 2 times, most recently from b8b5853 to b52dca3 Compare September 3, 2026 12:09
@GAlexIHU GAlexIHU closed this Sep 3, 2026
auto-merge was automatically disabled September 3, 2026 12:11

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-note/misc Miscellaneous changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant