Event language
UI language
How do you replace the engine of a moving car? Or better yet, how do you replace the heart of a living human? For decades, Fedora Badges has been a crucial partner for gamifying contributor engagement, but its ageing frontend technologies and backend infrastructure were becoming unmaintainable. This talk dives into the multi-year project to completely revamp Fedora Badges, piece by piece, while having it run just fine with sustainably equivalent feature parity. We will explore the transition from a legacy system to a modern architecture with our move from synchronous backend libraries like Flask to asynchronous backend libraries like FastAPI and from static templating systems like Jinja to progressive interface frameworks like React.<br><br>## Particulars<br><ol><li>Identifying technical debt and associated risks of maintaining legacy systems past their end-of-support timeline</li><li>Why we moved on to a modern stack centered around asynchronous processing and progressive application</li><li>Moving code was not hard, moving data was - Complexities and learnings of the runtime active migration procedure</li><li>Evolving system administration from legacy centered virtual machines to cloud native OpenShift deployments</li><li>Demonstration and interactions of the live deployment of Fedora Badges, with the plans for further development</li><li>Interactive feedback from the participants on both the backend infrastructure and frontend technologies</li></ol>## Takeaways<br><ol><li>Strategies for tackling massive technical debt acquired through years in established open source projects</li><li>Real world lessons on live migration of databases and tooling using examples from Fedora Infrastructure</li><li>Understanding the benefits of modern stack for community tooling and onboarding community contributors</li><li>Balancing technical innovation with community continuity - You can revamp, but should you revamp?</li><li>Encouragement and retention of voluntary contributors through gamifying aspects of community activities</li><li>Strategies for ensuring the longevity of the project codebase by working with various community disciplines</li></ol><br>## References<br><ol><li>Update on Fedora Badges Revamp Project - <a href="https://gridhead.net/update-on-fedora-badges-revamp-project/" rel="nofollow" target="_blank">https://gridhead.net/update-on-fedora-badges-revamp-project/</a></li><li>Tahrir - Fedora Infrastructure - GitHub - <a href="https://github.com/fedora-infra/tahrir" rel="nofollow" target="_blank">https://github.com/fedora-infra/tahrir</a></li><li>#badges-team topics on Fedora Discussions - Discourse - <a href="https://discussion.fedoraproject.org/tag/badges-team" rel="nofollow" target="_blank">https://discussion.fedoraproject.org/tag/badges-team</a></li><li>Fedora Badges - Advanced Reconnaissance Crew - <a href="https://fedora-arc.readthedocs.io/en/latest/badges/index.html" rel="nofollow" target="_blank">https://fedora-arc.readthedocs.io/en/latest/badges/index.html</a></li><li>Discourse as frontend for Fedora Badges - Discourse - <a href="https://discussion.fedoraproject.org/t/so-we-investigated-discourse-to-confirm-if-it-is-worthy-of-being-the-fedora-badges-frontend/46104" rel="nofollow" target="_blank">https://discussion.fedoraproject.org/t/so-we-investigated-discourse-to-confirm-if-it-is-worthy-of-be...</a></li><li>Getting Fedora Badges Back in Shape - Discourse - <a href="https://discussion.fedoraproject.org/t/getting-fedora-badges-back-in-shape/42942" rel="nofollow" target="_blank">https://discussion.fedoraproject.org/t/getting-fedora-badges-back-in-shape/42942</a></li></ol>