Building for Fedora: Progress on the Release Schedule Planner API
An overview of the development progress on the Fedora Release Schedule Planner API during my Outreachy internship.

For the period between the start of June 2025 and the end of July 2025, I have been working on building an API to help the Fedora project plan and manage release cycles more effectively.
The project is part of my Outreachy internship, where I am contributing to open-source software development. I am under the mentorship of Tomáš Hrčka.
Why this matters
Fedora is a proponent for the use of open source software and makes this readily accessible for everyone. They have an existing release schedule manager, Fedora Linux release schedule. However, it is not very user-friendly since it requires a lot of manual manipulation of XML files.
The goal of this project is to create a more robust and flexible API that can be used by developers and contributors to automate tasks, retrieve schedules, and integrate with other tools.
What I’ve accomplished so far
I started by getting familiar with the existing state of the code base, which had contributions from a number of people during the Outreachy contribution period. It was a brand new project with no formal structure and a mix of different coding styles.
Here’s what I’ve worked on and am in the process of completing:
- Reworked the project to use FastAPI: I transitioned the code base from a basic Flask setup to FastAPI, which provides better performance, automatic validation, and interactive API documentation.
- Created a CI pipeline to automate testing and ensure code quality.
- Reorganized the project into a FastAPI-based structure to make it more modular and easier to maintain.
- Cleaned up routing, naming, and endpoints to ensure consistency and readability.
- Added validation and type hints to reduce future bugs and improve the developer experience.
- Set up automatic interactive documentation using FastAPI’s built-in Swagger UI compatibility.
- Resolved hanging issues and removed legacy code that was no longer needed.
I am still some way from completing the project but the groundwork has been laid and it is taking shape. The auto-generated documentation has already made it much easier to test the API and onboard new contributors.
What’s next
There’s still a whole lot left to do including:
- Fixing tests to work with the new FastAPI structure.
- Preparing the project for integration with the Fedora infrastructure.
- Improving the deployment pipeline for production use.
Final thoughts
Back-end work can often feel invisible, but it forms the foundation of most software systems.
This project has been a great opportunity to improve my development skills, learn from an experienced mentor, understand API design in open source, and contribute to a real-world tool that will soon support an entire Linux distribution’s release process.
I’m excited to keep building and share more updates as we move closer to full integration with Fedora!