[Announcement] Revised process for dev container community contributions
samruddhikhandale opened this issue · 8 comments
UPDATE: See below for additional information on publishing your own definitions / templates and read on for information on contributing features and where images are now being built!
Latest context
Hi dev container community! We appreciate your continued patience as we work to make dev containers a great experience and open specification, and we're excited to share with you the latest plan for community contributions (which we've been crafting since #1291).
New repos
As mentioned, we recently announced the dev container specification. As part of this, we now have a devcontainers GitHub org, and we place repos related to the spec in this org.
We recently open sourced two new devcontainers
repos:
As shown in the repos, we are hosting a specific set of features and images that were previously in this repository. Please log issues in this new location.
Also note that we will soon also have a repo for a subset of dev container definitions (a.k.a. templates) in the containers
folder of this repository. We expect the distribution model for templates to be similar to Features - but this is not quite ready.
How can I contribute or create new content?
While you could always publish your own dev container image, you can now publish Features as well! This means you can make updates and fixes at any cadence you like! To get started, use this 'features' template repo to create a set of features. It includes a GitHub Actions workflow to automate the publishing process. If you want more details, you can read more about the features portion of spec at containers.dev.
If you've contributed a definition/template in the past, consider whether a Dev Container Feature may be better. Features allow your contribution to be added to any supported base image, rather than just the one in the template.
If you still want to contribute a definition/template in addition or instead, stay tuned for information on how you can self-publish these as well!
If you'd like your contributions to appear in VS Code or GitHub Codespaces UI for dev container creation, you may do the following soon (this is still a work in progress):
- Go to https://github.com/devcontainers/devcontainers.github.io
- Open a PR to modify the
collection-index.yml
file. For example, the entry for features published out ofdevcontainers/features
looks like:
- name: Reference Implementation Features
maintainer: Dev Container Spec Maintainers
contact: https://github.com/devcontainers/features/issues
repository: https://github.com/devcontainers/features
ociReference: ghcr.io/devcontainers/features
The ociReference
attribute is an auto-generated "metadata" artifact generated by the devcontainers GitHub action. It contains a JSON file with information about all features published under that namespace (by default <owner>/<repo>
).
What happens to this vscode-dev-containers repo?
We will ultimately be archiving this repository and focusing new work on the repos in the devcontainers
org. We will not delete or hide this repo. However, we won't archive the repository until we've migrated the dev container definitions / templates as well. We expect the general model for distributing templates to be the same as Features - so stay tuned for more information on that!
Feedback
Please feel free to reach out via comments in this issue or through issues in our various devcontainer
org repos with any questions or feedback on this process or experience - we'd love to hear how it goes for you. We look forward to your feedback and great dev container contributions!
By August 31st, you will see the following changes:
- Features: We’ve migrated a set of Features to the new repo devcontainers/features, and any current references to these Features will automatically map to the new repo. Features that are not part of the new repo will continue to be referenced from vscode-dev-containers.
- Images: We will now be publishing images from devcontainers/images (with path
mcr.microsoft.com/devcontainers/*
). For backwards compatibility, we will be retagging the current images so that your existing dev container configurations continue to work.
Hi @andreiborisov 👋 , would you like to self-publish the homebrew
and fish
Features? We’d love to ensure the community can continue effectively using your great Features, and we're happy to discuss any feedback you may have on the new process.
Hi! I've published fish feature independently according to the new spec proposal:
https://github.com/meaningful-ooo/devcontainer-features/tree/main/src/fish
Please, let me know if there are any issues.
Is there a way to make it visible in the VS Code UI?
Thanks so much @andreiborisov, this is really exciting!
For your contributions to appear in the VS Code Dev Containers or GitHub Codespaces UI, you can do the following steps:
- Go to devcontainers.github.io (the GitHub repo backing containers.dev)
- Open a PR to modify the
collection-index.yml
file
Once merged, this is the list we'll pull from, and your change will appear at containers.dev/collections.
Let me know if you have any questions!
Is there a way to make it visible in the VS Code UI?
We're rolling out changes to the Codespaces and Dev Containers extensions to support fetching from the index that Brigit mentioned above.
We shipped the change this morning in the Codespaces extension (v1.11.0), and VS Code will ship it shortly in the Dev Containers extension.
More specifically, the first change that will land is updating the Configure Dev Container Features
command to fetch from the index and display the Features listed here: https://containers.dev/features
Later this month we aim to also update the Add Development Container...
command to fetch templates in a similar way 🚀
October release update
Hi everyone! We wanted to provide an update on dev container Templates and self-publishing.
As you may already be aware, Templates are source files for configuring a Dev Container. They were referred to as "definitions" in this repo.
As part of the Dev Container specification, we've now published a specification for Templates and their distribution, along with a repo for Templates we host as part of the spec.
If you'd like your contributions to appear as part of the specification and in the VS Code or GitHub Codespaces UI for Dev Container creation, you can do the following:
- Go to devcontainers.github.io.
- Open a PR to modify the collection-index.yml file.
In addition, now when you edit a devcontainer.json
in GitHub.com, you'll get a new inline devcontainer.json
editor, which includes a Marketplace populated by this dynamic index:
We look forward to seeing your contributions and hearing your feedback!
There's now a starter repository project for creating Templates as well: https://github.com/devcontainers/template-starter
This is in addition to the Features quick start repository here: https://github.com/devcontainers/feature-template