Skip to content

Conversation

@blooop
Copy link
Owner

@blooop blooop commented Jan 17, 2026

Summary

  • Rename dp CLI to dl (DevLaunch) across all code, tests, and completions
  • Update cache directory from ~/.cache/dp/ to ~/.cache/dl/
  • Add legacy cleanup for dp completions to ensure clean migration on existing installations

Test plan

  • All 273 tests pass
  • CI passes (format, lint, coverage)
  • Verify dl --install removes old dp completion blocks from .bashrc
  • Verify dl command works after pixi install

🤖 Generated with Claude Code

Summary by Sourcery

Rename the DevPod CLI wrapper to the new DevLaunch "dl" command and update associated configuration, cache paths, and completions accordingly.

Enhancements:

  • Update CLI entry point, help text, and user-facing messages from "dp" to "dl" including the main module name.
  • Change the CLI cache directory and completion cache path from ~/.cache/dp to ~/.cache/dl.
  • Adjust bash completion scripts and installation logic to use the new "dl" CLI while cleaning up legacy "dp" completion blocks.
  • Rename and update tests to target the new dl module and entry point.

Build:

  • Switch the console script entry point in pyproject.toml from the "dp" command to the new "dl" command.

Rename the devpod CLI wrapper from `dp` to `dl` (DevLaunch) for a cleaner
command name. Updates all references including module names, cache directories,
completions, tests, and adds legacy cleanup for machines with existing dp
installations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@sourcery-ai
Copy link
Contributor

sourcery-ai bot commented Jan 17, 2026

Reviewer's Guide

Renames the DevPod wrapper CLI from dp to dl (DevLaunch), updates cache paths and entry points accordingly, and adjusts bash completion installation to both use the new dl script and clean up legacy dp completion blocks from shell rc files.

Sequence diagram for dl completion installation and dp cleanup

sequenceDiagram
    actor User
    participant dl as dl_CLI
    participant completion as completion_module
    participant rc as ShellRCFile
    participant bash as BashCompletionScript

    User->>dl: run dl --install
    dl->>completion: install_all_completions(rc_path)
    completion->>rc: read rc file (if exists)
    rc-->>completion: existing content (may include dp completion block)
    completion->>completion: scan for RC_BLOCK_START patterns
    completion->>completion: map "# dp completion" to "# end dp completion"
    completion->>completion: remove existing dp completion block if present
    completion->>bash: load_completion_script(dl)
    bash-->>completion: dl.bash script (uses ~/.cache/dl/completions.json)
    completion->>rc: write combined completion script
    rc-->>completion: updated rc content (only dl completion block)
    completion-->>dl: return exit code 0
    dl-->>User: installation complete, dp completion cleaned up
Loading

Flow diagram for updated dl completion installation and cache usage

flowchart TD
    A[Start dl --install] --> B[Call install_all_completions]
    B --> C[Determine rc_path]
    C --> D[Open rc file or create if missing]
    D --> E[Read existing content]
    E --> F[Remove known completion blocks
including dp completion block
using RC_BLOCK_START to RC_BLOCK_END map]
    F --> G[Load rockerc bash completion script]
    G --> H[Load renv completion script]
    H --> I[Load aid completion script]
    I --> J[Load dl completion script
from dl.bash]
    J --> K[Combine scripts into single completion block]
    K --> L[Write combined script to rc file]
    L --> M[User opens new shell]
    M --> N[bash sources rc file]
    N --> O[dl completion function _dl_completion defined]
    O --> P[User types dl <TAB>]
    P --> Q[_dl_completion reads cache file
at ~/.cache/dl/completions.json]
    Q --> R[Suggest workspace completions]
    R --> S[End]
Loading

File-Level Changes

Change Details Files
Rename core CLI module, entry point, and user-facing help text from dp to dl while updating cache directory paths.
  • Renamed rockerc/dp.py to rockerc/dl.py and updated internal references to the module path for background cache updates.
  • Changed CACHE_DIR from ~/.cache/dp to ~/.cache/dl and kept CACHE_FILE pointing to the new location.
  • Updated all user-facing strings (help text, examples, error messages, and usage hints) to reference the dl command instead of dp.
  • Adjusted console entry point in pyproject.toml from dp = "rockerc.dp:main" to dl = "rockerc.dl:main".
rockerc/dp.py
rockerc/dl.py
pyproject.toml
Update tests to target the renamed CLI module and symbols under rockerc.dl instead of rockerc.dp.
  • Renamed test module from test_dp.py to test_dl.py to match the new CLI name.
  • Updated all unittest.mock.patch targets from rockerc.dp.* to rockerc.dl.* for functions like run_devpod, list_workspaces, and get_git_remote_url.
test/test_dp.py
test/test_dl.py
Switch bash completion from dp to dl and ensure legacy dp completion blocks are removed on installation.
  • Renamed bash completion script from dp.bash to dl.bash, including function name (_dl_completion), completion registration line, and cache file path to ~/.cache/dl/completions.json.
  • Extended completion.py’s rc-block start/end marker mapping to recognize old "# dp completion"/"# end dp completion" blocks so they can be removed during installation.
  • Updated the list of completion registration lines to include the legacy dp completion line for cleanup while changing install_all_completions to load the new dl script instead of dp.
rockerc/completions/dp.bash
rockerc/completions/dl.bash
rockerc/completion.py

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

@blooop blooop enabled auto-merge January 17, 2026 14:15
@blooop blooop disabled auto-merge January 17, 2026 14:15
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • Since the cache directory has been renamed from ~/.cache/dp to ~/.cache/dl, consider adding a small migration/cleanup step that copies or removes any existing ~/.cache/dp data so users don’t lose useful cached completions or accumulate stale files.
  • You might want to keep a temporary dp console_script entry point (invoking rockerc.dl:main with a deprecation warning) to ease the transition for users with existing dp aliases, scripts, or muscle memory.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Since the cache directory has been renamed from `~/.cache/dp` to `~/.cache/dl`, consider adding a small migration/cleanup step that copies or removes any existing `~/.cache/dp` data so users don’t lose useful cached completions or accumulate stale files.
- You might want to keep a temporary `dp` console_script entry point (invoking `rockerc.dl:main` with a deprecation warning) to ease the transition for users with existing `dp` aliases, scripts, or muscle memory.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@codecov
Copy link

codecov bot commented Jan 17, 2026

Codecov Report

❌ Patch coverage is 20.00000% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.04%. Comparing base (f7d4fd3) to head (14bc80b).

Files with missing lines Patch % Lines
rockerc/dl.py 20.00% 8 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #134   +/-   ##
=======================================
  Coverage   63.04%   63.04%           
=======================================
  Files           9        9           
  Lines        1840     1840           
=======================================
  Hits         1160     1160           
  Misses        680      680           
Files with missing lines Coverage Δ
rockerc/completion.py 89.39% <ø> (ø)
rockerc/dl.py 35.92% <20.00%> (ø)

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 closed this Jan 17, 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.

2 participants