2018 has been an amazing year for Solus. It brought us new and improved tooling that will pave the way for development for years to come, and fresh experiences in Budgie. 2018 also brought to the community new faces with fresh ideas, as well as the departure of a veteran in the Solus world.
In January, we introduced Linux Driver Management, or ldm for short. Linux Driver Management has enabled us to improve the detection of the supported hardware in your system, such as graphics cards and wireless devices, as well as broaden our support later in the year for numerous new variants of proprietary graphics drivers.
Linux Driver Management is designed with the intent to incorporate it into a future release of the Solus Software Center, folding in the functionality of DoFlicky (our driver installation software) to provide users recommended software for various hardware such as:
January also brought to our Patrons the first sneak peek at Peter O’Connor’s (a.k.a sunnyflunk) efforts at providing a first-class KDE+Plasma desktop experience, complementing our current editions (flagship “Solus” with Budgie, Solus GNOME, and Solus MATE).
Efforts expanded in February to improve Solus MATE Edition, as well as rapidly iterate on Plasma. These efforts included various stack upgrades (such as to MATE), as well as usability refinements by Peter in Plasma.
In March, we began early development efforts on a new design for the Software Center. These efforts will provide inspiration for upcoming efforts in 2019, such as:
Concurrent to these development efforts, I began work on various improvements and cleanup to Budgie, such as:
In August, Bryan began working extensively on new tools, with the focal points being:
Traditionally, the tracking of upstream projects has involved following a bunch of RSS feeds, subscribing to mailing lists, following social media accounts, and more. In some cases, none of the above would ever be provided, so we would be resigned to routinely checking websites or FTP servers manually. Every moment spent tracking upstreams in this manner means one less moment spent performing upgrades or working on other aspects of Solus, so providing an distro-agnostic solution was absolutely crucial to us as we aim for a more rapid iteration of development.
To accomplish the task of reducing manual work of tracking upstreams, Bryan began work on the first stable release of Cuppa (or Comprehensive Upstream Provider Polling Assistant), which was shipped in early August with support for a truly massive set of providers:
Cuppa has already significantly simplified tracking upstreams in Solus and more recent efforts have expanded our coverage as well.
But it is one thing to be able to track an upstream and upgrade software, it is another to improve the reliability of upgrades and the minimize fallout from them. There are multiple aspects of stack upgrades which were in need of simplifying. One aspect is painting a clearer picture of the reverse dependencies of a package and another is enabling a reliable and most optimal path to a full stack upgrade without missing or skipping packages.
To address this, Bryan worked on eopkg-deps for dependency tracking with eopkg. We are now able to fetch a list of forward and reverse dependencies of a package, as well as be provided a ToDo list of packages which need to be rebuild and in what order.
We immediately put eopkg-deps to the test with an upgrade to KDE Frameworks 5, Mesalib, dbus, evolution-data-server, gstreamer, and more all in August.
Bryan worked on improving the resilience of upgrades with eopkg / pisi in August as well, resolving some edge cases that were discovered during the upgrade of a package.
Lastly in August, I worked on more improvements for Budgie 10.5. I have always believed that Budgie should provide a balanced desktop experience for our users, enabling a reasonable level of curation / personalization out-of-the-box while still empowering our users (and downstreams such as Ubuntu Budgie) to open up a world of possibilities with Budgie applets.
One of my first actionable items in August was to expand on its personalization via Budgie Desktop Settings. I introduced a few goodies such as:
feddamis introduced a new Text Scaling option in the Fonts section of Budgie Desktop setting as well.
I also introduced a long-desired feature for Raven, Notification Grouping and the ability to dismiss individual notifications. Notifications also no longer would fill up your screen thanks to a contribution by
As if our Budgie wasn’t hyped up enough,
yursan9 ported his Caffeine applet (prevents screen dimming and lock screen triggering) over to Vala and provided a stellar patch for its inclusion in Budgie “core”.
In September, as a result of a multitude of factors such as the expiration of various OVH contracts, lack of access to the solus-project.com domain, and the move of the project founder, Ikey, Bryan and I spent a considerable amount of time migrating the project over to new infrastructure as well as a new domain name. Bryan provisioned hardware graciously provided by the Rochester Institute of Technology and I began work to bring back online various services such as our website, development tracker, and forums.
By the end of September, all services were back online, we shipped an ISO refresh with updated repository URLs, and we were back to performing various stack upgrades.
In October, Peter released a public Plasma testing ISO and we performed a multitude of stack upgrades, such as:
Bryan and I sat down in late October to provide a comprehensive update on the state of Solus, development, and our plans for the future of the project via the In Full Sail blog post. In this blog post, we delved into detail on our infrastructure migration, communication attempts with various parties, explaining the shared vision for Solus, reducing bus factor, and intent to pursue membership with the Software Freedom Conservancy.
We also laid out our plans in two different blog posts for improving communication, community engagement, and making it easier to contribute to Solus. These were laid out in Improving Community Engagement and Shiny Delights | The Roundup #11.
Various projects were consolidated to Phabricator, our Development Tracker, such as our branding packages. Additionally, we established a new GitHub organization to maximize our development capabilities and avoid various issues with lack of access to (and ownership of) certain repositories in the old solus-project organization.
In October, Bryan and I sat down for our You Don’t Know JACK Hackfest. The primary focus of this stream was Bryan’s improving of the state of JACK under Solus. For the longest time,
jackd or the JACK Audio Connection Kit hasn’t been properly integrated into Solus. Many audio processing workflows are built entirely around JACK, so this wasn’t a small problem for us. The necessary Kernel flags had been enabled and everything should have been in place to make this happen, but it still needed fixing. During this Hackfest, Bryan found a few issues that needed to be resolved:
Once those problems had been taken care of, we finally had ourselves a
jackd that was working correctly, out-of-the box.
In early November, we released a blog post detailing available Patreon funds, being fully transparent on current access to various financial assets. Early November also saw the departure of the founder of Solus, Ikey Doherty, for various family reasons detailed in his Open Letter.
Back in full gear with wind behind our sails, November was an incredibly busy month for Solus development with several Hackfests. Starting with Just GTK Things, I implemented a new application tracking mechanism for Budgie, which was to be used by the IconTasklist to drastically simplify state tracking and pave the way for new improvements that were to be made to the IconTasklist.
Peter released ypkg v29. For those unfamiliar with ypkg, simply put it is our declarative build format and packaging tool, effectively converting our format into a set of instructions for configuring, building, and generating a binary package (eopkg). ypkg v29 introduced a multitude of changes and improvements, such as:
Bryan unveiled and began his work on a new project, Linux Hardware Qualifier, in the Cornucopia of Compability Hackfest. One of the biggest problems we have when it comes to hardware is knowing exactly what our users need us to support. Up until now, we had relied entirely on bug reports and social media messages to let us know when there’s something we need to enable in the kernel or if there is some out-of-tree driver that we should be providing. It became perfectly clear that a new piece of software was needed to help us do this automatically, in an efficient and timely manner.
So Bryan set out to accomplish the following goals with Linux Hardware Qualifier:
Linux Hardware Qualifier (LHQ) seeks to perform all three of these tasks automatically with the help of the fantastic resources provided by the Linux Kernel Driver DataBase (LKDDB).
During the Cornucopia of Compatibility Hackfest, Bryan laid the foundation for the codebase. This included finally learning how to to use the Meson build system to manage C projects, setting up the initial project architecture, and implementing the parsing for the main
At the start of this month, Bryan and I had our I Choose You, Budgie! Hackfest. In that Hackfest, I worked on the brand new IconTasklist popovers (which I ended up having to completely rewrite due to disk corruption). Bryan continued his work on Linux Hardware Qualifier. He had made significant progress in Linux Hardware Qualifier since the last Hackfest, now being able to read in all of the LKDDB listings, so he spent the majority of the stream implementing LKDDB search functionality. By the end of the stream, he was able to search for any USB device in the LKDDB.
On December 7th, I deployed the latest Budgie development build to Solus and rapidly iterated in preparation for our upcoming Budgie 10.5 release. This brought Solus users the latest stable development build of Budgie, featuring a huge amount of changes and improvements, such as (but not limited to):
I resolved various issues discovered by our users across the unstable and stable repositories, such as fixes for grouping, icon removals, pinning, and more. This happened over the course of 9 subsequent package updates / deployments between the initial release on the 7th and our last hackfest.
On December 15th, Bryan and I had our last Hackfest of this year. In this Hackfest, Rock, Meet Sysfs, Bryan turned his attention to hardware detection, making use of the
sysfs virtual file-system to query the Kernel for existing hardware. A significant portion of the stream was spent working out the organization of
sysfs and culminated in being able to identify all of the ACPI devices attached to Bryan’s workstation. In a neat coincidence, this was the first time that LHQ had identified a piece of hardware that was not currently enabled in the Solus kernels.
During this hackfest, I worked on the Help Center document indexer. This indexer will enable me to introduce a new search API and functionality to the Help Center in 2019.
On the 21st of December, I shipped further refinements to Budgie, such as:
Bryan worked on improving our upstream tracking coverage for Cuppa by reviewing and updating over 300 packages in the span of the last week, bringing our current coverage to over 75% of our entire source repository (git repositories containing package.yml files). Additionally:
Last night I finished the last remaining items for Budgie 10.5, excluding translations (which I’ll cover in our upcoming blog post) and any sneaky goodies I might land before the final release. These changes, now in the Solus unstable repository, include:
org.gnome.desktop.wm.preferenceswhenever we set our budgie-wm button layout.
It is no understatement to say this has been a truly amazing year for Solus. Throughout the year, our community has grown alongside the number of contributions to the project itself. Despite a few setbacks, we have gained new team members, bolstered our infrastructure, and made strides in various areas like tooling and our flagship desktop environment. Our focus on Budgie, Software Center, and tooling in 2018 has been pivotal in getting the Solus ship into tip-top shape and preparing us for future adventures in 2019. We look forward to giving you a sneak peek into some of our plans in our upcoming blog post, bringing you on our journey and enabling you to help shape Solus for years to come. There is always more work for us to do and more improvements to be made as we continue to strive for technical excellence.
So thank you for all of your contributions, your kind words, and your support. Most of all, thank you for believing in the shared vision of Solus. We couldn’t do this without all of you.
The Solus Core Team