In this post, I’ll discuss the topic which is the focus of my internship project — adding search to the Hubs platform. The previous posts are helpful in understanding the forthcoming material since they describe the way in which the application is modeled.

Note: I’ll use the term Hubs to refer to the Fedora Hubs application and hubs for the hubs that are its constituents.

As we have seen, all data in Hubs comes from different sources and finds its place in widgets across different hubs. It is then cached and updated when obsolete using the CachedFunction mechanism described in…

In this post, I’ll try to briefly describe the widget architecture of the Hubs framework.

The welcome screen

To put it simply, Hubs is an application that gathers data about a project in one place to make it easier for contributors to collaborate.

Since a project’s data usually resides on different platforms — e.g. Github for version control, Bugzilla for bug tracking, IRC for communication — the approach that Hubs uses to collect all of it is using special “widgets”.

These widgets hook on to the respective platform’s APIs, cache their response and listen for events that could possibly invalidate the cached data.


I’m Shaily, an Outreachy Round 15 intern at Fedora.

Outreachy is a three month internship program run by Software Freedom Conservancy — a charity that helps promote Free and Open Source Software projects.
The program is aimed at people from groups traditionally underrepresented in tech. Its goal is to “create a positive feedback loop” that supports more people to participate in free and open source software.

Internships are offered twice a year, and I applied for the winter round running from December to March. …


programming enthusiast, outreachy intern at fedora

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store