Skip to content

Support installation via uv tool for modern Python workflow #3

@korenmiklos

Description

@korenmiklos

Goal

Make bead installable via uv tool install bead to support modern Python development workflows using uv.

Dependencies

Background

uv is a modern, fast Python package and project manager written in Rust. Its uv tool command provides isolated tool installations similar to pipx, but with better performance and integration with uv's ecosystem.

Current Status

Already compatible - No changes needed to the package itself:

  • Has CLI entry point defined in pyproject.toml
  • Pure Python package (noarch)
  • Standard pyproject.toml configuration
  • All dependencies available on PyPI

Required Steps

1. Verify PyPI Publication

2. Test Installation

Once on PyPI, test the installation:

# Install bead as an isolated tool
uv tool install bead

# Verify it works
bead --version
bead --help

3. Document uv Installation Method

Update README.md to include uv installation:

## Installation

### Using uv (recommended for uv users)
```bash
uv tool install bead

Using pipx (recommended for isolation)

pipx install bead

Using pip

pip install bead

### 4. Test Advanced Features
- [ ] Test with specific Python versions: `uv tool install --python 3.12 bead`
- [ ] Test upgrade workflow: `uv tool upgrade bead`
- [ ] Test with version constraints: `uv tool install 'bead>=0.8.0'`
- [ ] Verify all CLI commands work correctly in uv's isolated environment

### 5. Optional: Add uv Configuration
Consider adding `.python-version` file or `tool.uv` configuration if needed:
```toml
# pyproject.toml
[tool.uv]
dev-dependencies = [
    "pytest>=7.0",
    "flake8>=5.0",
    # ... other dev deps
]

Benefits of uv tool support

  • Fast installation: uv is significantly faster than pip/pipx
  • Automatic isolation: Tools installed in isolated environments
  • Better dependency resolution: More reliable solver
  • Python version management: Can specify Python version per tool
  • Modern workflow: Increasingly adopted by Python community
  • Single tool: Users can use uv for both project and tool management

Testing Checklist

  • uv tool install bead works
  • bead command is available in PATH
  • All bead subcommands function correctly
  • uv tool upgrade bead works for updates
  • uv tool uninstall bead removes cleanly
  • No conflicts with system Python or other tools

Expected Behavior

After uv tool install bead:

  • bead command available globally
  • Isolated from system and project dependencies
  • Automatically uses compatible Python version
  • Can be upgraded/uninstalled via uv tool

Notes

  • No package changes required - uv tool uses standard PyPI packages
  • Works alongside pipx and pip installations
  • Users choose their preferred tool (uv, pipx, or pip)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions