Crates.io | npm_time_machine |
lib.rs | npm_time_machine |
version | 1.0.0 |
source | src |
created_at | 2023-04-14 15:07:27.803255 |
updated_at | 2023-04-14 15:07:27.803255 |
description | Utility to move package.json through the time. Pin and upgrade your project in chunks! |
homepage | https://github.com/exlee/npm_time_machine |
repository | https://github.com/exlee/npm_time_machine |
max_upload_size | |
id | 839221 |
size | 67,541 |
NPM Time Machine - Move package.json through the time!
Usage: npm_time_machine [OPTIONS] <DATE>
Arguments:
<DATE> Target date (format: DD-MM-YYYY)
Options:
-f <INPUT_FILE> input file [default: package.json]
-o <OUTPUT_FILE> output file [default: package.json.out]
--no-cache Don't use / reload cache
--silent Silent mode
--dry-run Dry run - show changes only
-h, --help Print help (see more with '--help')
npm_time_machine
is a package.json
point-in-time "pinner". Given the date it'll compare package.json
pin with latest stable version for a library and use the newer one.
Intended use is to bisect dates in order to find point where upgrade can be managed. E.g. by avoiding scenarios where multiple core libraries undergo change.
package.json
:
State at: 01-01-2020
Resolved state for 01-01-2020
:
package.json
has newer than target date)Reasonable, agile solution is to split upgrades into multiple "checkpoints".
Each checkpoint is small and stable enough that it can be merged into the code-base and full upgrade can be worked over course of months without disrupting progress.
As I hadn't found the tool to do it I decided to write my own.
cwd
- might pollute dirtreedevDependencies
aren't processed