cksync
cksync verifies that your Python project's lockfiles contain the same packages and versions across different dependency management tools. This is especially useful when migrating between tools.
Dependency management tools can resolve dependencies differently. Fortunately, they all store their resolved dependencies in lockfiles. cksync analyzes these lockfiles to:
- Find any version mismatches between tools
- Report detailed differences when found
- Build confidence for safe tool migration
For example, when moving from Poetry to uv, cksync ensures your poetry.lock and uv.lock files specify the same versions for all packages, helping you avoid unexpected issues during the migration process.
Features
- 🚀 Fast Validation: Static analysis; no environment creation required
- 🔒 Build Confidence: Catch version mismatches before they cause production issues
- 🔄 Smooth Migrations: Safely transition between tools like Poetry and uv
- 👥 Team Flexibility: Allow team members to use their preferred tools while maintaining consistency
Installation
pip install cksync
Usage
Basic comparison of lockfiles in current directory:
cksync
With custom paths:
cksync --uv-lock uv.lock --poetry-lock poetry.lock --pyproject-toml pyproject.toml
if you don't have a pyproject.toml you can pass in your project name:
cksync --uv-lock uv.lock --poetry-lock poetry.lock --project-name my-project
Try out our example
cksync --poetry-lock src/examples/uv-poetry/poetry.lock --uv-lock src/examples/uv-poetry/uv.lock --pyproject-toml src/examples/uv-poetry/pyproject.toml
Recommendations
Migrating between Python dependency management tools can be challenging, especially for large applications. Some recommendations:
- Use PEP-621 for cross tool compatibility
- Run both tools in parallel during migration periods
- Support developers using different tools during transition phases
- Pin your dependency versions
- Use
cksyncto validate lockfile consistency before deployments
If you are smaller project likely you don't need cksync but it doesn't hurt to check.
License
cksync is licensed under the MIT License. See the LICENSE file for more details.
Authors
- Nick Grisafi - njgrisafi@gmail.com
Acknowledgments
- Thanks to Rich for making terminal output beautiful and helping developers create better CLI experiences.
Metadata
Release files for cksync 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cksync-0.1.3.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cksync-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.7 MB
Release files / cksync-0.1.3.tar.gz
| Download URL | cksync-0.1.3.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
873ec52e34f2fdd1737ef61e48b5fddc3b3e014c23cf597bed8fa4fb7e6b6a56
|
|
BLAKE2b-256 checksum How to use checksums |
2055f1be36e47e6f42297a8838a7a8cf7ade54567ef50c21589346e85997556b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / cksync-0.1.3-py3-none-any.whl
| Download URL | cksync-0.1.3-py3-none-any.whl |
|---|---|
| Size | 10.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
490309b903de68ed6dd8de41ca7eb58f1ba49c1a91547020107804b164ec071d
|
|
BLAKE2b-256 checksum How to use checksums |
3077b355bdd202d9b41345a821ab15f84e5a7e06bbe2edb22cf4c3e41d482b25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|