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.0.tar.gz (96.1 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.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for uv_upsync-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f96875dff8c313cbe5c2f7dee16a97fd0b43c24e13fc1b13488ffeed4c2792f4
MD5 f6b16d4c8059f541812ed48f3124f894
BLAKE2b-256 a846beb77b1be4bea9e097627373db99cefe6791b8b36aaf1a9aef2ade1a4968

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for uv_upsync-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9e02ce821b3fae61404668eab8ae0693c0c439c920bb09cd7355f4605a94ab2
MD5 6ee924c406249154e85c65f0817bdf88
BLAKE2b-256 b89bbe45b785b3205225368a84eb57bfff531dd079221a159f6772a9b657b029

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