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.1.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.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cksync-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 85e7bb92ad096b49076c9ffca2e5d8485575f524d73c5eb13bd6600ce99db7c4
MD5 0604ce3ed67fdc90b8d245f6a14a7d8c
BLAKE2b-256 42eaff1e0c244db4b12d0c205040b01f32cb14734066ecff7ce78bb1405ea632

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cksync-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7edeee23efc4676bcff51d6f87b3914493e0d16480407229adb9f7954a3c63a4
MD5 8242969b10c0ad38be452b07cddc7e73
BLAKE2b-256 cfb24d6dca142cdbceebf2c442ad1a99cb7d07554e00ca94130c513a416b56b0

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