A developer tool for safe, intelligent dependency upgrades. DTM automatically tests all possible versions of a library against your codebase to find the newest stable version that works, using binary search, sandboxed testing, and dependency graph analysis.
- 🔍 Automatically detects project language (Python, JavaScript, Rust)
- 📦 Fetches all available versions of a dependency
- 🔬 Uses binary search to efficiently find breaking changes
- ✅ Tests each version in isolation
- 📊 Provides clear upgrade recommendations
- 🔒 Safe and reliable dependency upgrades
npm install -g dependency-time-machine- Node.js >= 14.0.0
- Python 3.x (for Python projects)
- npm (for JavaScript projects)
- Cargo (for Rust projects)
# Basic usage
dtm upgrade <package-name>
# Examples
dtm upgrade requests # For Python projects
dtm upgrade lodash # For JavaScript projects
dtm upgrade serde # For Rust projectsCheck out the examples/ directory for sample projects in each supported language:
examples/python-example/: Python project using requestsexamples/js-example/: JavaScript project using lodashexamples/rust-example/: Rust project using serde
- DTM detects your project's language
- Fetches all available versions of the target dependency
- Uses binary search to efficiently find the latest working version
- Tests each version in isolation
- Provides a detailed report with upgrade instructions
- Python (pip)
- JavaScript (npm)
- Rust (Cargo)
Contributions are welcome! Please feel free to submit a Pull Request.
MIT