Written by Atharva Kanherkar, Open Mainframe Project 2024 Summer Mentee
Hello! I am Kanherkar, a pre final year student of computer science having interest to make things that people use and say “What an app you made, loved it!” When I Look at this philosophy of mine developing things, I love how the LFX mentorship for the OpenMainframe Project does just that. It has products which actual people use, and we all know how interesting all the products are. Being a part of it, contributing to it, was nothing short of interesting.
My journey into the realm of Zowe, mainframes, and low-level programming has been incredibly enlightening. Despite facing numerous challenges, the guidance from our mentor, Leanid Astakou, Software Engineer and Scrum Master at Rocket Software, has been instrumental in our substantial progress.
How did I get selected?
I was always busy either making software products or contributing to open source. As a result, a I browsed through a lot of websites. Our college seniors told us a lot about programs that actually teach you, mentor you on open source, and how they were so prestigious. I was intrigued and I started researching. LFX looked so huge, and there were a lot of people applying. I always thought to myself, will I be able to do this? But then, I talked to one of my seniors, who also got selected for the mentorship program, Shivkant Chauhan. He told me to have some confidence and apply. Thanks to him, I applied! And one fine night, My mentor, Lenny, texted me if i was available for an interview. I was so excited! I said i am traveling right now and will be free tomorrow. The next day, we scheduled an interview and it was such an awesome experience. That day, even if i had not got selected, I would have been happy, because in the interview, I learned so much about zowe, mainframes, and how the whole z/os systems work. It was the most intriguing part on my side.
And then some days later, he texted me that I was selected. My mum is always interested in tech things, and so and so, I told her that i got into this program. She was very happy and I Myself was on cloud nine. It was one of the most beautiful days of my life.
What is Zowe and My Role in Contributing to It?
Zowe is an open-source project that makes it easier to work with mainframe systems using modern tools. It connects new and old tech, letting developers use familiar tools to interact with mainframes. Zowe includes three main components:
- Zowe Application Framework (ZLUX): A web UI that makes mainframes more user-friendly.
- Zowe API Mediation Layer: An API gateway that allows mainframe services to be used as REST APIs.
- Zowe CLI: A command-line interface that simplifies interacting with mainframe systems.
My Role in Contributing to Zowe:
This summer, I got to dive into Zowe and help improve it. I started off working on the Zowe App Store, a tool for browsing, installing, and managing apps within Zowe. But as things progressed, my focus shifted to a few key areas:
- Server Stability: Ensuring a robust and reliable server environment for Zowe users.
- Development Environment: Improving the setup and tools to foster a better community experience.
- Zowe Installation Wizard: Making the installation process seamless and user-friendly.
As these areas were equally important for the swift development and user experience of zowe. As soon as I got selected, We did some introductory meetings. Our mentor, Lenny, introduced us to zowe in a very beautiful manner. I loved how he explained everything.
The Setup, The Errors, and the Troubleshooting!
When we first started, our mentor Lenny assigned us the task of setting up the server. I eagerly began by cloning the repository from GitHub and following the instructions in the README file. Since I was new to this, I initially attempted to set it up on Windows. However, I soon ran into numerous issues that left me stuck for days. Thankfully, Lenny was incredibly supportive, always ready to help us navigate these challenges and offering guidance and encouragement throughout the process.
Due to the persistent issues on Windows, I decided to switch to Linux, hoping for a smoother developer experience. While I still encountered errors, I refused to give up. We delved deep into the issues, methodically fixing them one by one until I could successfully build the server on my laptop.
Once the server was built, I attempted to run it. The main challenge was obtaining mainframe access. I managed to secure a three-day trial and tried running the server, only to encounter runtime errors. Lenny suggested switching to a different branch, which resolved some of the issues. After correctly configuring the zowe.yaml file, the server finally ran in my browser. This was a significant milestone, and I was thrilled with the progress. I immediately shared the success with our mentor, and I was like voila! Finally!
I was amazed by the experience, seeing a whole operating system running inside a browser. I spent some time exploring it, and it was truly fascinating!
How We Shifted Our Priorities
Initially, our project focused on improving the UI. However, we soon realized the importance of ensuring the server ran smoothly and that the development environment was robust. Lenny suggested that I document all the errors encountered during the setup process to help the community and future developers.
I began backtracking and noting down each error. Most of them were due to build issues, and I documented them all. Once I had a comprehensive list, I made the necessary changes to the README file and opened a pull request to integrate these updates. This effort was aimed at enhancing the development experience for everyone involved, making it easier for future contributors to set up the server.
Currently, our task is to revert to v2.x/staging and troubleshoot Typescript/JavaScript runtime errors. Our goal is to ensure that the Zowe App server can run even without a specific configuration. Achieving this will confirm that we have established a reliable default setup.
Continuing Our Progress
Even though we initially aimed to improve the UI, we quickly realized that having a stable server and a robust development environment was crucial. So, we shifted gears to focus on that first. By documenting the errors and refining the setup process, we aimed to make things easier for other developers. This change in priorities helped us deal with immediate problems and set us up for smoother development down the road.
This journey has been a huge learning experience. From setting up the server to troubleshooting and noting down errors, editing the README and pull requests, every step has deepened our understanding of the project. With our mentor’s ongoing support and the team’s collaborative spirit, we’re confident we can handle any challenges that come our way. It’s been a mix of tough and rewarding moments, and I am excited about continuing to contribute to the Zowe project.
A huge thanks to Leanid Astakou for all his support!
Stay tuned
Mentees will be blogging about their experiences. Stay tuned here and the Open Mainframe Project social channels for updates.
- Follow us on X at @Openmfproject
- Connect with our LinkedIn page
- Subscribe to our Youtube Channel
- Sign up to get our newsletter
- Learn more about the Open Mainframe Project Mentorship Program