Funkwhale 0.19 was published this morning, with updatable artist, album and track pages, more resilient and usable file upload, OAuth2 support, a brand new admin UI for your instance library, S3 storage support, and dozens of other bugfixes and improvements!
Many, many kind thanks to the dozens of people involved in this release: testers, documentation writers, developers, translators, bug reporters, designers… You made it possible!
As usual, our full changelog is available here, so I won't dive too much in the details here.
Since the 0.18 release, lots of things are changing in the way we're working and I want to explain what will happen next.
While previous releases usually required some manual, ad-hoc actions and scripts to be run during the upgrade (like when we changed the way music was federated), this release contains no such breaking change.
Additionnaly, for the first time, we published release candidates a few weeks before the final 0.19 release, to gather feedback and critical bugs from our community. Some severe bugs were spot this way, and I expect this new workflow to produce overall stabler, less buggy releases than before.
Roughly 14 weeks went between the Naomi release (0.18) at the end of January, and this release. This is similar to the time elapsed between the 0.17 and 0.18 releases.
Given our resources and roadmap, I think we'll keep doing a new major release every 3 or 4 month for the time being, as it leaves us time to work on bigger features, without the pressure of monthly releases, as we were doing before.
Of course, this may change in the future, and especially when the Association is up and running (our first General Assembly will take place this Sunday, by the way, and you're invited ;).
We'll also continue to issue bugfix, minor releases like we did for the 0.18 while the 0.19 was in development.
This longer release cycle will also leave us more time to work with the community, in a structured way, around new features.
If you're reading our blog, you now that lot of changes occurred over the past few months, to transition to a community-driven project, with a democratic governance.
A critical aspect of this work involves building a roadmap together. The 0.20 release will be the first one to actually follow this roadmap regarding new features that are implemented.
This means Funkwhale new developments will progressively become more and more aligned with the community priorities.
Transitioning from a BDFL-based to a community-based governance isn't easy, to say the least.
As a maintainer, this transition has consequences on my daily work. It implies I have less freedom on the choice of features I work on, and it forces me to be a manager as well as a developer. At the same time, it also gives me more confidence that what I'm doing actually matters for the community.
It also has concrete consequences on the community. Structuring the development and project management like we're doing increases the mean time between a contribution and it's actual, live deployment. It also requires more communication, which can be frustrating and give an impression of complexity sometimes.
Overall, I believe there is a tradeoff between our need for flexibility and freedom, and our need for democracy, transparency and accountability. As the project and community grow, it becomes more and more important to consider how we are working together, and make this readable to everyone.
This is one of the core motivation behind the work we've been doing lately, and I hope this gives you a better understanding of the challenges and future of Funkwhale, not only as a software project, but also as a group of humans building it together.
Wonderful people are helping with this task, by writing, reviewing and proof-reading documents, enforcing our Code on Conduct, sharing feedback and ideas, giving their time and energy for the collective. This is often invisible work in contrast with with the software aspect of the project, but it's incredibly valuable.
Thank you Gordon, Julie, Ginny, Jovuit, Emi, Hælwenn, Ciarán, Linda, Shiro, Robin, Audrey, Renon, Mélanie and everyone else I forgot, for your occasional or ongoing involvement. It truly means a lot!