Skip to content

Order the README for human readers first, release 0.1.3 - #272

Merged
blooop merged 5 commits into
mainfrom
improve_readme
Aug 20, 2026
Merged

blooop merged 5 commits into
mainfrom
improve_readme

Conversation

@blooop

@blooop blooop commented Aug 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • The README is reordered for people, not lookups. The options table, the workspace id
    derivation, and the ~600 lines of purge/prune/reconcile and disk accounting came before
    anything a reader types, and ## Examples sat at line 1209 of 1620. The top half is now
    features → install → usage (with the examples folded in beside the command shapes) →
    workspace commands → the dl --ls global table → aid → zellij pane → auth → tools →
    completion. A rule and one line mark where reference begins.
  • ## Global Commands is split. Its table stays in the human half; the five deep
    subsections beneath it become ## Cleaning up: purge, prune, reconcile, so dl --ls is no
    longer documented 600 lines down.
  • ## Workspace Sources was a duplicate of the ## Examples code block — folded into one
    canonical list, now ### Examples under Usage.
  • Header: a three-line orientation paragraph and a two-row index. The badge wall keeps its
    place but loses the ## Continuous Integration Status heading, so the first section is about
    the tool.
  • Release 0.1.3 — version bumped in rust/Cargo.toml (the single source) with
    rust/Cargo.lock and a CHANGELOG.md entry to match.

No heading text was renamed and nothing describing a command's behaviour changed.

Test plan

  • prek run --from-ref origin/main --to-ref HEAD — all hooks pass (codespell, end-of-file,
    mixed-line-ending, check-toml).
  • All 13 internal ](#anchor) links resolve against the new heading set (checked
    mechanically, not by eye).
  • A sorted line-diff of old vs new README shows the only content removed is the duplicate
    Workspace Sources block, the three retitled/absorbed headings, and reworded example
    comments — the reorder is otherwise byte-preserving.
  • CI's packaging job asserts the wheel version equals rust/Cargo.toml's and builds
    --locked, which is what checks the lockfile edit below.

Review notes

  • rust/Cargo.lock was edited by hand. No cargo is available in this devcontainer, so the
    five workspace crates' version lines (aid, dl, devlaunch-core, devlaunch-runner,
    devlaunch-test-support) were bumped directly — deliberately leaving the two third-party
    packages that also sit at 0.1.2 (dirs-sys-next, iana-time-zone-haiku) alone. The diff
    is 5 lines, the same shape as Release 0.1.1 #269's and Release 0.1.2 #271's. --locked in CI is the check.
  • pixi.lock was already modified in the working tree before this work and is unrelated,
    so it is deliberately not in this PR.
  • Bumping the version for a docs-only change means merging this publishes 0.1.3 to PyPI and
    prefix.dev via Auto-publish. That was asked for explicitly; say the word and I will drop
    the release commit and leave the entry under [Unreleased].
  • ## Measuring launch time still shows $ dl --version → dl 0.1.0 as sample output. It was
    already stale before this PR and is illustrative, so it is left alone rather than churned.

🤖 Generated with Claude Code

Summary by Sourcery

Improve the reader-facing documentation and CLI help flow, then release the changes as version 0.2.1.

Enhancements:

  • Reorder the README around the information readers need first, with usage examples, commands, and orientation ahead of detailed reference material.
  • Reorganize the CLI help layout so examples and workspace verbs appear before options, and add a test to preserve that ordering.
  • Clarify the Rust rewrite documentation to reflect the updated help-layout behavior.

Build:

  • Bump the Rust workspace release version from 0.2.0 to 0.2.1 and synchronize workspace lockfile and version assertions.

Documentation:

  • Add changelog entries documenting the reordered CLI help and README structure while preserving existing command behavior and anchors.

Tests:

  • Add coverage verifying the relative ordering of examples, workspace commands, options, and environment details in CLI help.

blooop added 2 commits August 20, 2026 15:11
The options table, the workspace id derivation and the ~600 lines of
purge/prune/reconcile and disk accounting came before anything a reader
types, and `## Examples` sat at line 1209 of 1620.

