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
Built Distributions
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.3.tar.gz.
File metadata
- Download URL: upd_cli-0.0.3.tar.gz
- Upload date:
- Size: 41.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e063131c64661e6bf956f5686c0c318643cc18e4bca164f5f47129c053cf7818
|
|
| MD5 |
e8d9388dc08693b2633ff53d03029853
|
|
| BLAKE2b-256 |
6ba48f1e109c0a77d3184a1a5cf6e2544e5f9c9f6544b1b44283487ce3e71f25
|
File details
Details for the file upd_cli-0.0.3-py3-none-win_amd64.whl.
File metadata
- Download URL: upd_cli-0.0.3-py3-none-win_amd64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9903ba59fb454a6c072727f72346943668440da7139963060d7ca6059bfadbfd
|
|
| MD5 |
c871cfabd4760f20bc1ad286c170d44e
|
|
| BLAKE2b-256 |
fe6d6761105cf281d6b1dc8962d7da15706b986195861cfc344a53cf300a0077
|
File details
Details for the file upd_cli-0.0.3-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: upd_cli-0.0.3-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d891d813285534c9f811e09ca924ec637606288ffa8047a54db2fb967ba8e1a
|
|
| MD5 |
6b62d3755768b53a4ef3142cacd8f1d5
|
|
| BLAKE2b-256 |
19f4983866ea7f82fc678c9b04803ce289b261df6ce4b4b20233944b023674ef
|
File details
Details for the file upd_cli-0.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: upd_cli-0.0.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9580822530ba4b5cbb5bda3e3d082d60837c997b845d3b5d9f619da3a37abd74
|
|
| MD5 |
0a3ccf1986d57a6b5685c347dbb04c80
|
|
| BLAKE2b-256 |
956e37f5e263da6a4434e604757d9a8a908a97406c78b87545e3dfc1ddbb5119
|
File details
Details for the file upd_cli-0.0.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: upd_cli-0.0.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a20c4de2f2673aae3d123bbd2c447fdc8b19e44a12be6642a4734e87d3be41b
|
|
| MD5 |
8e4a6b9cdcf56582f7442dc52dc2d2f4
|
|
| BLAKE2b-256 |
42b499acf795645f09a0bd0b15cc909ab40c5f5262a10b5f2c65eb6123a9609b
|
File details
Details for the file upd_cli-0.0.3-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: upd_cli-0.0.3-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53b8bc43d5a364ab333b4dd978ff4e8ef4a8123c7968f8e7936dacba3055f04d
|
|
| MD5 |
ce96fc45a8ef529999b15024ae0cb21d
|
|
| BLAKE2b-256 |
b9c18df9b45cfb45bbdfcac533c99290f94b2e6007c02bc0ee5b1768e06fedfc
|
File details
Details for the file upd_cli-0.0.3-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: upd_cli-0.0.3-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae8bf5432c8a6ac910b15ea359271080ccb354a4ba97ad152a1c5eaa65827fe1
|
|
| MD5 |
727de7e61ce0566ff7ed95e98c30aed4
|
|
| BLAKE2b-256 |
56220f9b935b749aeca8b0644f394c2112263aea799e230c5129191f638fa43d
|