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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for cksync-0.1.3.tar.gz
Algorithm Hash digest
SHA256 873ec52e34f2fdd1737ef61e48b5fddc3b3e014c23cf597bed8fa4fb7e6b6a56
MD5 e083c8aee51df6c0292bd6ddc8ad4dc7
BLAKE2b-256 2055f1be36e47e6f42297a8838a7a8cf7ade54567ef50c21589346e85997556b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cksync-0.1.3-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.13.7

File hashes

Hashes for cksync-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 490309b903de68ed6dd8de41ca7eb58f1ba49c1a91547020107804b164ec071d
MD5 7c004b0dae6883c233e7894537df80a5
BLAKE2b-256 3077b355bdd202d9b41345a821ab15f84e5a7e06bbe2edb22cf4c3e41d482b25

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