The top half is now what someone needs on the way in: features, install,
usage with the examples folded in beside the command shapes, workspace
commands, the `dl --ls` global table, `aid`, the zellij pane, auth, tools,
completion. A rule and one line mark where reference begins.

Two structural moves beyond the reordering:

- `## Global Commands` is split. Its table stays up top; the five deep
  subsections below it become `## Cleaning up: purge, prune, reconcile`,
  so `dl --ls` is no longer documented 600 lines down.
- `## Workspace Sources` was a duplicate of the `## Examples` block. It is
  folded into the one canonical list, now `### Examples` under Usage.

The header gains a short orientation paragraph and a two-row index. The
badge wall keeps its place but loses the `## Continuous Integration
Status` heading, so the first section is about the tool.

No heading text was renamed: all 13 internal anchors still resolve, and
nothing describing a command's behaviour changed.

@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 20, 2026

Copy link
Copy Markdown

Reviewer's Guide

Reorders and rewrites the README so that human-oriented onboarding (features, install, usage and examples, workspace/global commands, aid, zellij, auth, tools, completion) is at the top and all deep reference material is clearly separated, while bumping the devlaunch Rust workspace version to 0.1.3 and recording the release in the changelog. No command behavior or documented semantics change; only structure, examples, and orientation text are updated.

Flow diagram for reordered README structure and reference boundary

flowchart TD
  A[Header: orientation + badges + index] --> B[Features]
  B --> C[Installation]
  C --> D[Usage + Examples]
  D --> E[Workspace_Commands]
  E --> F[Global_Commands]
  F --> G[aid]
  G --> H[A_terminal_beside_the_agent]
  H --> I[GitHub_authentication]
  I --> J[Tools_in_every_workspace]
  J --> K[Shell_completion]
  K --> L[[Reference_boundary_rule]]
  L --> M[Options]
  M --> N[Workspace_IDs]
  N --> O[Cleaning_up_purge_prune_reconcile]
  O --> P[Shared_pixi_package_cache]
  P --> Q[Worktree_backend]
  Q --> R[Measuring_launch_time]
  R --> S[Going_back_to_the_Python_build]
  S --> T[Development]
Loading

File-Level Changes

Change Details Files
Restructure README into a human-first layout with a short orientation header, clear index, and separation between usage docs and reference material, keeping command behavior documentation intact.
  • Replace the old CI status heading at the top with a three-line interface description of dl owner/repo@branch and how it works.
  • Add two-row index blocks labeled Start here and Reference that link to key sections (features, installation, usage, workspace/global commands, aid, zellij pane, GitHub auth, tools, completion, options, workspace IDs, cleaning up, pixi cache, worktree backend, launch timing, development).
  • Introduce a new ## Features section near the top summarizing fuzzy selection, smart completion, GitHub shorthand, branch syntax, autocomplete performance, and devpod round-trip behavior.
  • Move and normalize usage examples into a single ### Examples subsection under ## Usage, rewording comments slightly but preserving behavior.
  • Create a dedicated ## Workspace Commands section early in the doc with the verb table and follow-on explanation of argument ordering and --stop/--rm flags.
  • Split ## Global Commands so that only the global table remains under ## Global Commands, and the deep purge/prune/reconcile/disk accounting material is moved/retitled into ## Cleaning up: purge, prune, reconcile.
  • Relocate and lightly reframe sections on zellij panes, options, dotfiles-on-attach, shared pixi cache, worktree backend, shell completion, workspace IDs, and cleaning/measurement so that the top half of the README is focused on how to use the tool and the lower half is clearly marked as reference.
  • Insert a horizontal rule and explanatory paragraph that explicitly marks the boundary between usage material and reference internals.
  • Move the Python roll-back section (Going back to the Python build) down into the reference portion instead of near the top.
README.md
Remove duplicated workspace source examples and fold their content into the canonical usage examples.
  • Delete the ## Workspace Sources section that duplicated workspace creation examples.
  • Ensure the examples previously under Workspace Sources are represented in the new ### Examples block under Usage with consistent wording.
  • Verify that only the duplicated block and absorbed headings are actually removed; other text is preserved byte-for-byte aside from reordering and minor comment rewording.
