The Linux Foundation Projects
Skip to main content
BlogFeilongMentorship

Summer Mentorship 2024: Automating Feilong Packaging – a Technical Odyssey

By September 19, 2024No Comments

Written by Aazam Thakur, Vasandada Patil Pratishthans College of Engineering & Visual Arts

As I reach the end of my mentorship term, I find myself reflecting on the incredible journey of learning, growth, and technical exploration that I’ve experienced. This summer mentorship has been a transformative period, allowing me to dive deep into the world of Linux systems, IBM Mainframes and automation. The goal of my project is to improve the Feilong packaging process to make deployment easier. My name is Aazam Thakur, and I’m a senior year engineering student majoring in Artificial Intelligence & Data Science affiliated to the University of Mumbai. For a quick recap of the midterm progress, where I published the feilong packages for RHEL and SLES on OBS (OpenSUSE Build Service), follow this link

Watch my final presentation here:

Testing on z/VM

Soon after publishing the packages, it was time to test the packages on the z\VM to find any potential errors and improve upon them. The testing environment was set up to use a jump host with which we could access the c3270 emulator. To test the package we first restore a fresh copy of the appropriate distro on the disk dedicated to feilong followed by ssh into it and using the appropriate commands to download the package from OBS. This entire process step would be repeated each time in order to have a clean environment for testing. My testing iterations had not concluded until I had the last nitty gritty detail fixed for the packages.

Building for Debian

One of the most challenging aspects I encountered was developing the packages for debian. Unlike rpm, building for debian was a completely different approach as it involved a multitude of files and fixtures. The initial struggle of building it manually with depreciated packages, followed by packaging it for OBS which uses a .dsc file format with checksums for debian packages all were a massive hurdle to overcome. In addition at first it seemed impossible to have it packaged with wsgi-mod, instead forcing us to stick with uwsgi but that would open a can of worms with feilong itself. However it was tackled by some rigorous testing in the z/VM and packaged successfully on OBS with the wsgi-mod in the end.

Tackling Documentation

Every technical journey comes with its set of documentation challenges, and mine was no different. Updating the documentation and raising pull requests on Feilong was a crucial part of the process. It had been years since the docs had been touched and needed a much required overhaul. The quickstart  and web server setup page was reorganized and improved to provide comprehensive information along with commands for each distro.

Automation and Continuous Integration

The final stages of my mentorship were marked by a strong focus in automating the packaging process of feilong. Creating GitHub actions for Feilong and build-zvmsdk repositories was a major achievement. These actions automated package building using OBS service files and GitHub actions, streamlining the development process.

This was done by using an action on feilong that would dispatch an event to the build-zvmsdk repo which itself had an action to run a set of scripts upon receiving the event to upload artifacts of tarballs of the feilong repo. Then a webhook would send a payload on the trigger of the push event to OBS, which would trigger service files that cause the packages to be rebuilt.

Looking ahead: Future Prospects

There is a lot of scope for further improvements in the project in refining out the finer details of the packaging and further simplifying by integrating the build repo into feilong itself. As I conclude this mentorship, I am filled with gratitude for the opportunities and challenges. The creation of a project repository for Feilong on OBS under the Virtualization Project and the addition of packages for RHEL, SLES, and Ubuntu are the fruits of my tedious yet thrilling labor.

Stay tuned here and the Open Mainframe Project social channels for more summer mentee blogs and videos.