7
GitHub Stars
1
Bundled Files
3 weeks ago
Catalog Refreshed
2 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstart where the catalogue uses aiagentskills.
npx veilstart add skill keboola/ai-kit --skill migrate-component-to-uv- SKILL.md11.4 KB
Overview
This skill migrates Keboola Python packages from legacy setup.py and pip workflows to a modern pyproject.toml + uv build system with deterministic uv.lock dependencies. It codifies Keboola migration patterns used for python-http-client and python-component to update packaging, CI workflows, and release flows. The result is reproducible builds, clearer CI, and safer TestPyPI/PyPI releases.
How this skill works
The skill inspects repository files (setup.py, requirements.txt, workflows, and test suite) to determine migration scope and minimum Python support. It creates a pyproject.toml, removes legacy files, generates uv.lock, and updates GitHub Actions to install and run via uv (uv sync, uv run, uv build). It also guides versioning, secret configuration, and TestPyPI validation steps to ensure a smooth production release.
When to use it
- You maintain a Keboola Python package using setup.py or requirements.txt
- You want deterministic dependency management with uv.lock
- You need to update CI/CD to use uv and modern GitHub Actions patterns
- You plan to publish to TestPyPI and PyPI with uv-managed workflows
- You want to follow Keboola’s established migration patterns and tooling
Best practices
- Run linting and fix all issues before changing packaging so migration diffs are focused
- Use 2–3 logical commits: lint baseline, pyproject metadata, CI/workflows + lock file
- Test using a next-minor version on TestPyPI (e.g., 1.7.0) before publishing production version
- Adopt a smart Python matrix: min-supported + two latest stable versions
- Keep docs tooling tracked in dev dependencies (add pdoc3 to dev if docs workflow exists)
Example use cases
- Migrate a component from setup.py to pyproject.toml and ensure uv.lock is generated
- Replace pip-based CI with uv sync/uv run and add uv-based build and publish steps
- Validate package on TestPyPI using uv-initated environment and confirm import works
- Standardize workflows across Keboola repos following python-http-client migration templates
- Update project to use deterministic dependency resolution for reproducible CI builds
FAQ
Ensure a clean git working tree, a pytest test suite, access to GitHub secrets, and PyPI/TestPyPI accounts.
How many commits should I make for the migration?
Prefer three logical commits: lint fixes, pyproject.toml and metadata, then CI/workflow changes plus uv.lock; adapt as needed.