GitHub Codespaces for Mainframe Development

Venkat Balabhadrapatruni
Modern Mainframe
Published in
4 min readAug 11, 2021

Don’t second guess yourself, you read that right! GitHub Codespaces and Mainframe are indeed in the same sentence.

Broadcom with its Open-first strategy has been leading the Mainframe application development environment modernization and DevOps transformation. Broadcom’s Bridge for Git connects mainframe source code managed in Endevor to GitHub, allowing Enterprises to get the best of both worlds. Developers can work and collaborate with mainframe artifacts managed in Git while leveraging Endevor for build and life cycle management without requiring any specialized Endevor skills. The Code4z extension pack for the most popular IDE VSCode along with the first-ever mainframe open source project Zowe allows developers to work with the Git managed mainframe artifacts in modern VSCode compatible development environments. The Endevor Team Build, a lightweight build engine that lets developers script builds to build the modified mainframe code rounds up the modern mainframe developer experience.

The Open-first minded innovations have positioned Broadcom to bring new technologies like GitHub Codespaces to the mainframe developers without custom integration and help Enterprises standardize on development tools and processes for web, mobile, mainframe, or mobile to mainframe application development.

So, what is GitHub Codespaces?

GitHub Codespaces is cloud-hosted, containerized, and customizable VSCode environment that can be accessed from a browser or rich client Visual Studio Code. Codespaces environment can be used to code and collaborate on a project or review a pull request. Codespaces seamlessly bridges the gap between the version control system where code is maintained and the development environment so that developers don’t have to worry about populating their development environment with all the source code, dependencies, etc. needed to do their job as an additional step.

Powered by Visual Studio Code technology, Codespaces can be configured on a per project basis to load code, dependencies, extensions, developer tools, etc. The ‘devcontainer.json’ file in the project repository is the magic sauce that handles the configuration of the Codespaces environment for that project. The configuration file can be managed as code in the repository and is shared with all the developers to eliminate the per developer configuration activities and ensures consistency.

Why Codespaces?

What do developers like the most? Writing Code, of course!

It's a no-brainer, but ironically, developers spend more time setting up a development environment to write code than writing code 😠. I bet many of you have heard developers joking about taking a walk to get coffee while their development environment is starting up or stories about how it took a week for the new developer to set up their development environment. How about those IT teams complaining about having to maintain 10s or 100s of workstations to ensure consistent developer experience across the Enterprise? Or the lack of flexibility to write code from anywhere, and not having to worry about losing your work because of hard disk failure?

I, like every developer out there, dreamed about the day where I can spin up a development environment with all my source code and tooling needed to do my job with a push of a button. Though there have been strides in that direction from different vendors, GitHub Codespaces is taking it to the next level.

Let’s see what is involved in making the dream come true by creating a Codespaces environment using the Sample CICS COBOL app GitHub repo created using Bridge for Git:

  1. Create and configure the ‘devcontainer.json’ file in the project repository. This is done by an admin or a project lead who understands the needs of the project. The configuration sample shown below sets the terminal type and installs Broadcom’s VSCode extensions and Zowe to enable mainframe code development in the Codespaces environment:
Sample configuration file

2. Select the Code dropdown from the repository page and select Open With Codespaces and Voila! With a push of a button, the development environment is ready within seconds and mainframe developers can focus on what they love the most: Write Code! 👏 🎉

Code repository to Code development in seconds

The Extensions tab shows the extensions that were installed by Codespaces based on the sample ‘devcontainer.json’:

Extensions installed by Codespaces

Next Steps

Start by checking out the GitHub Codespaces announcement here and get a preview of the current VSCode experience for mainframe application development using the Developer Cockpit simulator. As the next step, select a GitHub repository, configure the Codespaces environment with Broadcom Code4z extensions, open source Zowe and start coding in the cloud!

--

--