Install the working tree as dl-next, not as dl - #76
Merged
Merged
Conversation
dev.sh symlinked ~/.local/bin/dl at the released build's own name. On a machine where dl comes from pixi global, ~/.local/bin precedes ~/.pixi/bin on PATH, so the dev install silently shadowed the released one: every dl anyone typed -- including the ones opening real workspaces -- was whatever this tree happened to contain, and pixi global update appeared to stop working. Both entry points now install under a -next name, so the two builds sit on PATH together and the name says which is which. This is the arrangement wf and wf-next already use in blooop/wayfinder. AGENTS.md documents the split, including the part that bites: the install is editable, so dl-next is the tree as it stands right now, and dl writes to real metadata and real workspaces. XDG_CACHE_HOME and XDG_CONFIG_HOME already reach every path it stores, so a scratch directory is the whole sandbox.
Reviewer's GuideThis PR changes the dev installation so the working tree installs as Flow diagram for dev.sh installing dl-next and aid-next beside released dl/aidflowchart TD
User["Developer runs ./dev.sh"] --> dev_sh
dev_sh["dev.sh"] --> VenvDir["Create venv at ~/.local/share/devlaunch-dev"]
dev_sh --> EditableInstall["uv pip install -e (editable install of working tree)"]
EditableInstall --> VenvBinDl["venv/bin/dl"]
EditableInstall --> VenvBinAid["venv/bin/aid"]
dev_sh --> SymlinkLoop["for cmd in dl, aid"]
SymlinkLoop --> DlNextLink["~/.local/bin/dl-next -> venv/bin/dl"]
SymlinkLoop --> AidNextLink["~/.local/bin/aid-next -> venv/bin/aid"]
ReleasedDl["Released dl/aid from pixi global"] --> PixiBin["~/.pixi/bin/dl, ~/.pixi/bin/aid"]
PATH["PATH"] --> DlNextLink
PATH --> AidNextLink
PATH --> PixiBin
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
The first version of this listed dl and aid by hand, which is the same list that already went stale once: aid was added as a second entry point and dev.sh knew nothing about it. A missing -next does not announce itself -- the command keeps resolving to the released build while its change sits in the tree, looking tested. Also skips a declared script that did not make it into the venv, rather than leaving a dangling symlink on PATH to fail at the point of use.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #76 +/- ##
==========================================
+ Coverage 88.10% 88.81% +0.71%
==========================================
Files 11 11
Lines 1522 1574 +52
==========================================
+ Hits 1341 1398 +57
+ Misses 181 176 -5 🚀 New features to boost your workflow:
|
Merged
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.
dev.shsymlinked~/.local/bin/dl— the released build's own name. On a machine wheredlcomes from pixi global,~/.local/binprecedes~/.pixi/binon PATH, so the dev install silently shadowed the released one: everydltyped afterwards, including the ones opening real workspaces, was whatever this tree happened to contain, andpixi global updatelooked like it had stopped working.Both entry points now install under a
-nextname (dl-next,aid-next), so the two builds sit on PATH together and the name says which is which. Same arrangementwfandwf-nextalready use in blooop/wayfinder.AGENTS.mddocuments the split, including the two parts that bite:the install is editable, so
dl-nextis the tree as it stands right now — no build step to forget, but equally no snapshotdlwrites to real metadata, clone caches and devpod workspaces.XDG_CACHE_HOMEandXDG_CONFIG_HOMEalready reach every path it stores, so a scratch directory is the whole sandbox:Verified locally:
./dev.shcreates both symlinks and reports 0.0.9,dl-next --update-cacheunder scratch XDG dirs writes only into the scratch tree, andshellcheck dev.shis clean.🤖 Generated with Claude Code
Summary by Sourcery
Install the development working tree under distinct
-nextcommand names so it can coexist safely with the released binaries and document the dual-install setup and its implications for state and workspaces.Enhancements:
dl-nextandaid-nextsymlinks instead of shadowing the releaseddlandaidcommands.dev.shoutput to guide usingdl-next/aid-nextand demonstrate running them against isolated XDG cache/config directories.Documentation:
dl/aid) and working tree (dl-next/aid-next) installs, including how editable installs behave and how to sandbox their state.