GSoC 2020 Final Progress Report: Dashboard for Packit (Fedora Project)
Dashboard for Packit
- GSoC Archive Listing: https://summerofcode.withgoogle.com/archive/2020/projects/5109625826836480/
- Student: Anchit Bajaj
- Mentors: Hunor Csomortáni and František Lachman
- Organization: Fedora Project
Project Recap
- Packit-as-a-Service is an installable app for git forges like GitHub, Pagure, etc that helps developers continuously ensure that their project works in Fedora.
- Packit Service validates pull requests by building that project in Fedora so that others can install and test those built rpms before merging.
- My task was to build/expand the API for Packit Service, use that API to build a dashboard, write deployment scripts and make tests.
- Stack: Python, Flask, PostgreSQL, SQLAlchemy/Alembic, JavaScript, React, Containers, Ansible, OpenShift.
Packit Service
API deployed at prod.packit.dev/api
Pull Request | Merged On |
---|---|
#433 Control packit-service with the command embedded in a comment | 3 March 2020 |
#443 Store the date/time of triggering new copr build | 5 March 2020 |
#474 Fix valueerror when no-action-needed PR comment is followed by a space | 9 March 2020 |
#479 Rewrite the copr-builds part of the API using PostgresSQL instead of Redis | 13 March 2020 |
#493 Fix error in API when old data exists | 17 March 2020 |
#501 Move Whitelist from Redis to Postgres | 20 March 2020 |
#521 Minor API Bugfixes | 26 March 2020 |
#534 Log Package Versions | 7 April 2020 |
#561 Optionally Disable Sentry | 16 April 2020 |
#567 Tests for the API and other changes | 20 April 2020 |
#674 Merge chroots and do pagination (API) in SQL instead of python | 15 June 2020 |
#678 Add API endpoint for fetching testing farm results | 16 June 2020 |
#690 Add CORS Headers to the API | 18 June 2020 |
#707 Use thread-local sqlalchemy session | 30 June 2020 |
#716 Add project based endpoints to the API | 10 July 2020 |
#746 Add /api/project/…/branches endpoint | 22 July 2020 |
#748 Revert JobTriggerModel.get(…) | 23 July 2020 |
#754 Misc API Changes | 1 Aug 2020 |
#766 Use integer response code values | 6 Aug 2020 |
#768 Link SRPMBuildModel to JobTriggerModel | 11 Aug 2020 |
#775 Add /api/srpm-builds endpoint | 13 Aug 2020 |
#788 Fix crash in /api/srpm-builds if job trigger doesnt exist | 25 Aug 2020 |
#791 Make the koji builds endpoint more consistent with the copr endpoint | WIP |
Packit Dashboard
Older version (from 3 Aug 2020 as on 29 Aug 2020) deployed at dashboard.packit.dev
Pull Request | Merged On |
---|---|
#9 Add Copr Builds to the dashboard | 25 Feb 2020 |
#20 Display a list of projects instead of the raw python object | 5 March 2020 |
#24 Modularize project with flask blueprints | 6 March 2020 |
#25 Add unit tests, make a dockerfile for running tests, and modify makefile to run them | 16 March 2020 |
#39 Basic react, webpack, flask setup and deployment scripts | 16 June 2020 |
#43 Jobs Page | 26 June 2020 |
#44 Cache API requests and wait before retrying | Discarded because we found a better solution |
#46 Projects and related views | 22 July 2020 |
#49 Unrelated Misc Changes | 1 Aug 2020 |
#51 Replace hardcoded URL with env var API URL | 28 July 2020 |
#55 View SRPM Builds, improved search, PR Links, icons, more | 26 Aug 2020 |
Events
- Nest with Fedora (7 Aug - 9 Aug) - Fedora' s annual conference Flock could not be conducted due to COVID 19 this year so it was replaced by a virtual conference called Nest. I attended multiple sessions and workshops. I also spoke at and interacted with the other Fedora interns at the Social Hour with Fedora Summer Coding Interns session.
- Call with the Fedora Council (13 Aug) - I gave a presentation about my summer project to the Fedora Council and saw the projects of the other GSoC/Outreachy interns.
Blog Posts
- https://communityblog.fedoraproject.org/gsoc-progress-report-dashboard-for-packit/
- https://communityblog.fedoraproject.org/gsoc-progress-report-dashboard-for-packit-july-1-aug-16-2020/
Takeaways
- Tests are very important.
- Good commit messages.
- Working with a team on a real world project.
- Better programming practices.
Conclusion
I’m really happy that I contributed to Fedora this summer. As always, the Fedora community is awesome and I’d love to part of the community even after GSoC. I’d like to thank Hunor Csomortáni, Tomas Tomecek, František Lachman, Jiri Popelka and the rest of the Packit team for all the help and support they’ve provided me. And thank you Vipul, Sumantro and Marie for organizing great events.
Last modified on 2020-08-29