refactor: rename deploy target to link#360
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Renames the dotfiles “deploy” mechanism to “link” across the repo to better reflect that the script creates symlinks (and to pair with the existing unlink target).
Changes:
- Renamed the Makefile target from
deploytolinkand updatedunlinkto usebin/link.py. - Renamed/refactored the Python script API and constants from deploy terminology to link terminology.
- Renamed the GitHub Actions workflow/job and updated CI steps to run
make link, plus updated README references.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| README.md | Updates setup instructions and targets table to use link/unlink terminology. |
| Makefile | Replaces deploy target with link and points unlink at bin/link.py. |
| bin/link.py | Renames internal deploy naming to link naming and updates CLI text. |
| .github/workflows/link.yml | Renames CI job/steps from deploy to link and updates Make invocation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+68
to
+70
| > **Dotfiles linking.** `make switch` manages packages and system settings only. Configuration files (git, mise, nvim, tmux, uv, ghostty, sheldon, zsh, and `~/.claude`) are linked separately by `make link`, which symlinks them directly to the working tree so edits take effect immediately without a rebuild. | ||
| > | ||
| > **Migrating an existing machine.** If these files were previously managed by Home Manager (symlinks into `/nix/store`), run `make switch` first — Home Manager removes the old store symlinks on activation — then `make deploy`. `deploy` is strict: it aborts if a destination already exists. Resolve any reported conflicts and re-run. Use `make unlink` to remove the symlinks. | ||
| > **Migrating an existing machine.** If these files were previously managed by Home Manager (symlinks into `/nix/store`), run `make switch` first — Home Manager removes the old store symlinks on activation — then `make link`. `link` is strict: it aborts if a destination already exists. Resolve any reported conflicts and re-run. Use `make unlink` to remove the symlinks. |
Comment on lines
+80
to
84
| | `link` | Link dotfiles as working-tree symlinks (run after `switch`) | | ||
| | `unlink` | Remove the dotfile symlinks created by `link` | | ||
| | `update` | Update flake inputs | | ||
| | `gc` | Delete old generations (keep last 7) and run garbage collection | | ||
| | `brew-install` | Install Homebrew | |
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.
What
Renames the
deployMake target tolink, so it forms a symmetric pair with the existingunlinktarget and precisely names what it does (it symlinks dotfiles into the working tree — the script even printsLINK ...).Changes
Makefile:deploytarget →link(bothlink/unlinknow callbin/link.py)bin/deploy.py→bin/link.py:deploy()→link(),DEPLOY_MAP→LINK_MAP, argparse description and error string updated.github/workflows/deploy.yml→.github/workflows/link.yml: jobdeploy→link, step names andmake deploy→make linkREADME.md: structure tree, setup steps, deployment note, and targets table all updatedgit grep -in deployreturns no matches — the repo reads as ifdeploynever existed.Note
The CI job is now named
linkinstead ofdeploy. If a branch-protection rule requires a status check nameddeploy, update it tolink.🤖 Generated with Claude Code