Skip to content

Clones outside repos_dir and dl path or url workspaces #452

Description

@blooop

Question

Clones outside repos_dir, and workspaces from dl <path> or dl <git-url>: is leaving them still right?

--purge deliberately leaves three things it created, and names them before it asks: a config.toml that points repos_dir outside the cache puts clones where the purge does not remove them, and dl ./some/path and dl <git-url> open a source dl did not clone, so it cannot tell them from a workspace made by hand. The documented reasoning is that erring this way costs a command and the other kind of mistake costs work that cannot be got back, which is principle 1 stated in advance.

So this ticket probably confirms the status quo. It is a ticket anyway because principle 2 makes "we leave it and never mention it again" a thing that has to be chosen, and because the same reasoning has to be checked against --prune rather than only --purge:

  • --prune is scoped by repos_dir, so a config.toml moving repos_dir moves the scan with it. Confirm that is true of every new reclaim path this map adds, and that a scratch XDG_CACHE_HOME run still finds nothing.
  • Are these left artifacts discoverable? Principle 2 is satisfied by "the user can see it and decide" far more cheaply than by reclaiming. If dl --ls --size or the purge's own "leaving N" list already names them, the gap may be reporting rather than reclamation.
  • A dl <path> workspace still gets a devpod workspace, an image, and volumes. The clone is not ours to delete; the rest may be. Say which side of the line each artifact falls on, because "we did not clone the source" does not mean "we caused nothing".

How the answer gets tested: the existing purge tests already pin the "leaving" list; extend rather than replace them, and add one asserting a scratch-cache run of every new reclaim path removes nothing.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions