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.0.3.tar.gz (98.3 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.0.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for uv_upsync-2.0.3.tar.gz
Algorithm Hash digest
SHA256 1fc9d3135d21bacc64773931b9a07c80d8da9a03023a9ef98fbb074ea84e3a55
MD5 bba986891ca13fe76cdda0697428a28f
BLAKE2b-256 6fc1bca975fcad4b26d8f6b2fd4fbda175fd6bb2d67878ce5f07446fcf04e99c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for uv_upsync-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a931ec7826aa71466b5dce4983d3753f1d056c2c933ef7b1bcfb8488193d98b6
MD5 4e83e555a394e3432926f9efe6b6dfe6
BLAKE2b-256 46a5b50abbfa760498998f944db3fe39503444db95e4691a8d7116af808ac994

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