Notable changes.
- Fix: change increment syntax in test library script (#896)
- Increase timeout to 6 seconds (7 attempts) (microsoft/vscode-remote-release#6509)
- Remove unnecessary log (#925)
- Exit with non-zero code on unexpected errors (microsoft/vscode-remote-release#10217)
- Add option for GPU availability (microsoft/vscode-remote-release#9385)
- Add more leniency towards registries that malform WWW-Authenticate (#884)
- Handle concurrent removal (microsoft/vscode-remote-release#6509)
- Enhance Template metadata (#875)
- Caches additional Template metadata (such as
files
) onto the manifest - Resolves full file paths for
optionalPaths
directories that only contain one file (for better usability in upstream tools) - Fixes bugs
- Caches additional Template metadata (such as
- Supporting changes for Template
optionalPaths
specification (microsoft/vscode-remote-release#10095)
- Fix containerEnv substitution. (microsoft/vscode-remote-release#10033)
- Wait for result to be written to stdout. (microsoft/vscode-remote-release#10029)
- Fix confusing error message with local feature. (#834)
- Add
--label
parameter todevcontainer build
command. (#837) - Prefer Docker Compose v2 over v1. (#826)
- Fix project name with env variable. (#839)
- Surface additional information in
devcontainer up
. (#836) - Changes the config layer of the Feature manifest to a empty descriptor (#815)
- Fix support for project name attribute. (#831)
- Use --depth 1 to make dotfiles install process faster (#830)
- Enable --cache-to and --cache-from in devcontainer up (#813)
- Omit generated image name when
--image-name
is given (#812)
- Support project name attribute. (microsoft/vscode-remote-release#512)
- Check if image name has registry host. (microsoft/vscode-remote-release#9748)
- Propagate --cache-from to buildx build. (#638)
- Disable cache on feature build when
--build-no-cache
is passed. (#790) - Qualify local image for Podman. (microsoft/vscode-remote-release#9748)
- Stop races docker-compose.devcontainer.containerFeatures file. (#801)
- Allow empty value for remote env. (devcontainers/ci#231)
- Add generate-docs subcommand for templates and features. (#759)
- Only use SELinux label for Linux hosts. (#776)
- Fix crash updating UID/GID when the image's platform is different from the native CPU arch (#746)
- Add tags with build command (devcontainers/ci#271)
- Remove dependency on ip package (#750)
- Add hidden
--omit-syntax-directive
flag (#728) to disable writing#syntax
directives in intermediate Dockerfiles, even if provided by the user. This is an advanced flag meant to mitigate issues involving user namespace remapping. This flag will be removed in a future release. See moby/buildkit#4556 for more information. - Update dependencies (#722)
- Support additional Docker build options (#85)
- Adopt additional_contexts in compose (microsoft/vscode-remote-release#7305)
- Log
docker start
output (microsoft/vscode-remote-release#5887)
- Update string in
isBuildKitImagePolicyError
(#694) - Mount build context as shared with buildah (#548)
- Fix authentication against Artifactory (#692)
- Force deterministic order of
outdated
command (#681) - Remove vscode-dev-containers dependency (#682)
- Remove additional unused code (https://github.com/devcontainers/cli/commit/2d24543380dfc4d54e76b582536b52226af133c8)
- Update dependencies including node-pty (#685)
- Update Third-party notices (#686)
- Edit a Feature pinned version via upgrade command behind hidden flag (#684)
- add
--dry-run
toupgrade
command (#679) - Fix version sorting and report major version in
outdated
command (#670)- NOTE: This changes the signature of the
features info
command and the output of publishing Features/Templates. The keypublishedVersions
has been renamed topublishedTags
to better mirror the key's values.
- NOTE: This changes the signature of the
- Docker compose: Updates create error description to include cause for docker auth plugin errors (#660)
- Updates create error description to include cause for docker auth plugin errors (#656)
- Add
upgrade
command to generate an updated lockfile (#645)
- Update UID only if GID is in use (microsoft/vscode-remote-release#7284)
- Empty lockfile in workspaceFolder will initialize lockfile (#637)
- Surface buildkit policy errors (#627)
- Handle missing entry in /etc/passwd gracefully (microsoft/vscode-remote-release#8875)
- Add
--cache-to
option todevcontainer build
command (#570) - Fix: Fallback when getent is not available (microsoft/vscode-remote-release#8811)
- Fix: Only allocate tty for
docker exec
when stdin is a tty (#606)
- Fix: Allocate pty for
docker exec
(#556)
- Publish without node-pty dependency (#585)
- Record feature dependencies in the lockfile (#566)
- Record features referenced by tarball URI in lockfile (#594)
- Update proxy-agent to avoid vm2 (#596)
- Outdated command (#565)
- Case-insensitive instructions (microsoft/vscode-remote-release#6850)
- Automatically set execute bit when running dotfiles install script (#541)
- Use getent passwd (microsoft/vscode-remote-release#2957)
- Update supported node engines to ^16.13.0 || >=18.0.0 (#572)
- Load
NODE_EXTRA_CA_CERTS
in Electron (#559) - Features Test Cmd: "Duplicate" test mode to test Feature Idempotence (#553)
- Mask user secrets in logs (#551)
- Preview: Feature Dependencies (devcontainers/spec#234)
devcontainer-feature.json
can now specify adependsOn
property that lists other Features that must be installed before the current Feature can be installed.- Complete rewrite of the Feature dependency resolution model
- NOTE: This is a feature preview - please submit your feedback!
- Fix containerEnv values with spaces (#532)
- Fix a bug in passing users secrets to dotfile clone and install commands (#544)
- Fix for mount command string generation (#537)
- Add object notation support for
initializeCommand
(#514) - Keep existing lockfile updated (devcontainers/spec#236)
- HttpOci: Retry fetching bearer token anonymously if credentials appear expired (#515)
- Bump proxy-agent (#534)
- Log feature advisories (#528)
- Check for disallowed features (#521)
- Secret support for up and run-user-commands (#493)
- Update auth precedence level for fetching Features/Templates. Notably preferring
docker login
credentials. (#482)- The precedence order (
cli/src/spec-configuration/httpOCIRegistry.ts
Line 147 in 4fde394
- parsed out of a special DEVCONTAINERS_OCI_AUTH environment variable
- Read from a docker credential helper indicated in config
- Read from a docker cred store indicated in config (https://docs.docker.com/engine/reference/commandline/login/#credentials-store)
- Read from a docker config file (flat file with base64 encoded credentials)
- Read from the platform's default credential helper
- Crafted from the
GITHUB_TOKEN
environment variable
- The precedence order (
- Features can now be pinned to a digest in
devcontainer.json
(#480) - Automatically clean up test containers when using
devcontainers features test
(#450)- The
--preserve-test-containers
flag can be used to disable this behavior
- The
- Various internal changes to the Features/Templates OCI registry implementation (#490)
- Update vm2 (#488)
- Add --config to build command (microsoft/vscode-remote-release#8068)
- Features/Templates: Fix a bug in reading from docker credential helpers (#477)
- Add initial support for docker credential helpers when fetching Features/Templates. (#460, contributed by @aaronlehmann)
- Transform maven, gradle and jupyterlab usages to their features v2 counterparts. (#461)
- Escape and enclose containerEnv in quotes when writing to Dockerfile. (#454)
- Update package dependencies.
- Also require name property in
devcontainer-feature.json
. (#447) - Add
--omit-config-remote-env-from-metadata
to omit remoteEnv from devcontainer config on container metadata label. (#453) - Only include required legacy scripts. (microsoft/vscode-remote-release#7532)
- Connect stdin to executed process. (#59)
- Better support for private Features published to Azure Container Registry (#444)
- Initial support for Features contributing lifecycle hooks (#390)
- Retry docker pull on error (#428)
- Fix:
devcontainer feature test
cmd should fail if Feature's sub-folder does not exist (#418)
- Add label for config file. (microsoft/vscode-remote-release#7548)
- Add docs for
devcontainer templates publish
. (#410)
- Fix: Merge metadata logic for containerEnv for
devcontainer build
. (#392) - Support querying registries that Accept application/vnd.oci.image.index.v1+json. (#393)
- Updates Features cache logic - Incrementally copy features near the layer they're installed. (#382)
- Add
set-up
command. (microsoft/vscode-remote-release#7872)
- Features preamble: Add warnings for Feature renames & deprecation. (#366)
- Add dotfiles functionallity. (#362)
- Cache user env for performance improvement. (#374)
- Fix: Modify argument regex to only allow certain set of values (#361)
- Fix: Fixed fromStatement parsing to parse quotes in variable expressions (#356)
- Fix: Allow prebuilding image without a Dockerfile (#352)
- Fix: Failed to fetch local disk feature on Windows (#333)
- Features: Adds 'deprecated' property (#346)
- Features: Adds 'legacyIds' property (#335)
- Follow Docker Token Authentication Specification (#341)
- Fix: Handle parsing variable expression in dockerfile (#337)
- Add more detail to the output of
publish
commands (#326)
- A more spec-compliant/resilient OCI distribution implementation. (#318)
- Update NPM package dependencies. (#315)
- Fix escaping of embedded JSON. (#324)
- Emit a JSON summary of the result of the
features publish
andtemplates publish
commands (#305) - Fix: "ssh-add: communication with agent failed" (microsoft/vscode-remote-release#7601)
- Fix Feature/Template publishing issue when a capital letter is in the repo name (#303)
- Fix regression in #298
features test
: Respect image label metadata. (#288)- Surface first error (microsoft/vscode-remote-release#7382)
templates publish
: Exit for "Failed to PUT manifest for tag x" error. (#296)- Respect devcontainer.json when using image without features. (#299)
- Emit response from registry on failed
postUploadSessionId
(#298) - downcase OCI identifiers and validate input of getRef() (#293)
features test
: Respects testing scenarios where 'remoteUser' is non-root (#286)
- Handle quoted base image (microsoft/vscode-remote-release#7323)
- Use plain text when not in terminal (#253)
features test
documentation (#219)features test
: Copy entire test folder on test execution and improve CLI command usage. (#265)- Avoid image build (microsoft/vscode-remote-release#7378)
- Preserve syntax directive (microsoft/vscode-remote-release#7463)
- GPU requirement and auto-detect NVIDIA extensions (#173)
features test
: Pattern to provide additional files in scenario test. (#273)- Handle Cygwin / Git Bash sockets forwarding on Windows. (#62)
- Handle ENV without
=
. (microsoft/vscode-remote-release#7493) - Bundle CLI for NPM package. (#279)
features test
: Add --filter to allow for selectively running scenarios. (#272)
- Add flag to omit
customizations
from image metadata. (#262) - Normalize feature permissions. (#153)
- Skip features code path without features. (#258)
- Pick up updated
remoteEnv
,remoteUser
anduserEnvProbe
properties. (#252)
- Consider base image env when looking up USER. (microsoft/vscode-remote-release#7358)
- Handle ENV when looking up USER. (microsoft/vscode-remote-release#7303)
- Last mount source wins. (microsoft/vscode-remote-release#7368)
- Add missing substitutions in run-user-commands. (microsoft/vscode-remote-release#7412)
- Last updateRemoteUserUID value wins. (microsoft/vscode-remote-release#7390)
- Add
${devcontainerId}
configuration variable. (devcontainers/spec#62) - User environment variables for features. (devcontainers/spec#91)
- New Command:
templates apply
to apply fetch and apply a dev container Template to a project - Initial support for running lifecycle scripts in parallel
- Improvements to the
features test
command - Improvements related to packaging dev container Features and Templates
- Handle old and otherwise started containers (microsoft/vscode-remote-release#7307)
- Configure proxy-agent (microsoft/vscode-remote-release#6995)
- Only set target when previously set. (microsoft/vscode-remote-release#7301)
- Check for existing syntax directive. (microsoft/vscode-remote-release#6848)
- Templates & Features Packaging - Throw warning of a missing JSON file and continue. (#206)
- Inspect image in registry to avoid pulling it. (microsoft/vscode-remote-release#7273)
- Introduces
templates publish
command. (#198) - Adds
--additional-features
option. (#171) - Adds
--output
option to thedevcontainer build
command. (#166)
- Use qualified id for features. (microsoft/vscode-remote-release#7253)
- Avoid changing metadata order. (microsoft/vscode-remote-release#7254)
- Include version in all override files. (microsoft/vscode-remote-release#7244)
- Image metadata. (#188)
- Fix typo in 'installsAfter'. (#163)
- Add --skip-post-attach. (#174)
- Improve feature installation logs. (#178)
- Properly source feature options. (#148)
- Replace containerEnv in entire config and in read-configuration command. (microsoft/vscode-remote-release#7121)
- Update to vscode-dev-containers 0.245.2.
- Updates to
devcontainer features test
command- Can now specify a
scenarios.json
per-feature
- Can now specify a
- Introduces
devcontainer features info
command
- Pick up v0.10.2 related to container ENV output.
- Native implementation for pushing a dev container feature to an OCI registry
features publish
command
- WIP on features v2:
- Auto map old feature ids to OCI features. (#100)
- Fix malformed container ENV output for 'v1' features (#131)
- Fixes regression where some dev container feature properties were not being applied properly (#126)
- Fixes undesired behavior with dev container features and multi-stage builds (#120)
- Implement optional default values in localEnv/containerEnv expansions. (#50)
- Log version and install location at the end of
--help
. (#114) - WIP on features v2:
- WIP on features v2:
- Contributable features in OCI registries.
- Build command: Support multiple --image-name parameters (#61)
- WIP on features v2:
- Contributable features.
features test
command.
- Multi-platform build support. (#24)
- User-scoped tmp folder on Linux. (microsoft/vscode-remote-release#2347)
- Handle undefined context. (microsoft/vscode-remote-release#6815)
- Avoid comment after ARG for Podman. (microsoft/vscode-remote-release#6819)
- Update to vscode-dev-containers 0.238.1.
- Update to vscode-dev-containers 0.238.0.
- Merge user and features Dockerfile to simplify cache and multi-platform handling.
- Use PTY for
--log-format-json
.
- BuildKit version check for
--build-context
.
- Use single Dockerfile to build image for single container using BuildKit.
- Initial version.