Open
Conversation
- Add flake.nix, home.nix, nix/{packages,dotfiles,shell}.nix for
declarative package management and dotfile symlink deployment
- Move ~120 CLI tools from Brewfile to nix/packages.nix (nixpkgs)
- Shrink dump/Brewfile to cask/mas/vscode + tap-specific packages only
- Archive original Brewfile as dump/Brewfile.full
- Rewrite install.sh: Nix (Determinate Installer) → home-manager switch
- Add .zshrc Nix profile sourcing at top
- Add justfile Nix recipes: hm-switch, hm-build, nix-update, nix-gc,
test-nix-hm, test-nix-install
- Deprecate `just deploy` and `just clean` (Home Manager handles symlinks)
- Add doctor checks for nix and home-manager
- Add NixHomeManager.Dockerfile and NixInstallTest.Dockerfile for CI
- Add .github/workflows/test-nix.yaml CI workflow
- Update test_just_sandbox.py for deprecated deploy/clean
- mise retained for project-level runtime version switching
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
JustSandbox Docker (Alpine) does not have Nix installed, so doctor must not fail when nix is absent. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
JustSandbox (Alpine) cannot install Nix, so add INSTALL_SKIP_NIX=1 and INSTALL_SKIP_HM=1 to install test scripts. Symlink verification removed since Home Manager handles symlinks (not install.sh). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
P0-1: NixInstallTest.Dockerfile now runs as root (matching flake.nix default Linux config "root@<system>") instead of testuser which had no matching homeConfiguration. P0-2: Add docker-install-test job to test-nix.yaml CI workflow to exercise install.sh E2E (was missing per plan requirements). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Determinate Nix Installer requires --init none in containers without systemd. Detect via /run/systemd/system presence. Also add single-user nix.sh fallback for _source_nix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Determinate Nix Installer requires 'install linux --init none --no-confirm' (linux is a subcommand, --init is its option). Previous order had --init appended after --no-confirm which was rejected. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
home-manager script requires $USER to be set. Docker RUN as root does not automatically set this variable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
First install.sh run generates flake.lock in ~/dotfiles. The second run's git stash fails because flake.lock is untracked/modified. Commit it between runs to test idempotency correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
nix/packages.nixに移行、Brewfileは cask/mas/vscode + tap固有パッケージのみに縮小just deploy/just cleanを deprecate し、Home Manager のhome.file/xdg.configFileに置き換えinstall.shを Nix (Determinate Installer) →home-manager switchフローに書き換え新ファイル
flake.nix/home.nix— Nix flake + Home Manager 設定nix/packages.nix— CLI パッケージリスト (nixpkgs)nix/dotfiles.nix— dotfile symlink 定義nix/shell.nix— activation scripts (sheldon lock, fzf-tab)tests/docker/NixHomeManager.Dockerfile— HM switch の Docker テストtests/docker/NixInstallTest.Dockerfile— install.sh の Docker E2E テスト.github/workflows/test-nix.yaml— Nix CI ワークフロー変更ファイル
.zshrc— Nix profile source 追加dump/Brewfile— cask/mas/vscode + tap のみに縮小install.sh— Nix install + HM switch フローに書き換えjustfile— Nix レシピ追加、deploy/clean deprecate、doctor 更新tests/test_just_sandbox.py— deploy テスト更新アーキテクチャ
Test plan
test-nix.yaml—nix build+ Docker HM test が通ることtest-just.yaml— 既存テストが壊れていないことshellcheck.yaml— install.sh が lint パスhome-manager switch --flake .が動作すること🤖 Generated with Claude Code