This repository holds ready-to-use plugins for different languages and technologies.
Any .vsix file used in DS needs to be built from source and have sources published alongside it. This is a non-negotiable requirement, and means that .vsix files hosted on OpenVSX or elsewhere are not fit for use in DS.
Luckily there is an automatic way to build and publish .vsix files and their sources. Please raise a PR against the devspaces-vscode-extensions repository.
The DS plugin registry is a fork of the upstream Che plugin registry. While the build logic to build the actual registry is very similar to upstream, the steps required to actually build + publish the DS plugin registry images is quite different.
A local build works just like upstream -- use the build.sh
script. The only difference in DS is that the resulting meta.yaml files generated by the build process are zipped up into a .tar.gz file and copied into the container. This differs from upstream which just copies the output folder directly.
All contributions to the DS plugin registry should land in this repository. From there on, the following things happen:
- Code in this repository is synchronized from this repo to the plugin registry directory in the devspaces-images repository by a Jenkins job.
- The job from step
1.
kicks off a subsequent Jenkins job that then runs the bootstrap build, which uses the sync'd code in devspaces-images repository. The boostrap build builds the plugin registry in offline mode, using tagged image references. The resulting binaries and meta.yaml files are placed in a .tar.gz archive and the archive is committed to rhpkg for later usage in Brew. - If step
2.
is successful then a Brew build is kicked off. The Brew build copies the generated content in the .tar.gz archive from step2.
into the Dockerfile and completes the last stages of the plugin registry build.
Executables and language server dependencies needed in plugin sidecar containers can be built from this repo:
https://github.com/redhat-developer/devspaces-images
Sidecar image sources are then synced from the devspaces-images repo to a dist-git repo at Red Hat, and from built in Brew.
For example, the udi sidecar:
Red Hat OpenShift Dev Spaces is open sourced under the Eclipse Public License 2.0.