GitHub Codespaces is a cloud-based development environment that allows developers to join a project, launch a developer environment, and start coding with minimal configuration–all from the same browser. Codespaces are run on a variety of compute options based on the virtual machine hosted by GitHub, and can be configured from 2 core machines to 32 core machines.
Source: GitHub.com
On 23 February, GitHub announced the beta release of its ability to prebuild Codespace templates for faster application development. Prebuilds are plug and play templates for codespace. The templates allow faster access to the codespace irrespective of the size and complexity of the project, boosting the productivity of developers.
Typically, creating a fully functioning development environment takes a lot of time as it requires the user to clone datasets, install dependencies and plug-ins, execute scripts and so on. With prebuilt templates, developers can do away with such time-consuming routines.
Our primary goal with Codespaces is to provide a one-click onboarding solution that enables developers to get started on a project quickly without performing any manual setup, according to Tanmayee Kamath, Senior Product Manager at GitHub.
Codespace environment
Codespace, a development ecosystem hosted in the cloud, allows developers to connect to their codespaces from the browser or locally using Visual Studio Code.
Source: Twitter
Codespace is a great platform for open-source contributors as adding a Codespace configuration to the project can accelerate its development. The prebuilt Codespace templates have the following advantages:
- Reduced coding time: Initially, virtual environments took around 45 minutes to activate in some cases. Later, the start-up time was brought down to 5 minutes. However, the implementation of prebuilt Codespace templates brings down the startup time to mere seconds.
- Accessibility: Users have access to a machine type with a “prebuild ready” tag which would help them boot up their environment at a faster pace.
- The burden on repository: With the introduction of GitHub actions workflows that will be managed by the Codespaces service, the burden on repository admins around managing action version updates for each prebuilt branch is reduced.
- Smooth: A seamless configuring experience helps users to easily set up and manage prebuilt configurations for different branches and regions.
How does prebuild templates work?
In the beta version, repository admins can create specific configurations for certain regions in their repository. The prebuilds configuration leads to an associated Github actions workflow tab, under Codespaces service that manages the prebuilding of the devcontainer configuration. In case of failures, each workflow can provide a set of logs to help with debugging.
Source: GitHub.com
All one needs to do is request for a template and the service will find one and attach it to an existing virtual machine. This significantly reduces processing time for the creation of a codespace. To make any changes in the template, one can access the devcontainer configuration with a pull request.
GitHub’s long game
GitHub offers pretrained templates for public access and can be re-configured as per the user’s needs. The repository also provides the ability to access any patch of code at any given time in the Codespace environment.
Popular prebuilt templates available on GitHub include:
jrbeverly/Codespace – Prebuilt, development environment in the browser – powered by VS Code.
processone/docker-build – Prebuilt images to use in Github Actions and Github Codespaces as dev environment basis.
examples/go – A template used for go(Golang) projects.
dynamicwebpaige/codespaces-ml-template – A template for ML projects with VS Code.