deno/cli
Nathan Whitaker 56f31628f7
feat: subcommand to view and update outdated dependencies (#26942)
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>
2024-11-20 15:22:15 -08:00
..
args feat: subcommand to view and update outdated dependencies (#26942) 2024-11-20 15:22:15 -08:00
bench chore: update dlint to v0.68.0 for internal (#26711) 2024-11-04 12:17:11 -05:00
cache perf(compile): code cache (#26528) 2024-11-18 20:09:28 +00:00
js feat(jupyter): Add Deno.jupyter.image API (#26284) 2024-11-16 15:13:50 +00:00
lsp feat: Wasm module support (#26668) 2024-11-19 18:59:23 -05:00
npm feat: subcommand to view and update outdated dependencies (#26942) 2024-11-20 15:22:15 -08:00
ops feat: permission stack traces in ops (#26938) 2024-11-20 21:24:04 +00:00
schemas feat(fmt): support SQL (#26750) 2024-11-19 21:01:16 +00:00
standalone feat: Wasm module support (#26668) 2024-11-19 18:59:23 -05:00
tools feat: subcommand to view and update outdated dependencies (#26942) 2024-11-20 15:22:15 -08:00
tsc feat: Wasm module support (#26668) 2024-11-19 18:59:23 -05:00
util feat(watch): log which file changed on HMR or watch change (#25801) 2024-11-16 15:59:31 +01:00
auth_tokens.rs fix: trim space around DENO_AUTH_TOKENS (#25147) 2024-08-22 15:14:50 +02:00
build.rs perf(windows): delay load webgpu and some other dlls (#26917) 2024-11-18 20:44:17 +00:00
Cargo.toml chore: use forked sqlformat-rs (#26952) 2024-11-20 23:21:41 +00:00
cdp.rs chore: upgrade to rust 1.79 (#24207) 2024-06-14 17:10:57 +05:30
clippy.toml fix: otel resiliency (#26857) 2024-11-14 12:16:28 +00:00
deno.ico
emit.rs feat(node): stabilize detecting if CJS via "type": "commonjs" in a package.json (#26439) 2024-11-13 15:10:09 +00:00
entitlements.plist
errors.rs feat: Wasm module support (#26668) 2024-11-19 18:59:23 -05:00
factory.rs feat(compile): ability to embed local data files (#26934) 2024-11-19 16:19:35 -05:00
file_fetcher.rs fix: update message for unsupported schemes with npm and jsr (#26884) 2024-11-15 17:09:19 +00:00
graph_container.rs feat: add --allow-import flag (#25469) 2024-09-26 01:50:54 +00:00
graph_util.rs fix: otel resiliency (#26857) 2024-11-14 12:16:28 +00:00
http_util.rs fix: .npmrc settings not being passed to install/add command (#26473) 2024-10-24 20:03:56 +02:00
integration_tests_runner.rs chore: continue tests/ re-org (#22396) 2024-02-12 17:13:14 -07:00
js.rs chore: rename __runtime_js_source to hmr (#24442) 2024-07-05 17:47:53 +05:30
jsr.rs refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508) 2024-09-16 21:39:37 +01:00
main.rs feat: subcommand to view and update outdated dependencies (#26942) 2024-11-20 15:22:15 -08:00
mainrt.rs fix: otel resiliency (#26857) 2024-11-14 12:16:28 +00:00
module_loader.rs feat: Wasm module support (#26668) 2024-11-19 18:59:23 -05:00
node.rs refactor(resolver): move more resolution code into deno_resolver (#26873) 2024-11-14 15:24:25 -05:00
README.md
resolver.rs refactor(resolver): move more resolution code into deno_resolver (#26873) 2024-11-14 15:24:25 -05:00
shared.rs chore: Rust 1.80.1 (#25089) 2024-08-18 22:24:56 -04:00
task_runner.rs feat(task): add --eval flag (#26943) 2024-11-20 02:23:20 +01:00
version.rs build: Allow building 'rc' release from source (#25227) 2024-08-28 14:31:25 +00:00
worker.rs feat: permission stack traces in ops (#26938) 2024-11-20 21:24:04 +00:00

Deno CLI Crate

crates

This provides the actual deno executable and the user-facing APIs.

The deno crate uses the deno_core to provide the executable.