{"id":19964067,"url":"https://github.com/pilotpirxie/dependency-time-machine","last_synced_at":"2025-08-02T16:12:58.121Z","repository":{"id":187565216,"uuid":"677154355","full_name":"pilotpirxie/dependency-time-machine","owner":"pilotpirxie","description":"🕰️ Tool to automatically update dependencies one-by-one in chronorogical order","archived":false,"fork":false,"pushed_at":"2024-06-01T18:08:49.000Z","size":226,"stargazers_count":47,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-03T23:32:04.989Z","etag":null,"topics":["dependencies","dependency","dependency-manager","npm","npm-package","outdated","package","packages","pnpm","update","upgrade","yarn"],"latest_commit_sha":null,"homepage":"http://npmjs.com/dependency-time-machine","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pilotpirxie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-10T21:59:04.000Z","updated_at":"2025-03-31T07:05:28.000Z","dependencies_parsed_at":"2025-05-03T23:30:30.899Z","dependency_job_id":null,"html_url":"https://github.com/pilotpirxie/dependency-time-machine","commit_stats":null,"previous_names":["pilotpirxie/dependency-time-machine"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/pilotpirxie/dependency-time-machine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotpirxie%2Fdependency-time-machine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotpirxie%2Fdependency-time-machine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotpirxie%2Fdependency-time-machine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotpirxie%2Fdependency-time-machine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pilotpirxie","download_url":"https://codeload.github.com/pilotpirxie/dependency-time-machine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotpirxie%2Fdependency-time-machine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268416634,"owners_count":24246945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dependencies","dependency","dependency-manager","npm","npm-package","outdated","package","packages","pnpm","update","upgrade","yarn"],"created_at":"2024-11-13T02:19:05.569Z","updated_at":"2025-08-02T16:12:58.092Z","avatar_url":"https://github.com/pilotpirxie.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ccenter\u003e\n        \u003cimg width=\"160\" height=\"216\" src=\"img/clocks.png\" alt=\"Clocks\"\u003e\n    \u003c/center\u003e\n\u003c/div\u003e\n\n# dependency-time-machine\n\nTool to automatically update dependencies one by one in chronological order. Most dependencies are compatible with other packages\nfrom a similar time or pastime. This tool helps to find the latest compatible version of the dependencies and update them.\n\nThis tool is intended to simulate the typical updating workflow as it was done regularly.\n\n## Installation\nRun with npx to find the next recommended dependency to update:\n```shell\nnpx dependency-time-machine --update --install\n```\n\nor install globally:\n```shell\n# npm\nnpm install -g dependency-time-machine\n\n# yarn\nyarn global add dependency-time-machine\n\n# pnpm\npnpm add -g dependency-time-machine\n```\n\n## Usage\nBasic usage to find the next recommended dependency to update:\n```shell\nnpx dependency-time-machine --update --install\n```\n\nAutomatically update dependencies one-by-one running tests after each update. Tests are run with the `npm test` command:\n```shell\nnpx dependency-time-machine --update --install --auto\n```\n\nYou can specify custom install and test commands:\n```shell\nnpx dependency-time-machine --update --install --auto --install-script \"yarn install\" --test-script \"yarn test\"\n```\n\nGet a timeline of the updates in JSON format:\n```shell\nnpx dependency-time-machine --timeline\n```\n\nTo exclude some dependencies from the update, use the `--exclude` option:\n```shell\nnpx dependency-time-machine --update --install --exclude react,react-dom\n```\n\nor use the `--exclude-file` option to exclude dependencies from the file:\n```shell\nnpx dependency-time-machine --update --install --exclude-file exclude.txt\n```\n\n## Requirements\n- Node.js \u003e= 10\n\n## How it works\nThe tool reads the `package.json` file and finds all dependencies. Then it resolves all the versions from the registry, sorts them by date and\nfinds the latest version of the dependency before finding another. Searching in version groups allows one to spot\nincompatibility between dependencies. Built-in cache and auto mode allow to update dependencies faster.\n\n\u003cdiv style=\"text-align: center\"\u003e\n    \u003cimg src=\"img/diagram.png\" alt=\"Diagram\"\u003e\n\u003c/div\u003e\n\n## Options\n```shell\nUsage: dependency-time-machine [options]\n\nTool to automatically update dependencies one-by-one in the time order\n\nOptions:\n  -p, --packageFile \u003cfile\u003e               Path to package.json file (default: \"package.json\")\n  -u, --update                           Update package.json file with new versions\n  -is, --install-script \u003ccommand\u003e        Install with script (default: \"npm install\")\n  -ts, --test-script \u003ccommand\u003e           Test command (default: \"npm test\")\n  -i, --install                          Install with script\n  -t, --timeline                         Print timeline\n  -a, --auto                             Run in auto mode\n  -c, --cache                            Cache resolved dependencies\n  -ans, --allow-non-semver               Allow non-semver versions (compare with dates then, experimental)\n  -cf, --cache-file \u003cfile\u003e               Cache file (default: \"./.dependency-time-machine-cache.json\")\n  -e, --exclude \u003cdependency\u003e             Exclude dependency from update, separated by comma\n  -r, --registry-url \u003curl\u003e               Registry url (default: \"https://registry.npmjs.org\")\n  -x, --exclude-file \u003cfile\u003e              Exclude dependencies from file, one per line (default: \"\")\n  -shmn, --stop-if-higher-major-number   Stop if higher major number\n  -shmnv, --stop-if-higher-minor-number  Stop if higher minor or major number\n  -pi, --print-info                      Print info about the packages\n  -h, --help                             display help for command\n```\n\n## License\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilotpirxie%2Fdependency-time-machine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpilotpirxie%2Fdependency-time-machine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpilotpirxie%2Fdependency-time-machine/lists"}