Skip to main content

A fast dependency updater for Python and Node.js projects

Project description

upd

A fast dependency updater for Python, Node.js, Rust, and Go projects, written in Rust.

Features

  • Multi-ecosystem: Python, Node.js, Rust, and Go dependencies
  • Fast: Parallel registry requests for all dependencies
  • Constraint-aware: Respects version constraints like >=2.0,<3
  • Smart caching: 24-hour version cache for faster subsequent runs
  • Update filters: Filter by --major, --minor, or --patch updates
  • Major warnings: Highlights breaking changes with (MAJOR)
  • Format-preserving: Keeps formatting, comments, and structure
  • Pre-release aware: Updates pre-releases to newer pre-releases
  • Gitignore-aware: Respects .gitignore when discovering files

Installation

From crates.io

cargo install upd

From PyPI

pip install upd-cli
# or with uv
uv pip install upd-cli

From source

git clone https://github.com/rvben/upd
cd upd
cargo install --path .

Usage

# Update all dependency files in current directory
upd

# Update specific files or directories
upd requirements.txt pyproject.toml

# Dry-run mode (preview changes without writing)
upd -n
upd --dry-run

# Verbose output
upd -v
upd --verbose

# Disable colored output
upd --no-color

# Disable caching (force fresh lookups)
upd --no-cache

# Filter by update type
upd --major      # Show only major (breaking) updates
upd --minor      # Show only minor updates
upd --patch      # Show only patch updates

# Combine filters
upd --major --minor  # Show major and minor updates only

Commands

# Show version
upd version

# Check for upd updates
upd self-update

# Clear version cache
upd clean-cache

Supported Files

Python

  • requirements.txt, requirements-dev.txt, requirements-*.txt
  • requirements.in, requirements-dev.in, requirements-*.in
  • dev-requirements.txt, *-requirements.txt, *_requirements.txt
  • pyproject.toml (PEP 621 and Poetry formats)

Node.js

  • package.json (dependencies and devDependencies)

Rust

  • Cargo.toml ([dependencies], [dev-dependencies], [build-dependencies])

Go

  • go.mod (require blocks)

Example Output

pyproject.toml
  Would update requests 2.28.0 → 2.31.0
  Would update flask 2.2.0 → 3.0.0 (MAJOR)

Cargo.toml
  Would update serde 1.0.180 → 1.0.200
  Would update tokio 1.28.0 → 1.35.0

Would update 4 package(s) in 2 file(s), 15 up to date

Version Constraints

upd respects version constraints in your dependency files:

Constraint Behavior
>=2.0,<3 Updates within 2.x range only
^2.0.0 Updates within 2.x range (npm/Cargo)
~2.0.0 Updates within 2.0.x range (npm)
>=2.0 Updates to any version >= 2.0
==2.0.0 No updates (pinned)

Caching

Version lookups are cached for 24 hours in:

  • macOS: ~/Library/Caches/upd/versions.json
  • Linux: ~/.cache/upd/versions.json
  • Windows: %LOCALAPPDATA%\upd\versions.json

Use upd clean-cache to clear the cache, or upd --no-cache to bypass it.

Environment Variables

Variable Description
UV_INDEX_URL Custom PyPI index URL
PIP_INDEX_URL Custom PyPI index URL (fallback)
NPM_REGISTRY Custom npm registry URL
GOPROXY Custom Go module proxy URL
UPD_CACHE_DIR Custom cache directory

Development

# Build
make build

# Run tests
make test

# Lint
make lint

# Format
make fmt

# All checks
make check

License

MIT

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

upd_cli-0.0.4.tar.gz (45.3 kB view details)

Uploaded Source

Built Distributions

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

upd_cli-0.0.4-py3-none-win_amd64.whl (2.8 MB view details)

Uploaded Python 3Windows x86-64

upd_cli-0.0.4-py3-none-musllinux_1_2_x86_64.whl (2.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

upd_cli-0.0.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

upd_cli-0.0.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

upd_cli-0.0.4-py3-none-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

upd_cli-0.0.4-py3-none-macosx_10_12_x86_64.whl (2.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file upd_cli-0.0.4.tar.gz.

File metadata

  • Download URL: upd_cli-0.0.4.tar.gz
  • Upload date:
  • Size: 45.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for upd_cli-0.0.4.tar.gz
Algorithm Hash digest
SHA256 f352fd09182c163a22feaae88addf5b3f423748ae6aeea5d5d1a9c7d80df9a06
MD5 2b792cc7ae770aa52c6cf2b25a16dc5f
BLAKE2b-256 4cc64b1a44c11d6d409443bf8559a5b20f99e3d3644e518f86087c7362cc304b

See more details on using hashes here.

File details

Details for the file upd_cli-0.0.4-py3-none-win_amd64.whl.

File metadata

  • Download URL: upd_cli-0.0.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for upd_cli-0.0.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 200c6f01bbd7eb9fd23455790042490cefa035e44b284021d7518be968704519
MD5 27ae5e7fb29dcb86fcb50964284a5433
BLAKE2b-256 7e97af01361fc7bae37f65e5298c36c03b3a23e401443630a8a31fa13c7bb135

See more details on using hashes here.

File details

Details for the file upd_cli-0.0.4-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for upd_cli-0.0.4-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bacadaef5ae72da44520a861bae6ecc1d26fa010e629783cdc12dfca38f71a8e
MD5 5c107fec24433377f02bb1f9ac037ee2
BLAKE2b-256 bc2395cfc892081a2004f6e3439c79534b7898b6844d123ed3e1965cd964fef0

See more details on using hashes here.

File details

Details for the file upd_cli-0.0.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for upd_cli-0.0.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5341c311bc6c3363e090ae4b100c3620c3d907fb07fea4ddbc02bafdeb20d6b0
MD5 fd602f548b514abec274dd06b343c4f6
BLAKE2b-256 0397e660dbcbdfcb0d2b717c31f74e41e3320488670c8b2217e027bc99da75ea

See more details on using hashes here.

File details

Details for the file upd_cli-0.0.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for upd_cli-0.0.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 862595f15b00a59a5768c8ca4d78b0c52146c68db667a83d304f4d9b526a98af
MD5 adc67b48e681de64729a55dc907d526c
BLAKE2b-256 af3dc6dc7cd48c0bea164eeba505d2872f4acc401485610e12a9c170cd025e0c

See more details on using hashes here.

File details

Details for the file upd_cli-0.0.4-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for upd_cli-0.0.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ab6c55571c602a46595b78c44aee698125ccb7450469dd9bbabf602fb6190f02
MD5 eec0da39003215bdd6eac167d7631ae1
BLAKE2b-256 e866588f085e072a5e4355ec456ba76c36d5ea688c84c29a6537bd98ec5d8880

See more details on using hashes here.

File details

Details for the file upd_cli-0.0.4-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for upd_cli-0.0.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2d58505cf64244b11a64587ca435f6f44951757be5e8e42d1a2f7558f593c0a6
MD5 9d8d16bc8985e0a1670505b7b5e834fd
BLAKE2b-256 fa55c6b906f561ae5587a7ab9a5d8fcaa42e02c22fb3f8862ae1382c17372861

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