Skip to content

Install the working tree as dl-next, not as dl - #76

Merged
blooop merged 2 commits into
mainfrom
feat/dev-installs-as-next
Aug 7, 2026
Merged

blooop merged 2 commits into
mainfrom
feat/dev-installs-as-next

Conversation

@blooop

@blooop blooop commented Aug 7, 2026

Copy link
Copy Markdown
Owner

dev.sh symlinked ~/.local/bin/dl — 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 typed afterwards, including the ones opening real workspaces, was whatever this tree happened to contain, and pixi global update looked like it had stopped working.

Both entry points now install under a -next name (dl-next, aid-next), so the two builds sit on PATH together and the name says which is which. Same arrangement wf and wf-next already use in blooop/wayfinder.

AGENTS.md documents the split, including the two parts that bite:

  • the install is editable, so dl-next is the tree as it stands right now — no build step to forget, but equally no snapshot

  • dl writes to real metadata, clone caches and devpod workspaces. XDG_CACHE_HOME and XDG_CONFIG_HOME already reach every path it stores, so a scratch directory is the whole sandbox:

    XDG_CACHE_HOME=/tmp/dl-scratch/cache XDG_CONFIG_HOME=/tmp/dl-scratch/config dl-next owner/repo
    

Verified locally: ./dev.sh creates both symlinks and reports 0.0.9, dl-next --update-cache under scratch XDG dirs writes only into the scratch tree, and shellcheck dev.sh is clean.

🤖 Generated with Claude Code

Summary by Sourcery

Install the development working tree under distinct -next command names so it can coexist safely with the released binaries and document the dual-install setup and its implications for state and workspaces.

Enhancements:

  • Change the dev installation script to create dl-next and aid-next symlinks instead of shadowing the released dl and aid commands.
  • Improve dev.sh output to guide using dl-next/aid-next and demonstrate running them against isolated XDG cache/config directories.

Documentation:

  • Expand AGENTS.md to document the separation between released (dl/aid) and working tree (dl-next/aid-next) installs, including how editable installs behave and how to sandbox their state.

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.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @blooop, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@sourcery-ai

sourcery-ai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Reviewer's Guide

This PR changes the dev installation so the working tree installs as dl-next/aid-next instead of shadowing the released dl/aid, and documents the dual-install and scratch-state workflow in AGENTS.md.

Flow diagram for dev.sh installing dl-next and aid-next beside released dl/aid

flowchart 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
Loading

File-Level Changes

Change Details Files
Dev installation script now installs entry points under -next names and updates usage guidance accordingly.
  • Expanded script header comments to explain dl-next/aid-next, editable install semantics, and XDG-based scratch state pattern.
  • Replaced single dl symlink logic with a loop that creates dl-next and aid-next symlinks into ~/.local/bin pointing at the venv’s console scripts.
  • Preserved safety checks around existing symlinks/non-symlinks while generalizing them to work per-command.
  • Updated post-install messaging to reference dl-next/aid-next commands and show example scratch XDG usage instead of plain dl invocations.
dev.sh
Documentation now explains the two-install model (dl vs dl-next) and how to run the working tree against scratch metadata and cache state.
  • Added a dedicated section describing released dl/aid from pixi global versus local dl-next/aid-next from dev.sh.
  • Documented that the dev install is editable (no build step, no snapshot) and that version reporting does not distinguish dev from release builds.
  • Outlined the impact on real metadata, clone caches, and devpod workspaces, and provided concrete XDG-based scratch directory invocation examples.
  • Clarified that scratch runs still create real devpod workspaces that must be managed like any others.
AGENTS.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

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

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.81%. Comparing base (218b901) to head (820ea7c).
⚠️ Report is 14 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            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     

see 1 file with indirect coverage changes

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@blooop
blooop merged commit b8bdd2f into main Aug 7, 2026
9 checks passed
@blooop
blooop deleted the feat/dev-installs-as-next branch August 7, 2026 21:55
@blooop blooop mentioned this pull request Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant