The leaves are starting to fall, the colors are changing. The autumn is officially upon us, so grab a pumpkin spice latte and let's go through what's been going on at Funkwhale HQ 🍂
Funkwhale General Assembly outcome
As we announced a little while ago, we held our General Assembly this month. This assembly was our final one. As of Monday 17th September, we have voted to dissolve the Funkwhale association. We've been talking about this action for a little while, so this vote was really just something we needed to do to make it official. The vote was unanimously in favor of adopting the new project statutes and dissolving the association in its current form.
What does this mean for the project? A lot of things, but primarily it means we have removed a lot of bureaucracy from our procedures. We now have a much more streamlined process for setting up teams, approaching projects, and managing membership. We hope that these changes make a positive impact on everyone in the community. Importantly, our new setup enables us to make changes to statutes more easily.
What does this mean for you? If you're not currently a member, it means you can become one more easily and get involved with shaping the future of the project. If you're currently a member, it means you can continue to do what you're doing but no longer need to pay for the privilege.
We still need a bit of time to formalize everything and come up with the initial team structure, but once that's done we hope to have a much smoother journey.
A huge thank you to Agate. Agate started this project many years ago and has stuck with us through this period of change to help us out with everything. This general assembly was made possible by her organization and attendance. On behalf of the entire collective, we salute her 🐳🐋🐙🐢
Vue 3 migration
Since we announced changes to our funding structure, @wvffle has been working diligently on migrating our app from Vue 2 and Javascript to Vue 3 and Typescript. After months of hard work, we merged these changes into our codebase. There are still a lot of bugs to hunt, but the improvement is noticeable. If you're running on the develop branch, why not update and help us catch those bugs?
Huge thanks to @wvffle, @JuniorJPDJ, and @gcrkrause for developing, testing, and managing this enormous project. None of this would have been possible without you 🥳
Funkwhale component library
Hot on the heels of the migration work, @wvffle and @mjourdan have got to work on the new Funkwhale component library. This is the culmination of @mjourdan's new design system, @gcrkrause and my design implementation, and @wvffle's push for a more modular frontend. Want to get a glimpse of what's in store for your pod? Head over to https://ui.funkwhale.audio to see what we've been cooking up.
Thanks again to @gcrkrause for providing help with deployment and overseeing the project management for this 🐳
Client libraries
Following a lot of under-the-hood improvement, we've been working on our new client libraries. These libraries provide an easier way for developers to interact with the Funkwhale API and will enable us to create new things much faster. @wvffle and @gcrkrause have been hard at work on a new Typescript library to integrate into the Funkwhale frontend. @gcrkrause and I have also been working on a new Python library for use in our external projects such as the CLI and Mopidy plugin. After a lot of headaches, we finally have something to show for it!
- Our Typescript library is available on NPM
- Our Python library is available on PyPI
Please note these libraries are still a work in progress and are not yet ready for production. This development process has highlighted a few issues in our API we need to address, and we have a lot of tests still to write. Once we're done, working on Funkwhale is going to be much easier for everyone involved 👩💻
Embedded player rewrite
Our embedded player is an important part of the Funkwhale experience. It allows you to embed public Funkwhale content anywhere on the web with a nifty little player. The widget was beginning to show its age a bit, so as an addendum to the Vue 3 and Typescript work @wvffle agreed to rewrite the whole thing from scratch. You should find the new widget much lighter (less than 1/10 the size of the old one) and much more robust 💪
Ongoing development work
Phew, that was a lot of big stuff to go through. As always, we're continuing to improve things in the background, so let's go through some of that now.
- @devilcius oversaw the release of Funkwhale 1.2.8, which addressed a few bugs and updated some dependencies. Thanks for handling this release!
- @wvffle and I have been doing some work to improve our localization processes. We're moving away from gettext in favor of a more Vue-friendly plugin that makes it easier to handle strings in the app.
- I've been working on a UX copy overhaul to improve the text in the Funkwhale app. Once we've merged our localization changes, I'll begin this process fully.
That's all for now! Make sure to wrap up warm as the weather changes, and we'll see you again next month 🐳