https://containers.dev an open spec that extends container definition to also include dev environment configuration including:
- packages
- lifecycle automation
- processes
- IDE configurations
- remote connection
- port forwarding
- Exploring and learning
- Tire kicking
- Workshops
- Contributing
- Bug reproduction
- Documentation
- Code
- Maintaining
- Easing contribution
- PR reviews
Net effect: less frustration, shorter time to joy
My takeaways
- Tools anyone can use
- To build resilient applications
- Optimized for the cloud
So many tools! In the CNCF alone...
- The CNCF Landscape
- The progression of projects through the CNCF graduation process
- CNCF topic on GitHub
I know a little about
- etcd https://github.com/etcd-io/etcd/tree/main/.devcontainer
- containerd https://github.com/containerd/containerd/tree/main/.devcontainer
- knative/serving https://github.com/knative/serving/tree/main/.devcontainer
- fermyon/spin https://github.com/fermyon/spin/tree/main/.devcontainer
- kubernetes PR kubernetes/kubernetes#121561
I just discovered
- https://github.com/netdata/netdata/tree/master/.devcontainer
- https://github.com/envoyproxy/envoy/tree/main/.devcontainer
- https://github.com/cilium/cilium/tree/main/.devcontainer
- https://github.com/argoproj/argo-workflows/tree/main/.devcontainer
- https://github.com/thanos-io/thanos/tree/main/.devcontainer
- https://github.com/WasmEdge/WasmEdge/tree/master/.devcontainer
- https://github.com/linkerd/linkerd2-proxy/tree/main/.devcontainer
- https://github.com/Edgenesis/shifu/tree/main/.devcontainer
- https://github.com/layer5io/layer5/tree/master/.devcontainer
- https://github.com/winglang/wing/blob/main/.devcontainer/devcontainer.json
Please let me know if you know of more!
The open source world is full of amazing people doing their absolute best. But people are burning out, and people trying to learn and participate are frustrated and turned off. Why?
- The tech is complex, and hard to get started with
- Too few people are maintainers
- Lots of friction for new contributions (bug reproduction, environment reproducibility, build correctness/reproducibility)
Imagine a world with a shared, declarative environment definition!
- Less time setting up and maintaining environments (distributed problem) by centralizing it into a declarative model, maintained by the experts
- Less time for maintainers helping new contributors fix their environments
- Faster time to joy
- More happy contributors -> more potential maintainers
- Less time documenting setup (less out of date setup documentation)