Skip to main content

Editable Python installs in git worktrees without copying heavy dependencies.

Project description

devpy-runner

devpy is a small command for running Python commands through a git-worktree-local .venv overlay backed by a named conda environment.

It is meant for development repos where conda owns the heavy dependency stack and the worktree-local .venv owns editable installs.

Status

This is an early prototype. Version 1 is intentionally conda-only.

Install

From this checkout:

python -m pip install -e ".[dev]"

That exposes the command:

devpy --help

Repo Setup

Add devpy.toml at the git root of a repo that should use devpy:

[python]
base_conda_env = "my-conda-env"

[editables]
packages = [
  ".",
]

For multiple editable local packages:

[python]
base_conda_env = "my-conda-env"

[editables]
packages = [
  ".",
  "../some-sibling-package",
  "../another-sibling-package",
]

Editable paths are resolved relative to the git root. They may point to sibling checkouts. The .venv path defaults to .venv and must stay inside the git root.

Add .venv/ to .gitignore.

Usage

Show the current setup:

devpy info

Create .venv if needed and install configured editables:

devpy update-editables

Run normal commands through the worktree .venv:

devpy python script.py
devpy pip install -e .
devpy pytest

Remove the worktree .venv:

devpy clean

Behavior

devpy does this:

  1. Uses git rev-parse --show-toplevel to find the current git worktree root.

  2. Requires devpy.toml at that root.

  3. Creates .venv with:

    conda run -n <base_conda_env> --no-capture-output \
      python -m venv --system-site-packages .venv
    
  4. Runs normal commands with .venv/bin first on PATH.

  5. Sets PYTHONNOUSERSITE=1.

By default, update-editables uses pip install --no-deps -e ... because the base conda environment is expected to own dependencies. If a repo needs editable dependencies installed into .venv, set:

[editables]
install_deps = true
packages = ["."]

Unsupported By Design

Version 1 does not support uv-managed environments, non-conda base environments, or automatic dependency solving. Those can be added later if the conda-backed overlay workflow proves useful.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devpy_runner-0.1.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devpy_runner-0.1.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file devpy_runner-0.1.0.tar.gz.

File metadata

  • Download URL: devpy_runner-0.1.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for devpy_runner-0.1.0.tar.gz
Algorithm Hash digest
SHA256 71042498eeacd09c803834a44b6220e898eed8b1006bfda76e11d4f6ee47bc16
MD5 2ef16e03847a1b39a4ec37c2c1f36b6f
BLAKE2b-256 96df9aab6ee4ec36180a700d65f1af4817fc6ed9999e8c2ced6594bee56f31a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for devpy_runner-0.1.0.tar.gz:

Publisher: release.yml on alik-git/devpy-runner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devpy_runner-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: devpy_runner-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for devpy_runner-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 50742b8b794c48901f9c21b09d437e921c004d0f62c79d1b6f33a34dcba89f2b
MD5 059322989a1f942dcd240bd3a1ac319f
BLAKE2b-256 7aa5578c352463ace7d03bc4e612092fc592b6919b0fa419b9a49d4820d6c73f

See more details on using hashes here.

Provenance

The following attestation bundles were made for devpy_runner-0.1.0-py3-none-any.whl:

Publisher: release.yml on alik-git/devpy-runner

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page