mirror of
https://github.com/denoland/deno.git
synced 2024-12-30 02:59:11 -05:00
56f31628f7
Closes #20487 Currently spelled ``` deno outdated ``` and ``` deno outdated --update ``` Works across package.json and deno.json, and in workspaces. There's a bit of duplicated code, I'll refactor to reduce this in follow ups ## Currently supported: ### Printing outdated deps (current output below which basically mimics pnpm, but requesting feedback / suggestions) ``` deno outdated ``` ![Screenshot 2024-11-19 at 2 01 56 PM](https://github.com/user-attachments/assets/51fea83a-181a-4082-b388-163313ce15e7) ### Updating deps semver compatible: ``` deno outdated --update ``` latest: ``` deno outdated --latest ``` current output is basic, again would love suggestions ![Screenshot 2024-11-19 at 2 13 46 PM](https://github.com/user-attachments/assets/e4c4db87-cd67-4b74-9ea7-4bd80106d5e9) #### Filters ``` deno outdated --update "@std/*" deno outdated --update --latest "@std/* "!@std/fmt" ``` #### Update to specific versions ``` deno outdated --update @std/fmt@1.0.2 @std/cli@^1.0.3 ``` ### Include all workspace members ``` deno outdated --recursive deno outdated --update --recursive ``` ## Future work - interactive update - update deps in js/ts files - better support for transitive deps Known issues (to be fixed in follow ups): - If no top level dependencies have changed, we won't update transitive deps (even if they could be updated) - Can't filter transitive deps, or update them to specific versions ## TODO (in this PR): - ~~spec tests for filters~~ - ~~spec test for mixed workspace (have tested manually)~~ - tweak output - suggestion when you try `deno update` --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
55 lines
1.7 KiB
JSON
55 lines
1.7 KiB
JSON
{
|
|
"version": "4",
|
|
"specifiers": {
|
|
"jsr:@denotest/add@0.2": "0.2.1",
|
|
"jsr:@denotest/multiple-exports@0.2.0": "0.2.0",
|
|
"jsr:@denotest/subtract@0.2": "0.2.0",
|
|
"npm:@denotest/bin@0.6.0": "0.6.0",
|
|
"npm:@denotest/breaking-change-between-versions@1.0.0": "1.0.0",
|
|
"npm:@denotest/has-patch-versions@0.1.0": "0.1.0"
|
|
},
|
|
"jsr": {
|
|
"@denotest/add@0.2.1": {
|
|
"integrity": "a9076d30ecb42b2fc6dd95e7055fbf4e6358b53f550741bd7f60089d19f68848"
|
|
},
|
|
"@denotest/multiple-exports@0.2.0": {
|
|
"integrity": "efe9748a0c0939c7ac245fee04acc0c42bd7a61874ff71a360c4543e4f5f6b36"
|
|
},
|
|
"@denotest/subtract@0.2.0": {
|
|
"integrity": "c9650fc559ab2430effc0c7fb1540e3aa89888fbdd926335ccfdeac57eb3a64d"
|
|
}
|
|
},
|
|
"npm": {
|
|
"@denotest/bin@0.6.0": {
|
|
"integrity": "sha512-vCNpxFgQN4fw4ZOp63nbTX1ilcDqNpvXCvYyC8nmfxQQAezsEt095I/YXwMIoMGzWtjCvlMf9kVEYfLuT5oEGQ=="
|
|
},
|
|
"@denotest/breaking-change-between-versions@1.0.0": {
|
|
"integrity": "sha512-bzMGYx+DxxPlI74n/VsDAN7Db1BY7Sz2XqxXruMo9dEznsBZu7Ez3i8YQ8n0leTxAiiMk1RCG4zQHPG1aj3xRw=="
|
|
},
|
|
"@denotest/has-patch-versions@0.1.0": {
|
|
"integrity": "sha512-H/MBo0jKDdMsX4AAGEGQbZj70nfNe3oUNZXbohYHhqf9EfpLnXp/7FC29ZdfV4+p6VjEcOGdCtXc6rilE6iYpg=="
|
|
}
|
|
},
|
|
"workspace": {
|
|
"dependencies": [
|
|
"jsr:@denotest/subtract@0.2"
|
|
],
|
|
"members": {
|
|
"member-a": {
|
|
"dependencies": [
|
|
"jsr:@denotest/add@0.2",
|
|
"jsr:@denotest/multiple-exports@0.2.0",
|
|
"npm:@denotest/breaking-change-between-versions@1.0.0"
|
|
]
|
|
},
|
|
"member-b": {
|
|
"packageJson": {
|
|
"dependencies": [
|
|
"npm:@denotest/bin@0.6.0",
|
|
"npm:@denotest/has-patch-versions@0.1.0"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|