README.md
Preserve and validate internal anchors and headings despite the README reordering, ensuring all internal links still resolve.
  • Retain all existing heading text (no renames), even when sections are moved, so ](#anchor) links remain valid.
  • Confirm mechanically that all 13 internal ](#anchor) links still resolve against the new heading layout.
  • Add anchor-consistent headings for any newly introduced or split sections (e.g., cleaning up, features) to keep intra-README navigation coherent.
README.md
Document release 0.1.3, focusing on the README restructure, in the changelog.
  • Add a new ## [0.1.3] - 2026-08-20 section under [Unreleased] in CHANGELOG.md.
  • Describe the README reorder and related documentation-only changes under a ### Changed subsection, explicitly noting that no documented behavior changed and all anchors still resolve.
CHANGELOG.md
Bump the devlaunch Rust workspace version from 0.1.2 to 0.1.3 and align the lockfile with the new version for workspace crates.
  • Update [workspace.package] version from 0.1.2 to 0.1.3 in rust/Cargo.toml, which is the single source of truth for the version.
  • Edit rust/Cargo.lock by hand to bump the five workspace crates (aid, dl, devlaunch-core, devlaunch-runner, devlaunch-test-support) from 0.1.2 to 0.1.3, leaving third-party crates at 0.1.2 unchanged.
  • Rely on CI's packaging job with --locked to validate that the lockfile version bumps are consistent and buildable.
rust/Cargo.toml
rust/Cargo.lock

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

@codecov

codecov Bot commented Aug 20, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.26%. Comparing base (ba98fad) to head (f33e032).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #272   +/-   ##
=======================================
  Coverage   93.26%   93.26%           
=======================================
  Files          25       25           
  Lines        3771     3771           
=======================================
  Hits         3517     3517           
  Misses        254      254           

Impacted file tree graph

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

blooop added 2 commits August 20, 2026 15:40
The README reorder was only half the job: `dl --help` had the same shape
it was complaining about. clap's default template renders `{all-args}`
— every one of the fourteen flags — between the usage line and the
`after_help` block, so the half of this CLI clap cannot describe from
its own arguments, the verbs and the examples somebody opened `--help`
to find, sat underneath the options nobody did.

`before_help` now carries the examples (first) and the workspace verbs,
and `help_template` is clap's own default with `{before-help}` moved
from the top to just above `{all-args}`. `Environment:` splits off into
`after_help`, where it stays last: it is read once and put in a shell
profile. Same flags, same verbs, same words, for both `-h` and
`--help` — a different order on screen.

`help_template` is a string clap resolves at render time, so a marker
that stops resolving is not a compile error, it renders literally and
takes its section with it. One test pins the section order, which is
what catches that.
`devlaunch-test-support`'s `versioned_with_the_workspace` asserts the
crate's inherited version against a literal and cannot read it any other
way, so it has to move with every release — the step 0.1.2's release
commit documented after the 0.1.1 bump forgot it and left a developer's
`cargo test --workspace` red. No CI job runs that crate, so nothing but
running the suite catches it. Ran it; it was red; it is green.

Also expands the changelog entry to cover the `--help` reorder.
@blooop

blooop commented Aug 20, 2026

Copy link
Copy Markdown
Owner Author

dl --help now matches

The first pass was README-only, which left the actual CLI printing the shape the README was being fixed for. Two commits added:

  • 3fdc4a5 — dl --help reordered. clap's default template puts {all-args} (all fourteen flags) between the usage line and after_help, so the verbs and examples — the half of the grammar clap cannot describe from its own arguments — rendered below the options. before_help now carries examples-then-verbs, help_template is clap's own default with {before-help} moved above {all-args}, and Environment: splits into after_help where it stays last. Applies to -h and --help alike. A unit test pins the section order, because help_template is resolved at render time — a marker that stops resolving is not a compile error.
  • 0934eb5 — finishes the version bump, and this one is a real catch rather than bookkeeping. devlaunch-test-support's versioned_with_the_workspace asserts the inherited version against a literal, and no CI job runs that crate — the rust-parity job names the other four. So the 0.1.3 bump in 83c5089 left cargo test --workspace red, exactly as the 0.1.1 bump did (see 624fc79's message). Fixed here.

