Skip to main content

uv-upsync - is a tool for automated dependency updates and version bumping in pyproject.toml.

Project description

logo

License Python PyPI Release

Semantic_Release Imports Ruff mypy

Tests Linters Release Codecov

Downloads Stars

StandWithUkraine

Overview

uv-upsync - is a tool for automated dependency updates and version bumping in pyproject.toml.

Features

  • Fully type-safe
  • Automatically updates dependencies to their latest versions from PyPI
  • Multiple dependency groups support - handles project.dependencies, project.optional-dependencies, and dependency-groups
  • Selective group updates - target specific dependency groups for updates (e.g., only update project dependencies or specific optional-dependencies groups)
  • Selective package exclusion - exclude specific packages from being updated
  • Dry-run mode - preview changes without modifying files
  • Safe updates - automatically runs uv lock after updates and rolls back on failure

Installation

Proceed by installing the tool and running it:

uvx uv-upsync

Alternatively, you can add it into your development dependencies:

uv add --dev uv-upsync
# or
uv add uv-upsync --group dev

Usage and Configuration

By default, uv-upsync updates all dependencies in the pyproject.toml:

uv-upsync

Command-line Options

filepath

Type: Path

Default: ./pyproject.toml

Short flag: -f

Specifies the path to the pyproject.toml file. If your project file is located elsewhere or has a different name, you can set this parameter.

exclude

Type: str

Default: ()

Multiple values: allowed

Specifies packages to exclude from updating. You can provide multiple package names to prevent them from being updated.

group

Type: str

Default: ()

Multiple values: allowed

Specifies which dependency group(s) to update. You can target specific groups like project (for project.dependencies), optional-dependencies names, or dependency-groups names. If not specified, all groups are updated. This is useful when you want to update only certain parts of your dependencies.

dry-run

Type: bool

Default: false

Enables preview mode where changes are displayed without modifying the pyproject.toml file. This is useful for reviewing what would be updated before applying changes.

Examples

Excluding specific packages

uv-upsync --exclude click

# Skipping 'click>=8.1.8' (excluded)
# Skipping 'httpx>=0.28.1' (no new version available)
# Skipping 'tomlkit>=0.13.3' (no new version available)
# Updating dependencies in 'dependency-groups' group
# Skipping 'python-semantic-release~=10.4.1' (no new version available)
# Skipping 'poethepoet>=0.37.0' (no new version available)
# Skipping 'pyupgrade>=3.21.0' (no new version available)
# Skipping 'ruff>=0.14.0' (no new version available)
# Skipping 'commitizen>=4.9.1' (no new version available)
# Skipping 'mypy>=1.18.2' (no new version available)
# Skipping 'ruff>=0.14.0' (no new version available)
# Skipping 'coverage[toml]>=7.10.7' (no new version available)
# Excluding dependency 'pytest'
# Skipping 'pytest==7.4.4' (no new version available)
# Skipping 'pytest-cov>=7.0.0' (no new version available)
# Skipping 'pytest-lazy-fixture>=0.6.3' (no new version available)
# Skipping 'pytest-mock>=3.15.1' (no new version available)
# Skipping 'pytest-sugar>=1.1.1' (no new version available)
# Skipping 'sh>=2.2.2' (no new version available)
# Skipping 'xdoctest>=1.3.0' (no new version available)

Updating specific dependency groups

# Update only project dependencies
uv-upsync --group project

# Update only dev dependencies (assuming you have a 'dev' group)
uv-upsync --group dev

# Update multiple specific groups
uv-upsync --group project --group test

# Skipping 'optional-dependencies.dev' (skipping because not in specified groups)
# Skipping 'dependency-groups.test' (skipping because not in specified groups)
# Updating dependencies in 'project' group
# ...

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

uv_upsync-2.2.0.tar.gz (97.6 kB view details)

Uploaded Source

Built Distribution

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

uv_upsync-2.2.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file uv_upsync-2.2.0.tar.gz.

File metadata

  • Download URL: uv_upsync-2.2.0.tar.gz
  • Upload date:
  • Size: 97.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for uv_upsync-2.2.0.tar.gz
Algorithm Hash digest
SHA256 2d48676e960667b7d42612983b6ab380b31bf122d3133416d108463c2ccf1323
MD5 634389b9d5fe2f3d4b8ac9ab1afd4cad
BLAKE2b-256 f5743835208b83abf8937874eee354a16ebf20c48e78dc6e734c957956e07118

See more details on using hashes here.

File details

Details for the file uv_upsync-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: uv_upsync-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for uv_upsync-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d4ed176eb1c3d0f0af4cad7ecd1519291da1448c458da45aa6a6d489ee36fd
MD5 ad8f836c5a8ea66bb5b5179754eb580d
BLAKE2b-256 4b9c4c67397328b9c1a60ff593350f946ffb961d8d8f8d98c03df843a16e0729

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