Skip to main content

cksync before you change dependency mgmt tools!

Project description

cksync

cksync Logo

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 cksync to 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

Acknowledgments

  • Thanks to Rich for making terminal output beautiful and helping developers create better CLI experiences.

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

cksync-0.1.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

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

cksync-0.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cksync-0.1.0.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cksync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 635adb4d1b89950e686d5a8b0ac6235c2995b806d1e59d28a8fd2c095bd44906
MD5 8d28e1d3a017fa81d71c92a157de249c
BLAKE2b-256 73d9b8e9734637334fc9741711b1ecc60cba84e674673fd95283b20ff7fec43a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cksync-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cksync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4afcee672a7437305a0461181d3441cac12cf84f4fc02b105c34b4f0d5417670
MD5 79305891046e1796381543d0a908b06f
BLAKE2b-256 0faa5aba56c5268e23abe34ed5fdb26a64ef5a044cf63afe504fb80f478d70be

See more details on using hashes here.

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