Verification

The earlier "hand-edited Cargo.lock, verified only by CI" note is retracted — a toolchain turned out to be installable in the container (pixi global install rust gives 1.97.1, the pinned version), so everything below was actually run:

  • cargo test --workspace --no-fail-fast — 1432 pass, 0 fail.
  • cargo clippy --locked --all-targets -- -D warnings — clean. --locked succeeding is what confirms the hand-edited lockfile.
  • cargo fmt --check — clean.
  • dl --help and dl -h rendered and read by eye.
  • prek run on the staged diff — all hooks pass.

Two things deliberately left alone

  • aid --help keeps Options above Examples. rust/tools/parity_cases.txt has --aid -- --help as a live case, so that text is compared byte-for-byte against the frozen Python reference. Reordering it means breaking parity or unfreezing 0.0.29. Worth a follow-up that declares it a divergence row; not worth smuggling into this PR.
  • Environment: in --help and the README's options table list different variables — help has DEVLAUNCH_TIMING and DEVLAUNCH_NO_GH_TOKEN that the README omits, the README has DEVLAUNCH_NO_TTY that help omits. Pre-existing in both directions, and reconciling them is a content decision rather than a layout one.

🤖 Generated with Claude Code

main released 0.2.0 and retired the `prune` verb while this sat, so three
things needed hand-resolving rather than a hunk pick:

- **Version.** 0.1.3 here vs 0.2.0 released on main, so this becomes
  0.2.1: `rust/Cargo.toml`, the five workspace crates in `Cargo.lock`,
  and `devlaunch-test-support`'s version tripwire.
- **The README conflicted structurally, not textually.** This branch
  moved whole sections; main edited four places in the old positions, so
  git matched moved text against in-place edits and produced hunks whose
  two sides were unrelated prose. Resolved by taking this branch's
  ordering and applying main's four changes at their new anchors: the
  `rm, prune` -> `rm` table row, the `--stop`/`--rm` suffix and retired
  `prune` sections (under `## Workspace Commands`, where they belong),
  the CI-uid paragraphs in the pixi cache section, and
  `### The prebuilt dev container image`. A sorted line diff against
  main confirms nothing of main's was dropped.
- **`--help`'s new prose moved into `GRAMMAR`.** main added the suffix-flag
  and retired-`prune` notes to the epilogue; they are grammar, so they
  belong above the options table with the verbs, not below with the
  environment. One wording fix fell out of the move: main's "it collided
  with --prune above" pointed at an options table that is now below, so
  it reads "the --prune flag below".

Verified: cargo test --workspace 1448 pass / 0 fail, clippy --locked
--all-targets -D warnings clean, cargo fmt --check clean, prek clean,
`dl --help` and `dl --version` (0.2.1) read by eye.
@blooop
blooop merged commit 54c21f7 into main Aug 20, 2026
15 checks passed
@blooop
blooop deleted the improve_readme branch August 20, 2026 18:13
blooop added a commit that referenced this pull request Aug 20, 2026
0.2.1 went out from main while this branch was open (#272, the --help and README
reordering): tag v0.2.1 is on main's tip and the GitHub release exists. So the
version bump here had to move, and it is not a cosmetic renumber -- Auto-publish
skips a version it finds already tagged, so merging this branch claiming 0.2.1
would have published nothing at all and said so only in a log nobody reads.

Cargo.toml, Cargo.lock and devlaunch-test-support's version pin go to 0.2.2, and
the changelog keeps both sections: their 0.2.1 as shipped, this branch's notes
under 0.2.2 above it.

The README conflict is main's reordering rather than a disagreement. That commit
moved the whole reference half of the document, including `## The shared pixi
package cache`, and left a short intro where it used to be -- so this takes
main's text at that position outright and re-places `### Where the tools
themselves land` where its neighbours went, still between the shared-cache
section and the recreate note. Same for the earlier conflict in this branch:
main's shared-cache uid paragraph and this branch's subsection were both
insertions at one point, and both are kept.
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