Skip to main content

A fast dependency updater for Python and Node.js projects

Project description

upd

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

Features

  • Multi-format support: Updates requirements.txt, pyproject.toml, and package.json
  • Constraint-aware: Respects version constraints (e.g., >=2.0,<3 won't update to v3.x)
  • Major version warnings: Highlights breaking changes with (MAJOR) indicator
  • Format-preserving: Keeps your file formatting, comments, and structure intact
  • Pre-release filtering: Excludes alpha, beta, and release candidate versions
  • Gitignore-aware: Respects .gitignore patterns when discovering files
  • Fast: Async HTTP requests with caching for quick subsequent runs

Installation

From PyPI

pip install upd
# or with uv
uv pip install upd

From crates.io

cargo install upd

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
upd --no-cache

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 ([project.dependencies] and [project.optional-dependencies])

Node.js

  • package.json (dependencies and devDependencies)

Example Output

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

requirements.txt
  Would update pytest 7.2.0 → 7.4.3
  Would update black 23.1.0 → 23.12.1

Would update 4 package(s) (1 major, 2 minor, 1 patch) 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)
~2.0.0 Updates within 2.0.x range (npm)
>=2.0 Updates to any version >= 2.0
==2.0.0 No updates (pinned)

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.1.tar.gz (34.9 kB view details)

Uploaded Source

Built Distribution

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

upd_cli-0.0.1-py3-none-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: upd_cli-0.0.1.tar.gz
  • Upload date:
  • Size: 34.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for upd_cli-0.0.1.tar.gz
Algorithm Hash digest
SHA256 60d7188d46d78d7ef7d58e06020e11c77d32f96ff3516f16707317b8dbd383ee
MD5 e527543da73e792cbd0d0d8d1944b34a
BLAKE2b-256 a0588eda70acf7437eb0996f8c61d193f1f5e3e4cef1e72c8011ab703f91dfc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for upd_cli-0.0.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3561ad14372f0827b2a02eea2b23a16257022845c6dd0dfdc920ad5fd3d6f2bb
MD5 0cf0b39a217ede756cbbfdb464cabe5d
BLAKE2b-256 6b2937bc1f5d5b633d2b3191fcd9f7cb18bb106b42ae784c6cc8df696f4bab6e

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