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, andpackage.json - Constraint-aware: Respects version constraints (e.g.,
>=2.0,<3won'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
.gitignorepatterns 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-*.txtrequirements.in,requirements-dev.in,requirements-*.indev-requirements.txt,*-requirements.txt,*_requirements.txtpyproject.toml([project.dependencies]and[project.optional-dependencies])
Node.js
package.json(dependenciesanddevDependencies)
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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60d7188d46d78d7ef7d58e06020e11c77d32f96ff3516f16707317b8dbd383ee
|
|
| MD5 |
e527543da73e792cbd0d0d8d1944b34a
|
|
| BLAKE2b-256 |
a0588eda70acf7437eb0996f8c61d193f1f5e3e4cef1e72c8011ab703f91dfc0
|
File details
Details for the file upd_cli-0.0.1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: upd_cli-0.0.1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.9 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3561ad14372f0827b2a02eea2b23a16257022845c6dd0dfdc920ad5fd3d6f2bb
|
|
| MD5 |
0cf0b39a217ede756cbbfdb464cabe5d
|
|
| BLAKE2b-256 |
6b2937bc1f5d5b633d2b3191fcd9f7cb18bb106b42ae784c6cc8df696f4bab6e
|