New year, new updates. Let's take a look at what's been happening here at Funkwhale.
This has been a very busy month for the Funkwhale team. We've launched into the new year with a massive task list, and we've been making lots of changes.
We use Python to power Funkwhale's API. Python is a great and flexible language, but its dependency management can get messy. You have to install and set up a virtual environment, install dependencies from a file… it's not ideal. So we decided to take some time this month to improve this.
To make dependency management easier going forward, we've implemented Poetry. This nifty tool takes the complexity out of handling dependencies and virtual environments. It also keeps everything off of your base system, so no need to worry about getting software mixed up!
A lot of work went in to updating all Funkwhale's front- and back-end dependencies for 1.2.0. We'd not kept things up-to-date, so some dependencies had introduced big changes. We couldn't let this continue, so we decided to introduce some automation.
Our repository now has a Renovate bot. This bot scans our dependencies and opens requests to update them. It means we can keep on top of changes and not run into this issue again. That's a load off our minds!
As mentioned above, we use Python to power our API. Python introduces changes between each new version, so we have to stay on our toes. A new version may drop support for something, or we may add something that doesn't work on an old version. This affects those who run Funkwhale on bare metal. Distros tend to ship with different Python versions.
To help us catch issues early, we now have runners that test all supported Python versions. This means our code is being tested to check for any breaks before we even merge changes!
This is a subject that is near and dear to my heart. Our documentation has languished a little bit over the years. We've added bits, chopped other bits out, and fixed some language. But what we haven't done is interrogate the structure of the information. Some things are still quite hard to find and understand.
We decided that the time was right to tackle this issue head on. This month we have been rewriting and restructuring all documents in our documentation. We've rewritten guides, added missing information, and completely reworked the structure. This is still a work in progress (turns out we have a lot of documentation). The goal is to make it easy for everyone to find what they need with a few clicks!
Something we've been keen to do is introduce more structure to our UI. Currently, we are using Fomantic elements to build everything. Fomantic is great, but making it feel like our own can be difficult. We're also not always consistent with how we use it in different parts of the app. This can get quite confusing for users.
We've started putting ideas together for a solution to this issue. While we don't have anything concrete to show right now, we're pretty excited about these ideas. We're looking forward to being able to show you something more concrete soon!
As always, we've taken some time this month to fix some bugs. We'll be putting together a new bugfix release soon, so we'll go through them in detail then.
As part of the 1.2.0 release, we linted our entire codebase. This is a process that looks at the code and corrects its format and layout. While this is a great thing to do, it can also introduce some problems. We've been able to pick through and sort these out, and we now lint everything automatically. This should keep these bugs out in the future!
As we mentioned in a previous post, we're looking to apply to GSoC this year. We put out a call for suggestions and the Funkwhale community responded 🙏
We now have a big list of suggestions on our forum. We're going to take some time to sort through these and put some estimates together. The steering committee will meet next week to discuss next steps and decide what we want to put forward.
A huge thank you to everyone who left suggestions! We'll keep you all updated at every step of the process 😀
That's all for now everyone! Hope you've had a great start to the year 🎉