devcontainers / devcontainers/cli

`devcontainer upgrade` should still upgrade lockfile even if version given is the same as in `devcontainer.json`

Open
#715 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
3k
Forks
457
Avg merge
13h 17m
Merged PRs (30d)
6

Description

With the following `devcontainer.json`:

```json
{
"name": "VS Code with Proxy",
"dockerComposeFile": "docker-compose.yml",
"service": "vscode",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
}
}
```

And the following `devcontainer-lock.json` file:

```json
{
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "2.2.0",
"resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:36e51dcb08a87d73250ddb486a88f8755ba93c1bc6756bb32b7ecb38d7175622",
"integrity": "sha256:36e51dcb08a87d73250ddb486a88f8755ba93c1bc6756bb32b7ecb38d7175622"
}
}
}
```

I think it'd be more useful if

```
$ devcontainer upgrade --workspace-folder . --feature ghcr.io/devcontainers/features/docker-in-docker --config devcontainer.json --target-version 2
```

would leave the `devcontainer.json` as is, but update the `devcontainer-lock.json` file like this (assuming 2.7.1 is the lastest 2.x version):

```diff
diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json
index cff76d7..a3868d9 100644
--- a/.devcontainer/devcontainer-lock.json
+++ b/.devcontainer/devcontainer-lock.json
@@ -1,9 +1,9 @@
{
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
- "version": "2.2.0",
- "resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:36e51dcb08a87d73250ddb486a88f8755ba93c1bc6756bb32b7ecb38d7175622",
- "integrity": "sha256:36e51dcb08a87d73250ddb486a88f8755ba93c1bc6756bb32b7ecb38d7175622"
+ "version": "2.7.1",
+ "resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:f6a73ee06601d703db7d95d03e415cab229e78df92bb5002e8559bcfc047fec6",
+ "integrity": "sha256:f6a73ee06601d703db7d95d03e415cab229e78df92bb5002e8559bcfc047fec6"
}
}
}
```

Currently it leaves both files untouched.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.