microsoft / vscode-dev-containers

NOTE: Most of the contents of this repository have been migrated to the new devcontainers GitHub org (https://github.com/devcontainers). See https://github.com/devcontainers/template-starter and https://github.com/devcontainers/feature-starter for information on creating your own!
https://aka.ms/vscode-remote
MIT License
4.72k stars 1.41k forks source link

[Announcement] Revised process for dev container community contributions #1589

Open samruddhikhandale opened 2 years ago

samruddhikhandale commented 2 years ago

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 https://github.com/microsoft/vscode-dev-containers/issues/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):

- 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!

samruddhikhandale commented 2 years ago

By August 31st, you will see the following changes:

samruddhikhandale commented 2 years ago

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.

andreiborisov commented 1 year ago

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.

andreiborisov commented 1 year ago

Is there a way to make it visible in the VS Code UI?

bamurtaugh commented 1 year ago

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:

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!

joshspicer commented 1 year ago

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 🚀

bamurtaugh commented 1 year ago

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:

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:

image

We look forward to seeing your contributions and hearing your feedback!

Chuxel commented 1 year ago

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