Author: Antony Nyagah

Outreachy Internship Update: Building the Fedora Release Schedule Planner API

As part of my Outreachy internship with the Fedora Project, I’m building an API to modernize how Fedora plans its release cycles.

With the help of my mentor Tomáš Hrčka, the goal is to replace the current XML-heavy system currently on pagure.io with something flexible, easy to use, and well-structured.

Explore the source code on Codeberg: Fedora Release Schedule Planner.

Why This Project Matters

Fedora’s current release planning tools rely on manual XML editing, which is challenging for newcomers and difficult to scale. This project aims to:

  • Improve contributor experience with interactive API documentation.
  • Support seamless querying and updating of release data.
  • Allow smoother integration with Fedora’s broader tooling.

Progress Highlights

  • Framework migration:
    • Transitioned from Flask to FastAPI (PR Link)
    • Leveraged Pydantic for data validation due to deep integration with FastAPI
    • Introduced auto-generated Swagger documentation
Documentation for the release schedule planner API
  • Code refactor:
    • Adopted modular architecture with clean routing (PR Link)
    • Standardized endpoint naming
  • CI/CD setup:
A screenshot of the CICD pipeline

These changes already make onboarding contributors easier and improve testability.

What’s Next

I’m excited about these upcoming milestones:

  • Refining and aligning tests with the FastAPI structure.
  • Integrating with Fedora infrastructure for live data.
  • Strengthening the deployment pipeline for production.

Challenges

My biggest challenge and opportunity is simultaneously learning new backend technologies like FastAPI and OpenID Connect for authorization, along with techniques to improve developer onboarding. Though the learning curve is steep, my mentor’s continuous guidance on the Fedora infrastructure, career development and general advice makes it manageable.

Reflections

This internship has been an incredible learning experience. I’m gaining hands-on exposure to backend architecture, continuous integration practices, and open-source collaboration. More importantly, the chance to build something lasting for Fedora makes the work genuinely rewarding.

There’s a lot left to tackle, and I’m looking forward to pushing it further.

From Open Source User to Fedora Contributor

This is the story of how I became a contributor on the Fedora Release Schedule Planner application hosted on Codeberg.

I started my open-source journey when I got my first laptop. It was old and slow, but I needed it for school, so I started looking into how to fix this.

Continue reading

Copyright © 2025 Fedora Community Blog

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Theme by Anders NorenUp ↑