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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for uv_upsync-2.0.2.tar.gz
Algorithm Hash digest
SHA256 dec800e0746dd424951990f82604226c23721ea02739978a0364624c8e47d250
MD5 d2fab258a4669a58cf215a9ae3e65b9e
BLAKE2b-256 ec8a94f0fea4f3dcc36441e87514841ef152469f680e9340feb7336093dd4af5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: uv_upsync-2.0.2-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.9

File hashes

Hashes for uv_upsync-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1e9e8190ea946ca71451f1ba957c79552a04a931983a7ab163496730203135cf
MD5 3fbcaa53bf839c0978b8a3092ba8bf9a
BLAKE2b-256 e2e9fa36236b41d7c2e9dd374137d20aa912f5aff6f6c756b1fd56a0e7077068

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