Funkwhale Blog - Announcementhttps://blog.funkwhale.audio/2023-11-28T00:00:00+01:00Funkwhale 1.4.0 feature highlight2023-11-28T00:00:00+01:002023-11-28T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2023-11-28:/140-feature-highlight.html<p>Let’s take a look at some of the new things shipping in Funkwhale 1.4.0!</p><p>Hi everyone 👋</p>
<p>It's time for our first semiannual minor release! As mentioned before <a href="https://blog.funkwhale.audio/2022-november-update.html#funkwhale-release-schedule">in a previous update</a>, we've decided to start shipping minor releases on a more consistent schedule so that users aren't left wondering when they can expect something new.</p>
<p>Let's take a look at some of the new things shipping in Funkwhale 1.4.0!</p>
<h2 id="laying-the-groundwork-for-faster-radios"><a class="toclink" href="#laying-the-groundwork-for-faster-radios">Laying the groundwork for faster radios</a></h2>
<p><a href="https://dev.funkwhale.audio/petitminion">petitminion</a> has been hard at work implementing some new features for Funkwhale radios. Funkwhale 1.4.0 ships support for <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2430">caching radio tracks into Redis</a>. This change lays the groundwork to make radios much faster by keeping the list of radio tracks in-memory. We'll add support for this in the frontend app in an upcoming release.</p>
<p>This change also brings support for a new <code>v2</code> endpoint for radios, which lays the foundation for a much cleaner and more extensible radio feature in future 🏃♂️💨</p>
<h2 id="maloja-plugin-improvements"><a class="toclink" href="#maloja-plugin-improvements">Maloja plugin improvements</a></h2>
<p><a href="https://dev.funkwhale.audio/phw">phw</a> updated the Maloja plugin to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2359">add more information to payloads</a>. Maloja submissions now include:</p>
<ol>
<li>Duration</li>
<li>Album artists</li>
</ol>
<p>The plugin now also gives users the option to disable server-side metadata fixing if it's causing issues. This change brings the Funkwhale plugin much more in-line with Maloja's specification 💪</p>
<h2 id="new-server-settings"><a class="toclink" href="#new-server-settings">New server settings</a></h2>
<p>Funkwhale 1.4.0 introduces a new version of the <a href="http://nodeinfo.diaspora.software/">Nodeinfo endpoint</a>. As part of this new specification, we've added two new instance settings:</p>
<ul>
<li>Server Location: The country or territory in which your server is located.</li>
<li>Moderation languages: The language(s) spoken by the server moderator(s).</li>
</ul>
<p>This information will be used to give users more information when looking at <a href="https://www.funkwhale.audio/join/">the pod picker</a>, so it's worth updating these new settings!</p>
<h2 id="improved-superuser-creation"><a class="toclink" href="#improved-superuser-creation">Improved superuser creation</a></h2>
<p>Funkwhale is built on top of <a href="https://www.djangoproject.com/">Django</a> and uses a lot of its built-in tooling on the back end and the command line. Server admins have always needed to interact directly with the <code>manage.py</code> script to perform tasks on the back end, including the initial creation of the superuser account.</p>
<p>In Funkwhale 1.4.0, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1288">we've moved this functionality into our own management script</a>. This means that the superuser account must follow the same rules and limitations that apply to other accounts, such as not allowing blocked usernames. We've also taken this opportunity to clean up some of the underlying code for assigning permissions, so consider this a cleanup exercise 🧹</p>
<h2 id="migrate-in-place-imports-to-s3"><a class="toclink" href="#migrate-in-place-imports-to-s3">Migrate in-place imports to S3</a></h2>
<p>In the past, migrating from on-server storage to S3-backed storage had one major failing: in-place imports did not update properly. This is due to how files are referenced in the database. While normal imports that are mirrored on S3 can just have the S3 URL added to them, in-place imports use an absolute filepath that makes them a bit more challenging to move.</p>
<p>To resolve this, we've <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2156">added a new management command to update in-place imports</a> that have been moved to S3. Admins can now:</p>
<ol>
<li>Upload their in-place directory structures to an S3 bucket</li>
<li>Run the <code>inplace_to_s3</code> management command with a reference to the source folder</li>
</ol>
<p>And that's it! The database is updated with references to the new S3 locations taken from the <code>.env</code> file ☁️</p>
<p>That's it for now! We're still working on a bunch of stuff under the hood to improve our front- and back-end experience for all users. We'll post again once we have a release candidate ready for 1.4.0 🐳</p>March 2023 Update2023-03-25T00:00:00+01:002023-03-25T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2023-03-25:/2023-march-update.html<p>There haven't been any update for a while, but a lot happened!</p><p>Hi everyone 🐳</p>
<p>It's been a while since we last put out a general update. We've been very busy with some project work and personal/professional changes that have kept us away from the social posting for a while. But we're through that tunnel now, so it's time for a quick rundown of what's been going on!</p>
<h2 id="funkwhale-merch-store"><a class="toclink" href="#funkwhale-merch-store">Funkwhale merch store</a></h2>
<p>Funkwhale now has a <a href="https://funkwhale.myspreadshop.de/">merch store</a> where you can buy clothing and accessories sporting the Funkwhale logo. The Funkwhale project receives a cut of the proceeds for every purchase made, so this is a good way to support the project and get some cool new threads from the transaction.</p>
<h2 id="nlnet-funding"><a class="toclink" href="#nlnet-funding">NLNet funding</a></h2>
<p>Following some back-and-forth and updated drafts, we're pleased to announce that Funkwhale has received another funding grant from NLNet. We're still waiting to sign our MoU, but the funding has been agreed in principle.</p>
<p>We're planning to use this funding to focus on the following big projects this year:</p>
<ol>
<li>To extend our use of the ActivityPub protocol to make Funkwhale a more social experience for our users</li>
<li>To improve our cataloguing and suggestion systems by implementing support for a new collections mechanism, improved tagging, and multi-artist content as well as working with MetaBrainz to implement optional ListenBrainz suggestions</li>
<li>To update our web app to improve its design, responsiveness, and accessibility across all devices</li>
<li>To extend our moderation tools for server administrators and make user data portable in compliance with GDPR</li>
<li>To build native experiences for a range of platforms using Tauri</li>
<li>To extend our API to support more content types</li>
</ol>
<p>This is going to be a huge amount of work which will ultimately form the backbone of a next generation Funkwhale experience. To ensure that we're addressing usecases properly, we're using a specification-first approach to designing new features. If you're interested in feeding back on new specs and participating in development discussions, check out the <a href="https://forum.funkwhale.audio/t/feature-development">feature development category in the forum</a>.</p>
<p>As before, a huge thank you to NLNet, who have been incredibly supportive during what was a difficult transition. We're pleased that they see value in the work we're doing, and we aim to use this funding to diversify the Fediverse and offer even more features to its users.</p>
<h2 id="130-release-candidates"><a class="toclink" href="#130-release-candidates">1.3.0 release candidates</a></h2>
<p>The 1.3.0 RC testing is continuing. As you may have seen in a previous post, we recently found a security bug which needed a patch, so you can expect another release candidate containing this fix soon.</p>
<p>We still have a few things we need to address before we can launch 1.3.0 to the public. If you want to keep up with our progress, check out <a href="https://dev.funkwhale.audio/groups/funkwhale/-/milestones/5#tab-issues">the milestone board</a> to see how things are progressing.</p>
<h2 id="core-group-elections"><a class="toclink" href="#core-group-elections">Core group elections</a></h2>
<p>We've been busy over the last couple of months setting up votes for our core groups. These are the working groups that will be responsible for the various tasks that need to be taken care of, so getting these set up was really important.</p>
<p>So far, we have formed the following groups:</p>
<ul>
<li>The steering group</li>
<li>The development group</li>
<li>The documentation group</li>
<li>The moderation group</li>
</ul>
<p>If you're interested in becoming part of a group, or voting on future group elections, you can become a member of the collective by introducing yourself <a href="https://forum.funkwhale.audio/t/community">on the forum</a> and requesting membership.</p>
<h2 id="new-website"><a class="toclink" href="#new-website">New website</a></h2>
<p>For the last year, <a href="https://dev.funkwhale.audio/georgkrause">Georg</a> has been chipping away at implementing a new website design drawn up by <a href="https://dev.funkwhale.audio/mjourdan">Matthieu</a>. The current project website is a full web application written in Vue, which requires a lot of maintenance and upkeep. Since this site is really only a place to hold project information, we decided this was overkill and we wanted to create a simple, well-designed static site.</p>
<p>While the new site isn't finished yet, you can check out the work in progress over at <a href="https://next.funkwhale.audio">https://next.funkwhale.audio</a>. If you see something that needs to be fixed, please leave your feedback in <a href="https://forum.funkwhale.audio/d/304-website-remake">this forum thread</a>.</p>
<h2 id="hiring-a-resource"><a class="toclink" href="#hiring-a-resource">Hiring a resource</a></h2>
<p>After some discussions between the steering group, and a <a href="https://forum.funkwhale.audio/d/281-hiring-a-paid-part-time-maintainer">community vote</a>, the Funkwhale collective is happy to announce that Georg will be working part time on the project as a paid resource. Having a dedicated resource to work on technical improvements and contributor feedback will hopefully make development move a lot faster, so we're very excited to start!</p>
<p>As mentioned in the forum, the position is paid out of the collective's monthly budget, which mostly comprises one-off and recurring donations. If you like what we do and want to see our work continue, we would really appreciate anything you're able to give. You can check out our <a href="https://next.funkwhale.audio/donate/">donations page on the new website</a> for ways to support us.</p>
<p>That's all for now. Hopefully, we'll be back next month with another update 🐋</p>2022 November update2022-11-30T00:00:00+01:002022-11-30T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-11-30:/2022-november-update.html<p>It's nearly the end of the year, but we're not slowing down!</p><p>Hello again everyone 🐳</p>
<p>We're fast approaching the end of the year, but that doesn't mean we've slowed down. Quite the opposite in fact! We've had a pretty busy month here at Funkwhale HQ and we've got some exciting bits and pieces to share with you.</p>
<p>Before we begin: we recently released Funkwhale 1.2.9. Go check out <a href="https://blog.funkwhale.audio/funkwhale-129-release.html">the blog post</a> and update if you haven't already!</p>
<h2 id="visualizer-support"><a class="toclink" href="#visualizer-support">Visualizer support</a></h2>
<p>Let's start with something fun! One of our most requested features is a music visualizer. This lets you pull up some cool looking visuals while you're listening to your tunes. Thanks to <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a>'s efforts, we now support the <a href="https://github.com/jberg/butterchurn">Milkdrop visualizer</a> directly in your browser!</p>
<p>We still have a few things we'd like to add, including support for choosing presets and some additional controls. On the whole we're really pleased with how this feature has turned out and we can't wait for you to enjoy it 😁</p>
<p>You can see a WIP version of the visualizer in the video below:</p>
<iframe title="MilkDrop test" src="https://videos.funkwhale.audio/videos/embed/224b552b-9b49-4d59-ba5e-4a96d3cb1ad7" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" frameborder="0"></iframe>
<h2 id="new-translation-tooling"><a class="toclink" href="#new-translation-tooling">New translation tooling</a></h2>
<p>We've been using the venerable gettext standard to handle translations in Funkwhale for a long time. It's a tried and tested system for extracting strings and handing them off to our translation system. However, we found a tool which integrates much better with our current setup: <a href="https://vue-i18n.intlify.dev/">Vue I18n</a>. This tool brings a few really nice quality of life improvements:</p>
<ul>
<li>Lazy loaded translations</li>
<li>Reduced number of scripts in our build process</li>
<li>Better IDE support</li>
</ul>
<p>We've spent some time over the last month pulling out every string and context from our frontend code and formatting them for this new structure. We've made a real effort to not lose any previous translations, although there will be a few strings that need to be tweaked 🙏</p>
<h2 id="collective-membership-now-open"><a class="toclink" href="#collective-membership-now-open">Collective membership now open</a></h2>
<p>As mentioned previously, we've been busy setting up our new collective structure. We're pleased to announce that membership and voting rights are now available for everyone. If you're interested in getting involved, head over to <a href="https://forum.funkwhale.audio/t/community">our forum</a> and introduce yourself. Put a note in saying you'd like to become a member, and we'll make sure you get the permissions you need 🥰</p>
<h2 id="new-feature-request-flow"><a class="toclink" href="#new-feature-request-flow">New feature request flow</a></h2>
<p>Another thing we've been working hard on is our new feature request flow. In the past the feature request process has been somewhat unstructured and haphazard. This has led to us having a confusing and difficult to maintain backlog of issues.</p>
<p>To resolve this, we'll be leaning on our forum for feature discussion more. We've set up <a href="https://forum.funkwhale.audio/t/feature-development">a forum space for feature discussions</a>, with a <a href="https://forum.funkwhale.audio/d/216-feature-request-flow">set of instructions</a> to show everyone how the flow works. The goal is to gather as much detail as possible through discussions with the community, draft a workable specification for the feature, and then build to the specification. This will make building, fixing, and maintaining our features a lot easier going forward 🛠️</p>
<h2 id="funkwhale-release-schedule"><a class="toclink" href="#funkwhale-release-schedule">Funkwhale release schedule</a></h2>
<p>As you are all aware, it has been almost a year since our last minor version release. While we've kept pushing patch releases for Funkwhale, we're aware that you all want to see new features and improvements. We also want to build these! So let's talk about what we're planning.</p>
<p><a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> has opened up a <a href="https://forum.funkwhale.audio/d/223-funkwhale-14-release-planning">discussion in the forum</a> about our release planning for 1.4.0. Our current thinking is that we'd like to aim for a 6 month release cycle for new versions. We will push out patch releases whenever they are needed, but we'd like to try and keep a regular schedule for new features.</p>
<p>Under this new schedule, we'll work on whatever features and issues we feel we have the time and scope for. When the release date comes around, we'll cut a release containing what we've been able to finish in that time. This means we won't be waiting another year for a release 📅</p>
<h2 id="status-of-130"><a class="toclink" href="#status-of-130">Status of 1.3.0</a></h2>
<p>So the big question is: when can I get my hands on all these new changes? While we don't have an exact date, we are <em>very</em> close to a release candidate. We have a few additional tasks to complete regarding documentation and setup, but then we're anxious to hand it over to you to test.</p>
<p>The release candidate will be a <strong>big</strong> upgrade and will certainly contain some bugs. We'll be looking to the community to kick the tires, submit feedback, and help us with localization as always. We'll keep you informed as the time approaches.</p>
<p>Until then, just keep swimming 🐋</p>2022 October update2022-10-30T00:00:00+02:002022-10-30T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-10-30:/2022-october-update.html<p>Before the trick-or-treaters run us all off our feet, let's take a moment to look back at the month's progress 🎃</p><p>It's been another (very) busy month here at Funkwhale HQ. Before the trick-or-treaters run us all off our feet, let's take a moment to look back at the month's progress.</p>
<p>We had an unexpected, but very pleasant, surprise to start our October. <a href="https://nlnet.nl/">NLNet</a> approached us and offered us an additional pot of money to complete tasks during the month of October as a last push. Naturally, we accepted the offer. As you can imagine it made the month quite hectic!</p>
<h2 id="new-audio-player"><a class="toclink" href="#new-audio-player">New audio player</a></h2>
<p>One of our funded tasks this month was a complete rewrite of our audio player. Previously, we used a Javascript library called <a href="https://howlerjs.com/">Howler</a> to handle our player and queue. Howler has served us well for many years, but we wanted to start expanding on our audio capabilities. <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> has spent the month working on rewriting our player and queue logic from scratch. He's replaced Howler with web audio APIs and has crafted new logic to make managing your playback and queue quicker, simpler, and more robust.</p>
<p>Switching to web APIs also opens the door for future development, such as an equalizer and a visualizer. We're incredibly excited to see what we can do with this to make Funkwhale better. Thanks for all the hard work <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a>!</p>
<h2 id="improved-spa-manifest-endpoint"><a class="toclink" href="#improved-spa-manifest-endpoint">Improved SPA manifest endpoint</a></h2>
<p>One of our projects this month was to align our SPA manifest endpoint more closely to the specs. We've added a new serializer to this endpoint and updated our assets to match. This will provide a much cleaner PWA experience going forward. Thanks to <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> and <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> for their work on this!</p>
<h2 id="apiv2-foundation"><a class="toclink" href="#apiv2-foundation">APIv2 foundation</a></h2>
<p>Funkwhale's API has served us well for the last few years. However, as we look to the future we decided we want to give ourselves a fresh start. To support this, we have introduced a new API path for Funkwhale: <code>/api/v2/</code>.</p>
<p>You can see this in action on <a href="https://tanukitunes.com/api/v2/instance/nodeinfo/2.0">Tanukitunes</a>. Currently, we don't have any new endpoints set up on v2, but we can now serve data on this path. We've got some big plans for where we want v2 to go, so this was an important step. Thanks for all the work on this <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a>!</p>
<h2 id="reduced-latency-with-reachability-task"><a class="toclink" href="#reduced-latency-with-reachability-task">Reduced latency with reachability task</a></h2>
<p>Funkwhale is a pretty chatty app. To keep up-to-date with federated instances, pods have to talk to each other pretty frequently. This can lead to quite a lot of resources being used. While looking at our logs, we noticed we were receiving quite a few communication failures due to pods being offline or unavailable.</p>
<p><a href="https://dev.funkwhale.audio/petitminion">@petitminion</a> took some time this month to address this by creating a new task that checks the availability of pods on the network. If a pod isn't available, this information is stored in the database. Once it comes back online, this is updated and the last reachable date is recorded. We can use this information to stop calls to unavailable pods, reducing the resource usage. Thanks <a href="https://dev.funkwhale.audio/petitminion">@petitminion</a>!</p>
<h2 id="new-developer-and-contributor-documentation"><a class="toclink" href="#new-developer-and-contributor-documentation">New developer and contributor documentation</a></h2>
<p><a href="https://dev.funkwhale.audio/sporiff">I've</a> also been pretty busy this month. One of the items we decided to tackle were the last documentation rewrites. This included our developer documentation and contributor documentation. As of this month, every single piece of documentation has been overhauled, and all reStructuredText files have been replaced with Markdown files 🥳</p>
<p>We hope the new documentation makes it easier for people to get involved with the project!</p>
<h2 id="recommendation-system-testing"><a class="toclink" href="#recommendation-system-testing">Recommendation system testing</a></h2>
<p><a href="https://dev.funkwhale.audio/petitminion">@petitminion</a> also took some time this month to do some investigation into the <a href="https://github.com/metabrainz/troi-recommendation-playground">troi recommendation playground</a>. This is a collection of tools made by the <a href="https://metabrainz.org/">Metabrainz foundation</a> to facilitate music recommendations and playlist generation.</p>
<p>As part of this investigation we've drafted <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/wikis/specs/troi">a feature spec</a> to showcase how we might be able to integrate this feature in future. We haven't got any plans for it yet, and the library still isn't stable. However, all signs point to it being compatible, so we're keeping it in our minds!</p>
<h2 id="new-collections-spec"><a class="toclink" href="#new-collections-spec">New collections spec</a></h2>
<p>One of the biggest issues facing Funkwhale users is content curation. Funkwhale's library system grew organically with the platform. It's been there since the beginning and has been tweaked with each new update to user access and sharing. We know that our current tooling doesn't suit everyone's needs, so <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a> spent some time this month coming up with a solution.</p>
<p>Following a <a href="https://forum.funkwhale.audio/d/214-whats-wrong-with-libraries-and-a-path-to-fix-them">long discussion in our forum</a> as well as some online meetings between the team, we've come up with a direction we're happy with. The resulting spec for the new <strong>Collections</strong> mechanic <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/wikis/specs/collections">can be found here</a>. There isn't a timescale for this yet, but <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a> has already done a lot of the hard work by providing the logic and designs.</p>
<h2 id="anything-else"><a class="toclink" href="#anything-else">Anything else?</a></h2>
<p>Phew, that was a lot to go through. This month has been dominated by these funded tasks, but we've also been busy fixing bugs for 1.3.0 and have received a few nice contributions from community members. We'll talk about these when they're released!</p>
<p>One other thing we've been doing this month is discussing changes to our release cycle. 1.3.0 has been in the making for nearly a year now. While this has been necessary due to the number of underlying changes, we don't want to leave you waiting this long again! We've opened up a discussion <a href="https://forum.funkwhale.audio/d/223-funkwhale-14-release-planning">in our forum</a> about release planning and cycles. If you've got some thoughts, we'd love to hear them!</p>
<p>We're planning a final bugfix release (1.2.9) before we release 1.3.0. Obviously, if anything critical happens in between we'll keep you all informed.</p>
<p>Thanks again to <a href="https://nlnet.nl/">NLNet</a> for their extraordinary generosity and their help with these projects 🎉</p>2022 September update2022-09-29T00:00:00+02:002022-09-29T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-09-29:/2022-september-update.html<p>The weather is getting cooler, but the development work is heating up 🔥</p><p>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 🍂</p>
<h2 id="funkwhale-general-assembly-outcome"><a class="toclink" href="#funkwhale-general-assembly-outcome">Funkwhale General Assembly outcome</a></h2>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>A huge thank you to <a href="https://agate.blue">Agate</a>. 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 🐳🐋🐙🐢</p>
<h2 id="vue-3-migration"><a class="toclink" href="#vue-3-migration">Vue 3 migration</a></h2>
<p>Since we announced changes to our funding structure, <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> 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?</p>
<p>Huge thanks to <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a>, <a href="https://dev.funkwhale.audio/juniorjpdj">@JuniorJPDJ</a>, and <a href="https://dev.funkwhale.audio/gcrkrause">@gcrkrause</a> for developing, testing, and managing this enormous project. None of this would have been possible without you 🥳</p>
<h2 id="funkwhale-component-library"><a class="toclink" href="#funkwhale-component-library">Funkwhale component library</a></h2>
<p>Hot on the heels of the migration work, <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> and <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a> have got to work on the new Funkwhale component library. This is the culmination of <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan's</a> new design system, <a href="https://dev.funkwhale.audio/gcrkrause">@gcrkrause</a> and <a href="https://dev.funkwhale.audio/sporiff">my</a> design implementation, and <a href="https://dev.funkwhale.audio/wvffle">@wvffle's</a> push for a more modular frontend. Want to get a glimpse of what's in store for your pod? Head over to <a href="https://ui.funkwhale.audio">https://ui.funkwhale.audio</a> to see what we've been cooking up.</p>
<p>Thanks again to <a href="https://dev.funkwhale.audio/gcrkrause">@gcrkrause</a> for providing help with deployment and overseeing the project management for this 🐳</p>
<h2 id="client-libraries"><a class="toclink" href="#client-libraries">Client libraries</a></h2>
<p>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. <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> and <a href="https://dev.funkwhale.audio/gcrkrause">@gcrkrause</a> have been hard at work on a new Typescript library to integrate into the Funkwhale frontend. <a href="https://dev.funkwhale.audio/gcrkrause">@gcrkrause</a> and <a href="https://dev.funkwhale.audio/sporiff">I</a> 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!</p>
<ul>
<li>Our Typescript library is <a href="https://www.npmjs.com/package/@funkwhale/api-client">available on NPM</a></li>
<li>Our Python library is <a href="https://pypi.org/project/funkwhale-api-client/">available on PyPI</a></li>
</ul>
<p>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 👩💻</p>
<h2 id="embedded-player-rewrite"><a class="toclink" href="#embedded-player-rewrite">Embedded player rewrite</a></h2>
<p>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 <a href="wvffle">@wvffle</a> 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 💪</p>
<h2 id="ongoing-development-work"><a class="toclink" href="#ongoing-development-work">Ongoing development work</a></h2>
<p>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.</p>
<ul>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> oversaw the release of Funkwhale 1.2.8, which addressed a few bugs and updated some dependencies. Thanks for handling this release!</li>
<li><a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> and <a href="https://dev.funkwhale.audio/sporiff">I</a> 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.</li>
<li><a href="https://dev.funkwhale.audio/sporiff">I've</a> 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.</li>
</ul>
<p>That's all for now! Make sure to wrap up warm as the weather changes, and we'll see you again next month 🐳</p>Funkwhale 1.2.8 bugfix release2022-09-12T00:00:00+02:002022-09-12T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-09-12:/funkwhale-128-release.html<p>More funky goodness for your pod 😎</p><p>Hello again everyone 👋</p>
<p>We're pleased to announce the release of Funkwhale 1.2.8. This is another bugfix and minor enhancement release that includes some quality of life improvements.</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<ul>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> fixed an issue that caused the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1895"><code>search3</code> Subsonic endpoint to not return all songs</a>. We don't want you missing out on anything 🎧</li>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> fixed some <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1901">odd behavior in our radio builder's artist search</a>. Now your radio building experience should be that much easier 📻</li>
<li><a href="https://dev.funkwhale.audio/interru">@interru</a> fixed an issue that caused <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1902">album covers to overlap the queue on narrow screens</a>. One size fits all 🧣</li>
<li><a href="https://dev.funkwhale.audio/JuniorJPDJ">@JuniorJPDJ</a> fixed a bug that caused <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1927">an empty screen to be shown on moderation requests</a>. This should make it easier to keep your pod in line 🔧</li>
<li><a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> fixed an issue that left <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1963">skipped imports in the database after in-place imports</a>. No sense in wasting space ♻️</li>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> fixed an issue that caused <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1964">the wrong artist to be selected for albums in certain cases</a>. Now you'll know exactly who's tunes you're dancing to 💿</li>
<li><a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> added support for the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1967">Sentry SDK</a> to enable error reporting. You can send errors to your own server, or to ours! 🐛</li>
<li><a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> pinned a dependency <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1980">to prevent issues that a new version has introduced</a> 📌</li>
</ul>
<p>As always, you can follow the upgrade instructions in <a href="https://docs.funkwhale.audio/admin/upgrading.html">our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>2022 August update2022-08-22T00:00:00+02:002022-08-22T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-08-22:/2022-august-update.html<p>It's that time of the month again everyone! Let's take a couple of minutes to round up what's been happening here at Funkwhale HQ 📰</p><p>It's that time of the month again everyone! Let's take a couple of minutes to round up what's been happening here at Funkwhale HQ 📰</p>
<h2 id="sparkly-new-infrastructure"><a class="toclink" href="#sparkly-new-infrastructure">Sparkly new infrastructure</a></h2>
<p>As we mentioned <a href="https://blog.funkwhale.audio/2022-july-update.html#new-hardware">last month</a>, we've been hard at work migrating our services to new hardware. We're pleased to announce that we have finished moving everything 🥳 We've already noticed significant improvements to most of our services. We hope you do too!</p>
<p>We've also taken this opportunity to improve our monitoring and logging. There are still a few things we want to add, but we've made an amazing start!</p>
<h2 id="improved-mail-service"><a class="toclink" href="#improved-mail-service">Improved mail service</a></h2>
<p>While we're talking about servers, we've taken some time to improve our mail server. We use this server to send signup and notification emails, as well as host our project email. We noticed it was a bit flaky, so we decided to dive into the configuration and tune it a bit. Thanks to <a href="chaos.social/@frommMoritz">@frommMoritz</a> for their guidance on this 🙏</p>
<h2 id="project-updates"><a class="toclink" href="#project-updates">Project updates</a></h2>
<p>This month we met to decide some things about the future of the project. Specifically, we've started the process of winding down the association. We moved most of our financial assets over to our new host in preparation for the closure.</p>
<p>Funkwhale Association members will receive an email about a general assembly scheduled for next month. We plan for this to be the last assembly 😔 But don't be sad! We will be replacing it with something much better! Keep a lookout for more information on this blog and on our forum. We promise we'll keep you up-to-date with everything 💪</p>
<h2 id="funkwhale-design-system"><a class="toclink" href="#funkwhale-design-system">Funkwhale design system</a></h2>
<p><a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a> has been hard at work creating a bespoke design system for Funkwhale. You can see their work in <a href="https://design.funkwhale.audio/#/view/e3a00150-0f5e-11ed-adb9-fff9e854a67c?page-id=63cce0e0-1a5f-11ed-8551-a35b3c702efa&section=interactions&index=0&share-id=30863810-2092-11ed-ab91-869e1ac46d51">our Penpot instance</a>. We will be using this to inform all of our design decisions going forward. Keep your eyes peeled for our UI elements on our website, our blog, and our apps! ✨</p>
<p>We're looking for experienced designers and passionate amateurs to come and give their feedback. We're looking for feedback on the following: </p>
<ul>
<li>How best to integrate this sytem with our projects</li>
<li>Broader design and accessibility considerations</li>
<li>Any crucial components we haven't considered</li>
</ul>
<p>If you want to give some feedback, please leave it on our <a href="https://dev.funkwhale.audio/funkwhale/ui/-/issues/19">issue tracker</a>.</p>
<p>Our design system is still a work in progress and will continue to evolve as we move forward. We're aware that we don't have everything yet, but we're working on it 🎨</p>
<h2 id="development-updates"><a class="toclink" href="#development-updates">Development updates</a></h2>
<p>This month we've continued our work from last month, focusing on the Vue 3 migration and API cleanup. We've also opened up a couple of development-related topics in the forum. Check them out if you want to get involved!</p>
<ul>
<li><a href="https://forum.funkwhale.audio/d/198-funkwhale-api-version-2-planning">API v2 planning</a></li>
<li><a href="https://forum.funkwhale.audio/d/199-ui-framework-tooling">Funkwhale UI tooling</a></li>
</ul>
<p>Here are some of the changes that we merged this month so far:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/georgkrause">@geogkrause</a> <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1928">added support for the Sentry SDK</a>. This lets admins monitor pods more easily and enables us to keep track of errors 🕵️</li>
<li><a href="https://dev.funkwhale.audio/sporiff">I've</a> added some missing documentation about <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1936">upload limits</a>. This can be a tricky concept to wrap your head around, so it's good to clarify it 💡</li>
</ul>
<p>That's it for now! We'll see you again soon! 🐳</p>2022 July update2022-07-27T00:00:00+02:002022-07-27T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-07-27:/2022-july-update.html<p>Let's get out of the summer heat, sit in the shade, and talk about Funkwhale development for this month 🏖</p><p>Hello everyone 🌊</p>
<p>It's been another busy month here at Funkwhale HQ! As always, we're excited to tell you all about what's new and upcoming. So without further ado, let's jump into it!</p>
<h2 id="new-docker-improvements"><a class="toclink" href="#new-docker-improvements">New Docker improvements</a></h2>
<p>As part of ongoing improvements to deployment, we've been tweaking our Docker setup. We used to run both the frontend and backend in the <code>api</code> container and the webserver in an <code>nginx</code> container. This isn't how Docker should work, though, so we decided to change this. From 1.3.0 onwards, Docker deployments will have separate <code>api</code> and <code>front</code> containers. <code>front</code> contains the web app and webserver in one place, while <code>api</code> contains the backend. We've also taken some time to improve the following logic in these containers:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1879">Migrations run on <code>api</code> launch to cut a step in your upgrade process</a>.</li>
<li>You no longer need to store Nginx template files in <code>/srv/funkwhale/nginx</code>. <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1822">The <code>front</code> container builds the Nginx config from your <code>.env</code> file at launch</a>. You can still override this with a custom file by mounting it in your <code>docker-compose.yml</code> file.</li>
</ul>
<p>We'll provide migration documentation closer to the time. All in all, this should lead to a much smoother experience for our Docker users!</p>
<p>Thanks to <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> and <a href="https://dev.funkwhale.audio/JuniorJPDJ">@JuniorJPDJ</a> for all their work on these improvements 💪</p>
<h2 id="introducing-mattermost"><a class="toclink" href="#introducing-mattermost">Introducing Mattermost</a></h2>
<p>At the moment, we use the following tools to manage our projects:</p>
<ul>
<li>GitLab</li>
<li>Matrix</li>
<li>The Funkwhale forum</li>
</ul>
<p>Unfortunately, no one tool here does everything we need. Most of our work takes place in GitLab but its tooling is aimed at developers. We want to have a central place to work that is more flexible for more workflows.</p>
<p>To address this, we've set up a <a href="https://mattermost.com">Mattermost</a> instance and are testing it among the team. Mattermost enables us to communicate, manage tasks, and use automations all in one place! We can bridge our Matrix rooms into Mattermost and have separate rooms for projects.</p>
<p>We're still kicking the tires on this, but expect to hear more about it pretty soon!</p>
<h2 id="the-retribute-app-lives"><a class="toclink" href="#the-retribute-app-lives">The Retribute app lives</a></h2>
<p>Our other project, <a href="https://retribute.me">Retribute</a>, hasn't seen much love recently. However, it's not dead! While we've not had much time to work on it recently, we want to keep it in working order. <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> has patched an issue that stopped the <a href="https://app.retribute.me">web app</a> communicating with Funkwhale.</p>
<p>If you're interested in Retribute and want to help improve it, join our <a href="https://matrix.to/#/#retributeme:tchncs.de">Matrix channel</a>! We'd love to have you there 👋</p>
<h2 id="bank-account-migration"><a class="toclink" href="#bank-account-migration">Bank account migration</a></h2>
<p>As mentioned in a previous post, we're currently moving our assets to a new host. While we're doing this, we're not accepting donations by wire transfer or bank payment. Payments made to this account won't get through to us! If you have scheduled payments going to this account, please <strong>cancel them</strong> for now. We'll update our donation page with more information when we have it.</p>
<p>In the meantime, consider donating to our <a href="https://opencollective.com/funkwhale">OpenCollective</a> instead!</p>
<h2 id="new-hardware"><a class="toclink" href="#new-hardware">New hardware</a></h2>
<p>You may have noticed that we experienced a few outages and slowdowns recently. This is because the server we were running on was pretty old and underpowered. To address this, we decided to splurge a little on a new home for Funkwhale 💸</p>
<p>Our new server, Willy, is now online and hosting services. You should see noticeable improvements to the speed and reliability of our sites. This includes:</p>
<ul>
<li>GitLab,</li>
<li>open.audio</li>
<li>The Funkwhale forum</li>
<li>funkwhale.audio</li>
<li>Mattermost</li>
</ul>
<p>Thanks to <a href="https://dev.funkwhale.audio/egon0">egon0</a> and <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> for all their work on getting this up and running 🍾</p>
<h2 id="ongoing-development"><a class="toclink" href="#ongoing-development">Ongoing development</a></h2>
<p>Phew! That was a lot of stuff to get through. Let's take a moment to kick back and reflect on all the development stuff that's happened this month.</p>
<h3 id="frontend-work"><a class="toclink" href="#frontend-work">Frontend work</a></h3>
<p>The march toward 1.3.0 continues with a huge number of frontend improvements. <a href="https://dev.funkwhale.audio/wvffle">@wvffle</a> has introduced lots of great stuff as part of the Vue 3 and Typescript migration. Here are a couple of highlights:</p>
<ul>
<li>Faster and smoother player opening with large queues.</li>
<li>The ability to drag items off the page to scroll through the queue.</li>
</ul>
<p>Check out the video below for a comparison!</p>
<iframe sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/c3685fee-28bc-49a2-b053-af20f3c5bbb1" frameborder="0" allowfullscreen></iframe>
<p>Thanks to <a href="https://dev.funkwhale.audio/JuniorJPDJ">@JuniorJPDJ</a> for providing feedback and a test environment for this development!</p>
<h3 id="api-work"><a class="toclink" href="#api-work">API work</a></h3>
<p>Currently, we are focusing on the following areas of API development:</p>
<ul>
<li>Improving the current API to make it OpenAPI-compliant.</li>
<li>Planning for version 2 of the Funkwhale API.</li>
</ul>
<p>While version 2 is a long way off, the OpenAPI work is going strong. <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> and <a href="https://dev.funkwhale.audio/sporiff">I</a> have <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1887">resolved most issues raised by our OpenAPI generator</a>. Once it's all resolved, we should be able to start work on creating Funkwhale libraries 🧑🏫</p>
<h3 id="other-changes"><a class="toclink" href="#other-changes">Other changes</a></h3>
<ul>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> fixed an issue that caused <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/733">inconsistent search results in radios</a>.</li>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> also fixed an issue in our Subsonic API layer that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1782">prevented all songs being returned</a>.</li>
<li><a href="https://dev.funkwhale.audio/petitminion">@petitminion</a> <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1449/">added a radio button to the search results page</a>.</li>
</ul>Funkwhale 1.2.7 bugfix release2022-07-14T00:00:00+02:002022-07-14T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-07-14:/funkwhale-127-release.html<p>We've done a bit of plumbing to clear our pipelines 🪠</p><p>Hi everyone! 👋</p>
<p>Today we released Funkwhale 1.2.7. This is an especially small release to address a problem with our pipeline. Some users weren't able to upgrade to 1.2.6 as our pipeline didn't publish an artifact! So we decided to do this release despite not having changed much between versions.</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<ul>
<li><a href="https://dev.funkwhale.audio/devilcius">Marcos</a> fixed <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1817">an issue with the Scrobbler plugin</a> that caused scrobbles to libre.fm to fail. This means you should be able to keep on scrobbling your tracks uninterrupted 🎧</li>
</ul>
<p>As always, you can follow the upgrade instructions in <a href="https://docs.funkwhale.audio/admin/upgrading.html">our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>Funkwhale for Android 0.1.52022-07-06T00:00:00+02:002022-07-06T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-07-06:/funkwhale-for-android-015-release.html<p>We're pleased to announce the release of Funkwhale for Android 0.1.5</p><p>We're pleased to announce the release of Funkwhale for Android 0.1.5 🥳 We've been working hard on a few important stability fixes and dependency upgrades to improve the app. Let's dig into it a little bit here ⛏</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<ul>
<li><a href="https://dev.funkwhale.audio/hdasch">hdasch</a> fixed an issue that caused the app to log out sporadically. This issue took <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/102">a lot of investigation</a>. We'd like to thank everyone who got involved and helped to get to the bottom of this 🕵️</li>
<li><a href="https://dev.funkwhale.audio/Mouath">Mouath</a> fixed a bug that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/113">caused the app to crash when editing playlists</a>. Now you can get back to curating your listening on the go 📚</li>
<li><a href="https://dev.funkwhale.audio/ryan_harg">ryan_harg</a> extended the shuffle playback preference to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/116">make it work with albums</a>. This setting should now work the same when listening to any content 💿</li>
<li><a href="https://dev.funkwhale.audio/ryan_harg">ryan_harg</a> also fixed a bug that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/117">prevented users from deleting downloaded files</a>. This should help you keep your storage clean 🧹</li>
<li><a href="https://dev.funkwhale.audio/ryan_harg">ryan_harg</a> fixed a problem that was <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/119">causing a resource leak</a>. Leaks are never good 💧</li>
<li><a href="https://dev.funkwhale.audio/ryan_harg">ryan_harg</a> fixed a bug that caused <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/120">Bluetooth controls to stop working on devices running Android Oreo or later</a>. Now you can get back to controlling your music your way 🎮</li>
<li><a href="https://dev.funkwhale.audio/ryan_harg">ryan_harg</a> fixed a problem reported by <a href="https://dev.funkwhale.audio/hdasch">hdasch</a> that caused a <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues/122">resource leak in the database</a>. This should help keep everything together 🩹</li>
</ul>
<p>You can install or upgrade Funkwhale for Android soon on <a href="https://f-droid.org/en/packages/audio.funkwhale.ffa/">F-droid</a> or <a href="https://play.google.com/store/apps/details?id=audio.funkwhale.ffa">Google Play</a>. Happy listening! 🐋</p>Funkwhale 1.2.6 bugfix release2022-07-05T00:00:00+02:002022-07-05T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-07-05:/funkwhale-126-release.html<p>Fix all those bugs!</p><p>We're pleased to announce the release of Funkwhale 1.2.6! This is a small patch upgrade that includes some bugfixes and dependency updates. We hope they make your Funkwhale usage that little bit sweeter 🍭 Special thing: thats the first release managed by <a href="https://dev.funkwhale.audio/devilcius">Marcos</a> and we think he did a great job!</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<ul>
<li>Kasper Seweryn fixed <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1373">tab navigation when filling the login form</a> 📝</li>
<li>Marcos fixed a bug that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1791">prevented the more options button appearing on album pages</a> 🔧</li>
<li>We noticed that adding tracks to playlists using Subsonic duplicated the playlist. Marcos has created <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1263">a fix for this issue</a> 🎵</li>
<li>Funkwhale used to scrobble tracks only once if you listened to them on repeat. But if you're listening to a track a lot, you want to record that, right? Marcos has <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1857">changed this behavior</a> so that Funkwhale scrobbles repeated tracks 🎧</li>
<li>Petitminion found that the API was timing out if the service actor and nodeinfo were unknown. They've <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1842">introduced a fix</a> that stops this from happening. This should reduce the number of reported errors 🪲</li>
<li>Marcos fixed a bug that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1773">caused tracks to show up in the wrong channels</a>. Unfortunately, we missed this one while creating our last bugfix release. We're not going to miss it twice 🙇</li>
</ul>
<p>As always, you can follow the upgrade instructions in <a href="https://docs.funkwhale.audio/admin/upgrading.html">our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>Documentation localization2022-06-27T00:00:00+02:002022-06-27T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-06-27:/documentation-localization.html<p>Let's make documentation more helpful for everyone!</p><p>Documentation is an important part of any software project. It's a great teaching resource, reference material, and even a good advert for the project. But documentation is often limited to one specific language. This tends to be English, which the software world treats as a <em>lingua franca</em>. English is widely spoken across the world due to colonialism, but its continued dominance is the result of Euro/America-centric viewpoints. Languages such as Hindi, Mandarin Chinese, and Spanish are just as widely spoken, but aren't used as a primary language in software projects as often as English.</p>
<p>Here at Funkwhale we've been doing a lot of work to improve our documentation. We've made our layout more consistent and made our language more accessible. But what we've wanted most is to have our documentation available to people in their own language. Doing this increases our reach and welcomes more users.</p>
<h2 id="what-are-we-doing-to-address-this"><a class="toclink" href="#what-are-we-doing-to-address-this">What are we doing to address this?</a></h2>
<p>We're happy to announce that our documentation is available on <a href="https://translate.funkwhale.audio">our Weblate instance</a> 🎉 This means that volunteers can submit localizations for our documentation in their language.</p>
<p>Our rewrites have focused on simplifying and improving the wording of our documentation. This should make localizing everything much easier 💪 If you want to get involved, check out <a href="https://translate.funkwhale.audio/projects/documentation/">the project on Weblate</a>.</p>
<p>Thanks to <a href="https://dev.funkwhale.audio/georgkrause">Georg</a> for setting all of this up! We hope this will be a big help for our community. Once we have some submissions, we'll start work on implementing a language switcher in our docs to let people choose their language 🌐</p>2022 June update2022-06-25T00:00:00+02:002022-06-25T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-06-25:/2022-june-update.html<p>June has been a hot and busy month here at Funkwhale HQ ☀️</p><p>Hi everyone 👋</p>
<p>June has been a hot and busy month here at Funkwhale HQ. Despite the summer heat, we've remained hard at work 💪</p>
<p>Let's dig into some of the things we've been working on!</p>
<h2 id="admin-documentation-rewrite"><a class="toclink" href="#admin-documentation-rewrite">Admin documentation rewrite</a></h2>
<p>This month we completed the first draft of our admin documentation rewrite. Admin documentation is an important area for a self-hosted project. It helps new administrators install, configure, and manage their Funkwhale pod. Our existing documentation was in need of some tender loving care after a few years of service.</p>
<p>The new documentation features a much simpler, task-oriented structure and up-to-date information. We've added more information about features like our management script and environment file. We've also made it simpler to navigate instructions by install method and platform.</p>
<p>If you want to check out the rewrite and give us some feedback, check out <a href="https://forum.funkwhale.audio/d/164-administrator-docs-rewrite">our forum post on the topic</a>. Once we've got this merged, we'll move on to our contribution guides and developer docs 📝</p>
<h2 id="new-contribution-guides"><a class="toclink" href="#new-contribution-guides">New contribution guides</a></h2>
<p>Speaking of contribution, we've been discussing <a href="https://contribute.funkwhale.audio">contribute.funkwhale.audio</a> for a little while. Agate created this tool as a way for newcomers to find ways to help on based on available time and area of interest. While it's a neat idea, it doesn't see much use and many people aren't aware of its existence.</p>
<p>The tool is a full web app, which means it requires constant maintenance and hosting. Since it's not seeing much use, we are exploring an alternative way of helping people get started.</p>
<p>We have a contributors section in our documentation. This section contains useful information to help developers get involved with the project. But Funkwhale isn't only for developers! We want to work with the community in many areas such as design, communication, and advocacy. </p>
<p>With this in mind, we're going to expand our contributor guides to cover more areas. These will include onboarding information, links to issue lists for newcomers, and more! Once we've done this, we will look at deprecating the old contribute tool.</p>
<p>If you have suggestions for the guides or want to voice support for the tool, check out <a href="https://forum.funkwhale.audio/d/172-deprecation-of-the-contribution-tool">our forum post</a>.</p>
<h2 id="gitpod-support"><a class="toclink" href="#gitpod-support">Gitpod support</a></h2>
<p>We always try to make contributing to Funkwhale easier. Thanks to <a href="https://dev.funkwhale.audio/wvffle">wvffle</a>, getting started with Funkwhale development is now easier than ever. You can now develop Funkwhale using <a href="https://gitpod.io">Gitpod</a>, a remote development solution. This tool connects to a Funkwhale development environment and editor in your browser. You can also connect it to a Visual Studio Code installation on your machine. This means you don't have to worry about cloning a repository to your machine 🎉</p>
<p>We're hoping that this tool helps to lower the barrier for new contributors. Check out <a href="https://docs.funkwhale.audio/develop/contributing.html#the-quickest-way-to-contribute-to-the-project-is-through-gitpod">our documentation</a> for more information.</p>
<h2 id="ongoing-development"><a class="toclink" href="#ongoing-development">Ongoing development</a></h2>
<p>We're continuing our march towards Funkwhale 1.3.0. As part of this, we've opened up discussions about how to expand the Funkwhale API. Since we have frozen Funkwhale API, we aren't going to make any major changes to the current version. Instead, we're looking into creating a new major version which will coexist with v1. A new API version gives us plenty of room to improve on the Funkwhale API and add some cool new features. It's early days yet, but we'll share more information as we go!</p>
<p>We're also working on another patch release, 1.2.6. We'll give you the full rundown when it's released, but it includes a few nice quality of life improvements. Some highlights include:</p>
<ul>
<li>Improvements to our scrobbling logic</li>
<li>Better keyboard control on the login page</li>
<li>A fix for managing playlists over Subsonic</li>
</ul>
<p>That's it for now! Stay funky 🐳</p>2022 April and May update2022-06-01T00:00:00+02:002022-06-01T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-06-01:/2022-april-may-update.html<p>The last couple of months have been big for Funkwhale development. Let's dig into it ⛏</p><p>This has been a huge couple of months for the Funkwhale project. We made headway in some important projects and even released two bugfix versions! Let's take a look at some of what's been going on in more detail.</p>
<h2 id="development-and-funding-updates"><a class="toclink" href="#development-and-funding-updates">Development and funding updates</a></h2>
<p>A little while ago we mentioned that we had negotiated a change to our funding with NLNet. We decided that adding features before improving the infrastructure wasn't a good idea. With that in mind, we've allocated our funding to the following projects:</p>
<ul>
<li>Create a design system</li>
<li>Create a repository of reusable Vue components</li>
<li>Migrate to Typescript</li>
<li>Refactor the embedded player</li>
<li>Migrate the Frontend to Vue 3</li>
<li>Create a Typescript client library</li>
<li>Update the outdated <code>requests-http-signature</code> library</li>
<li>Update the administrator documentation</li>
<li>Add multi-language support to the documentation</li>
<li>Create a Python client library</li>
<li>Rework the Docker deployment architecture</li>
</ul>
<p>The exciting news is that some of this work is already done and more is in progress! </p>
<ul>
<li>We've already made a lot of progress with the Vue 3 and Typescript migration thanks to <a href="https://dev.funkwhale.audio/wvffle">Kasper</a>.</li>
<li><a href="https://dev.funkwhale.audio/sporiff">Sporiff</a> is currently rewriting the documentation and the admin documentation is almost finished.</li>
<li><a href="https://dev.funkwhale.audio/georgkrause">Georg</a> has taken care of the outdated <code>requests-http-signature</code> library and brought it in-house.</li>
<li><a href="https://dev.funkwhale.audio/georgkrause">Georg</a> has also started work on multi-language docs support.</li>
<li><a href="https://dev.funkwhale.audio/mjourdan">Mathieu</a> has been working hard on the new design system. We're aiming to bring more of it into our blog, website, and app as we go.</li>
</ul>
<p>Phew! There is a lot happening behind the scenes. We hope these changes improve everyone's experience and make the project easier to work on.</p>
<p>We don't have a concrete timeline for 1.3 yet. The changes to the app are huge, so we'll need to do a lot of testing. We expect a lot of bugfix releases immediately following the release! 🐛</p>
<h2 id="funkwhale-in-the-news"><a class="toclink" href="#funkwhale-in-the-news">Funkwhale in the news</a></h2>
<p><a href="https://twitter.com/NKCproductions">NKCproductions</a> recently wrote <a href="https://ins-rt.net/text/sounds-from-the-fediverse-an-introduction-to-funkwhale-a-decentralised-community-audio-platform">an interesting article about the Funkwhale project</a>. The article goes into some details about the Funkwhale project, its history, its approach, and the challenges it faces. Check it out!</p>
<h2 id="change-to-our-financial-situation"><a class="toclink" href="#change-to-our-financial-situation">Change to our financial situation</a></h2>
<p>Following a <a href="https://forum.funkwhale.audio/d/161-financial-hosting-at-techcultivation">vote on our forum</a>, we are migrating our financial hosting to <a href="https://techcultivation.org/">Tech Cultivation</a>. This will hopefully make managing our finances easier long-term, and give us access to more resources. You can check out our <a href="https://blog.funkwhale.audio/2022-association-update.html">previous blog post</a> for more information.</p>
<h2 id="all-other-business"><a class="toclink" href="#all-other-business">All other business</a></h2>
<p>We've had some amazing contributions by the community this month! We're really thankful that people continue to get involved with our project. Thank you for all your support and encouragement 🎉</p>
<p>Take care everyone! 🐋</p>Funkwhale 1.2.5 bugfix release2022-05-11T00:00:00+02:002022-05-11T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-05-11:/funkwhale-125-release.html<p>The updates keep comin' and they don't stop comin'</p><p>Hi everyone! 👋</p>
<p>We're pleased to announce the release of Funkwhale 1.2.5! This is another small patch upgrade to keep things ticking over while we work on Funkwhale 1.3.</p>
<p>Funkwhale 1.2.5 includes some dependency updates as well as a couple of nice quality of life improvements:</p>
<ul>
<li>S3 users can now <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1776">parameterize S3 ACL in their env file</a>. This improves how Funkwhale works with S3-compatible storage 🗄</li>
<li>The player <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1777">no longer shows the duration as <code>00:00</code> when loading tracks</a>. The duration now only appears when a track is loaded 🎵</li>
<li>Channels pages were showing a loading icon but not actually loading anything. <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1727">This is resolved in the latest release</a> 🛠</li>
</ul>
<p>As always, you can follow the upgrade instructions in <a href="https://docs.funkwhale.audio/admin/upgrading.html">our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>Funkwhale 1.2.4 bugfix release2022-04-23T00:00:00+02:002022-04-23T00:00:00+02:00Sporifftag:blog.funkwhale.audio,2022-04-23:/funkwhale-124-release.html<p>Another small release to keep things running smoothly 🧈</p><p>Hello again everyone!</p>
<p>We're pleased to announce the release of Funkwhale 1.2.4! This is a small patch release to keep your pods running smoothly.</p>
<p>While 1.2.4 mostly contains dependency upgrades, we've made a couple of nice improvements:</p>
<ul>
<li>The mouse cursor used to show as a pointer when hovering over cards. This means it wasn't always obvious you could click on them. The cursor <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1772">now shows as a hand icon</a> to make this clearer 👆</li>
<li>We've <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1746">corrected a typo in our documentation</a> that caused problems with SMTP setup 💌</li>
<li>We've introduced a version switch to <a href="https://docs.funkwhale.audio">our documentation</a>. Now you can see the current state of our documentation in the develop branch. Find this switch in the bottom-left corner of docs.funkwhale.audio, or head straight to <a href="https://docs.funkwhale.audio/develop/index.html">https://docs.funkwhale.audio/develop/index.html</a> 📝</li>
</ul>
<p>As always, you can follow the upgrade instructions in <a href="https://docs.funkwhale.audio/admin/upgrading.html">our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>Changes incoming to Funkwhale.audio2022-03-29T00:00:00+02:002022-03-29T00:00:00+02:00Mathieutag:blog.funkwhale.audio,2022-03-29:/2022-website-redesign.html<p>We're working on a fresh new website, but nothing revolutionary</p><p>Hello there!</p>
<p>We're currently working on (among other things) a fresh new design for <a href="https://funkwhale.audio">funkwhale.audio</a>. At the end of this post we'll tell how you can help, but first we'll discuss the why and how.</p>
<h2 id="why-the-changes"><a class="toclink" href="#why-the-changes">Why the changes?</a></h2>
<p>If you're here you've probably already visited funkwhale.audio at least once, so you know this is the website the Funkwhale community runs to represent the project. It's also the entry point to find how to start using Funkwhale, get help, reach to the community, or contribute in the many possible ways.</p>
<p>The initial motivation to work on this was mainly technical: we wanted to make the site easier to maintain in the long run. In parallel, we already wanted the same for the Funkwhale app itself. So we're making changes both on the visible side and <a href="https://blog.funkwhale.audio/2022-january-update.html">under-the-hood</a>, that should <a href="https://blog.funkwhale.audio/design-work.html">tighten up things</a> altogether.</p>
<p>We could have made a purely technical update and no one would have noticed any changes. Ok, maybe that would have changed a button style here, a font over there, a few other visual changes and that would be it. But while we were at it, this sounded the right time to address the grievances we had with the website, but had never treated as a priority. There are indeed a few issues we have identified, and we'll tell you in this post what we plan to do to solve them.</p>
<h2 id="better-framing-of-project-goals"><a class="toclink" href="#better-framing-of-project-goals">Better framing of project goals</a></h2>
<p>As stated above, funkwhale.audio is intended to give a clear view of what Funkwhale is, what are its benefits, what features does it sport, and ultimately who controls it. The first thing people see when visiting funkwhale.audio is that huge description:</p>
<blockquote>
<p>A social platform to enjoy and share music</p>
</blockquote>
<p>A social platform. Possibly not the best introduction to Funkwhale. Not that it is dishonest, or factually wrong: as a community project Funkwhale is really a social thing. But because it creates false expectations. Indeed, with that wording, people may think of features like microblogging, chat or comments, none of which have been implemented as of now. And with it being emphasized as the shortest description of Funkwhale, some may expect these features to be <a href="https://forum.funkwhale.audio/d/62-pod-chatbox/3">the core of Funkwhale</a>.</p>
<p>Apart from the description, the most prominent thing visitors will find on funkwhale.audio is a screenshot of the app. This one is outdated, and we have been asked a few times how was it possible to get this cool blurry player in the sidebar? The (not so) sad truth is that is was removed months ago in favor of a bottom bar, expandable into a full-page player.</p>
<p>A picture being worth more than a thousand words, here is the <strong>old landing page</strong>:</p>
<p><img alt="A screenshot of the current landing page" src="images/2022-website-redesign/screenshot-home.png"></p>
<p>And here is our <strong>mockup</strong>, with a more accurate description of Funkwhale, the benefits it brings, and its features:</p>
<p><img alt="A mockup for the new landing page" src="images/2022-website-redesign/mockup-home.png"></p>
<h2 id="more-focused-pages"><a class="toclink" href="#more-focused-pages">More focused pages</a></h2>
<p>Probably because of the importance given to the social dimension of the project, the website has a whole "community" page. This page is mainly about communication tools (that can be used for very different purposes) and how to contribute. But it also has, disseminated on the page, a couple of links to request help.</p>
<p>Everyone comes to the community with their problems and interests, and those can change over time. It's true: when you are struggling with something, maybe it's not the best time to encourage you to contribute to other topics.</p>
<p>So we revisited the page to better distinguish between topics.</p>
<p><strong>Current version</strong>, the "community" page, covering two different things:</p>
<p><img alt="A screenshot of the community page" src="images/2022-website-redesign/screenshot-community.png"></p>
<p><strong>Mockup</strong>, a new page with a clear focus on contribution:</p>
<p><img alt="A mockup of the new contribution page" src="images/2022-website-redesign/mockup-contribute.png"></p>
<h2 id="finding-help"><a class="toclink" href="#finding-help">Finding help</a></h2>
<p>What about when people encounter issues? Just sending them straight through to the community spaces didn't feel like the right thing to do. They would rather have access to the resources that are relevant to them, so maybe they could better understand the situation and solve their problem.</p>
<p>This is the time where the documentation would come in handy, thus we wanted to give it the prominent place it deserves. Visitors could find the section they need, without being overwhelmed by an endless bullet list as is the case today.</p>
<p><strong>Current version</strong>, a link in the footer sends us right through a separate site, with an endless bullet list</p>
<p><img alt="A screenshot of the current documentation site" src="images/2022-website-redesign/screenshot-documentation.png"></p>
<p><strong>Mockup</strong>, a dedicated page on funkwhale.audio gives a clean overview of all the available resources</p>
<p><img alt="A mockup of the new help page" src="images/2022-website-redesign/mockup-help.png"></p>
<p>In parallel, a huge amount of work has been done on the documentation part, and we expect the overall experience of looking for information to be much nicer soon.</p>
<h2 id="members-onboarding"><a class="toclink" href="#members-onboarding">Members onboarding</a></h2>
<p>One thing we revisited is the process to become a member of the Funkwhale Collective. The process could be confusing in some circumstances, at least it was an issue for me <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1359">when I applied to the Funkwhale Collective</a>, but it appeared maybe I wasn't the first one. So we want to make sure people who are willing to join the Funkwhale Collective could safely travel towards the membership form, without falling in the trap of the donations form.</p>
<p><strong>Current version</strong>, joining the collective is in the middle of donations means and expenses:</p>
<p><img alt="A screenshot of the support page" src="images/2022-website-redesign/screenshot-support.png"></p>
<p><strong>Mockup</strong>, joining the collective has its own page, and it's more about involvement and collective decisions:</p>
<p><img alt="A mockup of the new member onboarding" src="images/2022-website-redesign/mockup-join.png"></p>
<h2 id="donation-form"><a class="toclink" href="#donation-form">Donation form</a></h2>
<p>Speaking of the donation form, we plan to make slight adjustments to it. We take donations on a pay-what-you-want model, and we have our <a href="https://funkwhale.audio/support-us">"Support us" page</a>. There, we have an input field where one could enter whatever feels right to them, and it comes with a pre-filled value of 10€. Not everyone values Funkwhale the same, and not everyone have the same resources. If 10€ is pre-filled, is it ok to give less? So we're thinking of suggesting a few amounts in addition to the free form, so that donators can better decide how much they are willing to give.</p>
<p>Also, we could well be accepting credit card donations on a monthly basis. Donators wouldn't have to worry about when their last donation was, and if now is the right time to heat up the credit card. This would bring the credit card on par with the other payment means (wire transfer and Open Collective), as those already allow for recurring donations.</p>
<p><strong>Current version</strong>, let's take a look again at the screenshot of the donation form. We'll see that donations have three payment methods, "call to action" for two of them, a single amount:</p>
<p><img alt="A screenshot of the current donation form" src="images/2022-website-redesign/screenshot-support.png"></p>
<p><strong>Mockup</strong>, multiple amounts suggested, a single action emphasized, possibility for monthly donations, hints to choose the most appropriate payment method</p>
<p><img alt="A mockup of the new donation form" src="images/2022-website-redesign/mockup-donate.png"></p>
<h2 id="things-not-covered-yet"><a class="toclink" href="#things-not-covered-yet">Things not covered yet</a></h2>
<p>One other thing we wanted to improve was the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1359">instance recommendations</a>. We're yet to provide an effective solution for this, so maybe this will be the subject of a future post.</p>
<p>Since we started working on the website redesign, the steering committee has had some discussions about how we could reduce the administrative tasks burdening our beloved maintainer Georg, while encouraging the community involvement on the project direction. The Funkwhale Collective will have to discuss this, and ultimately take decisions which may impact the redesign. There has been very little discussion so far. If you have hopes or concerns for the future of the Funkwhale association, please consider <a href="https://forum.funkwhale.audio/d/112-future-of-the-funkwhale-association">sharing your thoughts while there's still time</a>.</p>
<h2 id="how-to-help"><a class="toclink" href="#how-to-help">How to help</a></h2>
<p>Thanks for reading this far! Maybe you would like to participate in the effort? There are plenty of things to do!</p>
<ul>
<li>Illustrations: funkwhale.audio features two lovely drawings by Robin. The new website could use a bigger set of images, with transparent background to bring some visual sweetness.</li>
<li>Translations: many parts of the website being rewritten, new translations will be needed.</li>
</ul>Funkwhale 1.2.3 bugfix release2022-03-21T00:00:00+01:002022-03-21T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-03-21:/funkwhale-123-release.html<p>We're going on a bug hunt 🪲🔍</p><p>Hi everyone! 👋</p>
<p>As mentioned <a href="https://blog.funkwhale.audio/2022-february-march-update.html">previously</a>, we've had a busy couple of months! This doesn't mean we've stopped working on Funkwhale, though. Far from it! Today, we're pleased to announce a new bugfix release: 1.2.3.</p>
<p>A lot is going to change for 1.3.0, so we're using these bugfix releases to keep things running smoothly while we work.</p>
<p>Funkwhale 1.2.3 fixes the following issues:</p>
<ul>
<li>Previously, radios would fail to start if there were no playable tracks. The button was active and we had no frontend error message for this, so it looked like the button did nothing! We've now <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1651">added some logic to produce a more helpful error message and make the button inactive</a> when this happens ⚠️</li>
<li>When we linted the codebase, we introduced a bug that made it impossible to create oauth applications. This has been fixed <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1691">with a refactor of this code</a> 🔐</li>
<li>Pod admins can limit the size of playlists. If a user tried to add more tracks than the limit allowed, the UI returned a success message but didn't add anything! We've now <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1613">added proper error messages</a> that inform the user of the limitation ❗️</li>
<li>Our "Recently Added" radio wasn't working as expected and was just picking out random tracks. We've enhanced this to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1479">use a default date range filter</a> to make sure you're getting the most recent tracks 🎧</li>
<li>Some RSS feeds didn't show track information for episodes. This was caused by the software looking for an album cover for an associated album when there wasn't one! We've added a fix that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1620">shows a default album cover</a> when none is available 💿</li>
<li>Pod admins and moderators may have noticed they couldn't change library visibility from the admin page. This was caused by a syntax error which <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1668">has now been resolved</a> 🧑⚖️</li>
<li>The delete button in the playlist editor was quite picky! You needed to directly click on the trash can icon rather than anywhere on the button. We've resolved this by <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1694">making the whole button clickable</a> 🗑</li>
</ul>
<p>We've also added the following features:</p>
<ul>
<li>We've replaced the unmaintained PyMemoize library with django-cache-momoize. This means we can now support Python 3.10 🐍</li>
<li>The embedded player previously didn't show any track covers if there was no album or series associated with the track. We've <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1619">added support for all cover sources</a>, so tracks with embedded art or with associated artist covers will look nicer 📸</li>
</ul>
<p>As always, you can follow the upgrade instructions in <a href="https://docs.funkwhale.audio/admin/upgrading.html">our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>2022 February and March update2022-03-16T00:00:00+01:002022-03-16T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-03-16:/2022-february-march-update.html<p>February was a very busy month. So busy, we didn't manage to publish our monthly update!</p><p>Hi everyone! 👋</p>
<p>February was a very busy month for us. It was so busy we didn't even get to publish our monthly blog post! Let's take a moment now to take stock and look back at what happened.</p>
<h2 id="an-update-on-our-funding-situation"><a class="toclink" href="#an-update-on-our-funding-situation">An update on our funding situation</a></h2>
<h3 id="google-summer-of-code"><a class="toclink" href="#google-summer-of-code">Google Summer of Code</a></h3>
<p>As we announced on a <a href="https://blog.funkwhale.audio/gsoc.html">previous post</a>, we applied to Google Summer of Code this year. The application process was a great opportunity for us to work with the community. We got some great ideas and had a chance to study the project some more.</p>
<p>Unfortunately, our application this year was not accepted. The GSoC project is very competitive, so it was unlikely we'd get in on our first attempt. But we're not seeing this as a negative at all! We still have a great list of projects to tackle. In fact, we've used them as inspiration for something else.</p>
<h3 id="nlnet-funding"><a class="toclink" href="#nlnet-funding">NLNet funding</a></h3>
<p>Funkwhale received a funding promise from NLNet back in <a href="https://blog.funkwhale.audio/blog-post-week-2020-04-we-got-funding.html">April 2020</a>. The funding depended on a list of projects and features that we needed to complete. A lot has changed since then, and we worried that we would lose access to the funding. We weren't (and still aren't) ready to tackle some of those issues right now.</p>
<p>NLNet have offered to let us change this roadmap to reflect our current priorities. We've taken them up on this generous offer and put forward a new proposal. We designed the new funding roadmap to focus on the following key areas:</p>
<ol>
<li>Maintenance and updates.</li>
<li>Performance improvements.</li>
<li>Design improvements.</li>
<li>Ease of development.</li>
<li>Documentation.</li>
<li>Security.</li>
</ol>
<p>We hope that resolving these issues will make developing new features in the future a lot easier. In the short term, you're going to see the Funkwhale app looking and working better than ever! In the long term, who knows what we'll be able to achieve? 🚀</p>
<p>We'll put together a new post shortly to break down the new funding items in more detail. We've already started working on some of them, so you'll start seeing some movement very soon!</p>
<h2 id="an-update-on-the-funkwhale-association"><a class="toclink" href="#an-update-on-the-funkwhale-association">An update on the Funkwhale Association</a></h2>
<p>Last month, we <a href="https://blog.funkwhale.audio/2022-association-update.html">put out feelers about changing our project setup</a>. We're still looking for feedback on this proposition, so if you have something to say now's the time! Head on over to our forum and <a href="https://forum.funkwhale.audio/d/112-future-of-the-funkwhale-association">add your thoughts to the thread</a>. We'd like to make a decision by the end of March, so make sure your voice is heard!</p>
<h2 id="funkwhale-for-android-is-now-available-on-google-play"><a class="toclink" href="#funkwhale-for-android-is-now-available-on-google-play">Funkwhale for Android is now available on Google Play</a></h2>
<p>After some back and forth with Google, we have managed to publish Funkwhale for Android on Google Play. The app was already available on F-Droid (our preferred storefront), but a lot of users aren't aware of F-Droid. Putting the app on Google Play makes it a lot easier for new users to find our app.</p>
<p><a href="https://play.google.com/store/apps/details?id=audio.funkwhale.ffa&hl=en&gl=US">Check out the app on Google Play</a>.</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<p>Phew, okay. That's the administrative stuff out of the way! Let's get into some of the stuff we've been working on this month.</p>
<ul>
<li>The biggest update this month might excite some of you techies out there. We've transitioned away from <a href="https://cli.vuejs.org/">vue-cli</a> to <a href="https://vitejs.dev/">vite</a>! Vite is much nicer to develop with, so we're pretty hyped about it. We've broken quite a lot in this transition, but we'll get it sorted for 1.3.0 💪</li>
<li>Georg has managed to complete a migration from a mono- to multi-container Docker setup. We'll put together a guide on this in time for the deprecation of the mono-container setup 📖</li>
<li>We do lots of documentation in the development branch, so we decided to make this available to you. We've added support for develop and stable branches of our documentation. Pretty soon you'll be able to see what's available in both environments in our help center 📚</li>
<li>Speaking of documentation, we had a discussion with an NLNet contact about ours. We're going to investigate what we need to do to support multi-language documentation. Watch this space if you're interested in helping out with your language 🌐</li>
<li>We've continued to fix assorted bugs found in 1.2.2. We'll be releasing 1.2.3 soon to address these 🐛</li>
</ul>An update about the Funkwhale Collective2022-02-19T00:00:00+01:002022-02-19T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-02-19:/2022-association-update.html<p>The Funkwhale of today is in a fundamentally different position than the Funkwhale of yesterday. Let's talk about the future.</p><p>In June 2019, Funkwhale officially <a href="https://www.journal-officiel.gouv.fr/associations/detail-annonce/associations_b/20190026/327">became an association</a>. When the project started, Agate ran the project as a BDFL (Benevolent Dictator For Life). It became clear that this wasn't a very good way to run things, so she made the decision to formalize the collective.</p>
<p>Creating an official association brought with it many benefits. It gave the project a written legal structure for decision making. It also presented a framework for handling memberships to give people voting rights. The association has been instrumental in shaping Funkwhale's democratic approach to development.</p>
<p>Things have changed a lot since the creation of the association.</p>
<ul>
<li>The original maintainers have stepped away from the project.</li>
<li>A new project team has stepped up.</li>
<li>The majority of the project team are no longer located in France.</li>
</ul>
<p>As we work on the project more, our statutes sometimes feel more restrictive than helpful. In particular, the paid membership model for voters feels exclusionary. While it's possible to request a free membership, this isn't clear and can be embarrassing. Our statutes are also written in a very formal way that may be challenging for people to read. It's not an approach that a lot of people are used to.</p>
<p>Additionally, the running of the association is a <em>lot</em> of work. Making big decisions requires a lot of organization and planning. The handling of money and paperwork requires us to maintain a presence in France. And importantly, we aren't getting the amount of interest we need for new elections. This lack of interest recently led to us needing to change some of our statutes to accommodate limited interest.</p>
<p>We need to change something.</p>
<h2 id="what-are-you-proposing"><a class="toclink" href="#what-are-you-proposing">What are you proposing?</a></h2>
<p>After some <a href="https://forum.funkwhale.audio/d/10-legal-state-of-the-funkwhale-collective">discussion in our forums</a>, we got in contact with <a href="https://techcultivation.org/">the Center for the Cultivation of Technology</a>. They are a non-profit that helps free software projects handle work outside of software development. They have offered to assist us with handling financial, administrative, and legal tasks. These are tasks that we find quite challenging to work on, especially as we are trying to build the software. We are quite interested in taking up this offer, but it would mean dissolving the association.</p>
<p>The association is currently responsible for donations and project administration. We can't continue as an association and hand these tasks over to the non-profit. If we decide to take this path, we'll dissolve the association and let the non-profit handle the administration.</p>
<h2 id="but-what-about-members"><a class="toclink" href="#but-what-about-members">But what about members?</a></h2>
<p>Members are currently able to vote on big decisions about the collective. This isn't something we can copy over to this proposed structure. This has made us think about what we currently use membership for and how we could improve it.</p>
<p>We would like to move to a more holistic view of membership. One that isn't based on money or any specific contribution. We'd like to move to a system that recognizes more people in our community and gives them a voice. Contributions take many forms, and we want to recognize all contributions equally. Code submissions, documentation, designs, translations, running and using the software. All these contributions are important and we should recognize this better. We can't do this with the association, and it leads to a somewhat exclusive environment.</p>
<p>Money collected through membership fees will be counted as donations and will still be used for the good of the project.</p>
<h2 id="has-this-already-been-decided"><a class="toclink" href="#has-this-already-been-decided">Has this already been decided?</a></h2>
<p>Not at all! The association members need to vote to make this decision. We're writing this blog post to let everyone know what's going on and what our position is on the topic. Of course, if the association votes to keep things as they are then they will stay as they are. That's what it means to be a democracy! 😄</p>
<p>We want to put this to a vote in a general assembly to formalize our response. If we decide to move away from the association, a general assembly vote lets us do that. We can start the process of dissolving the association and moving our assets over.</p>
<p>We'd like to open this discussion up <a href="https://forum.funkwhale.audio/d/112-future-of-the-funkwhale-association">on our forum</a> to hear your thoughts on it. Once we've got an idea of everyone's feelings, we'll create a poll. Depending on the outcome of this, we'll look at what we do next.</p>
<p>Thank you for your continued support!</p>Funkwhale 1.2.2 bugfix release2022-02-04T00:00:00+01:002022-02-04T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-02-04:/funkwhale-122-release.html<p>On your marks, get set, fix those bugs!</p><p>Hi again everyone! 👋</p>
<p>It sure has been a busy start to the year here at Funkwhale! We're not slowing down though. In fact, we're here today to announce another bugfix release!</p>
<p>Funkwhale 1.2.2 fixes the following issues:</p>
<ul>
<li>We found an issue where <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1673">adding horizontal line breaks to your pod description broke the home page</a>. We've ditched the old Javascript function that caused the issue and <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1442">moved to a CSS solution</a>. Gotta love trimming off the excess ✂️</li>
<li>As mentioned in our <a href="https://blog.funkwhale.audio/2022-january-update.html">January update</a>, we linted our entire codebase recently. This introduced a bug in our embedded player that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1675">stopped track information showing</a>. We found the culprit and <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1482">squashed the bug</a> 🪲</li>
<li>After our big track table redesign we were bound to find some problems. We discovered that the track table <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1683">wasn't working in the library overview page</a>. After a bit of refactoring, the table now works! As a bonus we even <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1484">fixed the search and pagination features</a> 🔧</li>
<li>Pod moderators might have noticed that the library edits page looked a bit strange. This is because of a bug that <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1667">caused a lot of reports to show up empty</a>. We found the source of the issue and <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1442">put a fix in place</a>. Now your moderation queue should look a lot better 🧑⚖️</li>
</ul>
<p>As always, you can follow the upgrade instructions <a href="https://docs.funkwhale.audio/admin/upgrading.html">in our docs</a>.</p>
<p>Happy upgrade, everyone! 🐋</p>Some exciting new design work2022-02-03T00:00:00+01:002022-02-03T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-02-03:/design-work.html<p>We've had a good hard look in the mirror and decided to change our look.</p><p>As we mentioned in our <a href="https://blog.funkwhale.audio/2022-january-update.html">previous post</a>, we've been thinking about our image a lot lately. At the moment, it's difficult for us to put new designs in place. It's even harder for us to keep everything consistent. This has led to lots of differences between our website, blog, and apps.</p>
<p>We decided we needed to do something about this.</p>
<p>For the past few weeks, <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a>, <a href="https://dev.funkwhale.audio/sporiff">@sporiff</a>, and <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a> have been hard at work on a solution. After some trials and tribulations, we finally have something to show you. In fact, you've most likely noticed it already!</p>
<h2 id="stop-teasing-me-whats-the-solution"><a class="toclink" href="#stop-teasing-me-whats-the-solution">Stop teasing me! What's the solution?</a></h2>
<p>Allow me to introduce Funkwhale UI! A brand new central repository for Funkwhale design components built using <a href="https://bulma.io">Bulma</a>.</p>
<p><img alt="A screenshot showing a page of buttons. A containing table explains the use and state of each button." src="./images/funkwhale_ui.png"></p>
<p>The idea behind this solution is it enables us to work on design ideas in steps. Designers can submit changes to components, colors, and anything else they want to. Developers can then work out the CSS and update the components in the UI library. This generates an NPM package and stylesheet that we can import into our projects. Nifty, huh?</p>
<p>Check out the <a href="https://dev.funkwhale.audio/funkwhale/ui">project repository</a>, or see <a href="https://ui.funkwhale.audio">a preview of the current elements</a>!</p>
<h2 id="awesome-what-did-you-mean-ive-noticed-it-already"><a class="toclink" href="#awesome-what-did-you-mean-ive-noticed-it-already">Awesome! What did you mean I've noticed it already?</a></h2>
<p>Our guinea pig for this stylesheet is the blog you're reading right now! We decided to take some of our initial designs and start replacing bits of this blog. The most important thing to replace was our pagination bar. In the old blog design this was… weird, to say the least. Now we have a proper pagination element with real aria labelling!</p>
<h3 id="before"><a class="toclink" href="#before">Before</a></h3>
<p><img alt="A screenshot showing the old design. The pagination is very unclear." src="images/old_design.png"> </p>
<h3 id="after"><a class="toclink" href="#after">After</a></h3>
<p><img alt="A screenshot showing the new design. The pagination is much clearer and all of the posts are consistently structured." src="images/new_design.png"></p>
<p>Another element you might have noticed is the new category tags. We built these using an updated design for tags found in the Funkwhale app.</p>
<p><img alt="A screenshot showing the author details on a post. The category link is enclosed in a rounded gray tag." src="images/new_tags.png"></p>
<p>We've also applied consistent text styling across the blog. To show this off, we've gone through the whole blog to fix formatting and broken links.</p>
<h2 id="great-so-what-does-this-mean"><a class="toclink" href="#great-so-what-does-this-mean">Great! So… what does this mean?</a></h2>
<p>This project enables us to work a lot faster on new designs. We can create and test the UI elements before adding them somewhere. We can also make changes with ease by updating the package version or stylesheet version. This means we can make sweeping changes with little disruption.</p>
<p>It also means we can create a consistent design voice for all parts of our project. Currently everything looks different, but we can work towards a real Funkwhale "look".</p>
<p>Want to get involved? <a href="https://forum.funkwhale.audio">Head on over to our forum</a> and let's get the conversation started!</p>2022 January update2022-01-25T00:00:00+01:002022-01-25T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-01-25:/2022-january-update.html<p>New year, new updates. Let's take a look at what's been happening here at Funkwhale.</p><p>New year, new updates. Let's take a look at what's been happening here at Funkwhale.</p>
<p>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.</p>
<h2 id="getting-down-with-the-rhythm-and-the-rhyme"><a class="toclink" href="#getting-down-with-the-rhythm-and-the-rhyme">Getting down with the rhythm and the rhyme 🥁</a></h2>
<p>We use <a href="https://python.org">Python</a> 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.</p>
<p>To make dependency management easier going forward, we've implemented <a href="https://python-poetry.org/">Poetry</a>. 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!</p>
<h2 id="keeping-our-house-clean"><a class="toclink" href="#keeping-our-house-clean">Keeping our house clean 🧹</a></h2>
<p>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.</p>
<p>Our repository now has a <a href="https://github.com/renovatebot/renovate">Renovate bot</a>. 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!</p>
<h2 id="snake-charming"><a class="toclink" href="#snake-charming">Snake charming 🐍</a></h2>
<p>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.</p>
<p>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!</p>
<h2 id="doing-things-the-write-way"><a class="toclink" href="#doing-things-the-write-way">Doing things the write way 📝</a></h2>
<p>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.</p>
<p>We decided that the time was right to tackle this issue head on. This month we have been rewriting and restructuring <strong>all documents</strong> 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 <strong>lot</strong> of documentation). The goal is to make it easy for everyone to find what they need with a few clicks!</p>
<h2 id="hey-there-good-lookin"><a class="toclink" href="#hey-there-good-lookin">Hey there, good lookin' 💄</a></h2>
<p>Something we've been keen to do is introduce more structure to our UI. Currently, we are using <a href="https://fomantic-ui.com">Fomantic</a> 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.</p>
<p>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!</p>
<h2 id="squashing-bugs"><a class="toclink" href="#squashing-bugs">Squashing bugs 🐛</a></h2>
<p>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.</p>
<p>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!</p>
<h2 id="google-summer-of-code"><a class="toclink" href="#google-summer-of-code">Google Summer of Code</a></h2>
<p>As we mentioned in a <a href="https://blog.funkwhale.audio/gsoc.html">previous post</a>, we're looking to apply to GSoC this year. We put out a call for suggestions and the Funkwhale community responded 🙏</p>
<p>We now have a big list of suggestions on our <a href="https://forum.funkwhale.audio/d/84-google-summer-of-code">forum</a>. 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.</p>
<p>A huge thank you to everyone who left suggestions! We'll keep you all updated at every step of the process 😀</p>
<p>That's all for now everyone! Hope you've had a great start to the year 🎉</p>Funkwhale security quick scan report2022-01-17T00:00:00+01:002022-01-17T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-01-17:/security-quick-scan.html<p>In the name of transparency, let's talk about our security audit!</p><p>Hello everyone!</p>
<p>As many of you know, we received some <a href="https://blog.funkwhale.audio/blog-post-week-2020-04-we-got-funding.html">backing from NLNet</a> nearly two years ago. As part of this, we received a free security audit from the NLNet team to help us button down our hatches and keep everything ship shape 🚢</p>
<p>Due to the <a href="https://blog.funkwhale.audio/funkwhale-is-looking-for-new-maintainers.html">change of maintainers</a> and the subsequent handover of duties, we've not had time to publish the results of this report and the actions we took to address the issues raised. Since things have calmed down a bit, let's go through these here!</p>
<p>You can read the full report <a href="https://nextcloud.funkwhale.audio/s/daSiMtE6SqSq5R7">here</a>.</p>
<h2 id="issues-and-actions"><a class="toclink" href="#issues-and-actions">Issues and actions</a></h2>
<p>NLNet's security report involved a quick penetration test performed by an independent security company. Its goal was to point out common exploits present in our app. The report highlighted <strong>4</strong> issues. Of these, <strong>2</strong> are <strong>Resolved</strong>. The other <strong>2</strong> we have decided we are <strong>Not doing</strong>. Let's get into the details.</p>
<h3 id="input-validations-are-not-secure-enough"><a class="toclink" href="#input-validations-are-not-secure-enough">Input validations are not secure enough</a></h3>
<h4 id="the-issue"><a class="toclink" href="#the-issue">The issue</a></h4>
<p>NLNet highlighted that the input validation for some of our endpoints was not secure enough, which might leave them open to server side request forgery. Their suggested action was to introduce stronger validation.</p>
<h4 id="our-response"><a class="toclink" href="#our-response">Our response</a></h4>
<p>After some investigation we determined that the lack of security in this situation is actually a quirk of federated services. The endpoint that was highlighted by the report is one used to search for remote libraries. This endpoint passes a URL to the Funkwhale API which then sends a request. Since there is no centralized database for us to validate URLs against, there is no way of knowing whether the domain name is a valid Funkwhale URL. The only mitigation would be to implement URL pattern checks, but this would not prevent an attack.</p>
<ul>
<li>Decision: <strong>Not doing</strong>.</li>
<li>Issue link: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1491">https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1491</a></li>
</ul>
<h3 id="login-screen-vulnerable-to-open-redirect"><a class="toclink" href="#login-screen-vulnerable-to-open-redirect">Login screen vulnerable to open redirect</a></h3>
<h4 id="the-issue_1"><a class="toclink" href="#the-issue_1">The issue</a></h4>
<p>NLNet noted that the <code>/login</code> screen accepts a <code>next</code> parameter. This is used to redirect users to the page they were trying to access after a successful login. However, NLNet noted that this left the user vulnerable to an open redirect, where an attacker could put any URL in this parameter to forward users to a hostile domain.</p>
<h4 id="our-response_1"><a class="toclink" href="#our-response_1">Our response</a></h4>
<p>This was a good catch! We decided to introduce a mechanism that checks the URL in the <code>next</code> parameter to ensure it is an internal URL. This way, the user can only be forwarded to screens in the same app they came from. We do this by checking the URL against the list of valid routes in the application, and routing the user to the home page if the URL is not in the list.</p>
<ul>
<li>Status: <strong>Resolved</strong>.</li>
<li>Issue link: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1492">https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1492</a></li>
</ul>
<h3 id="moderation-endpoints-do-not-implement-access-control"><a class="toclink" href="#moderation-endpoints-do-not-implement-access-control">Moderation endpoints do not implement access control</a></h3>
<h4 id="the-issue_2"><a class="toclink" href="#the-issue_2">The issue</a></h4>
<p>NLNet highlighted that moderation endpoints such as <code>/manage/moderation</code> and <code>/manage/users</code> were not protected by user access controls. While conditional rendering meant that no content could be accessed by an unauthenticated or unprivileged user, it is best practice to lock the screen itself down.</p>
<h4 id="our-response_2"><a class="toclink" href="#our-response_2">Our response</a></h4>
<p>To make sure users didn't access these screens, we introduced <code>beforeRouteEnter</code> guards on all moderation pages. These guards check that the user is authenticated and has the proper rights to access the page, and reroutes them to the home page if they don't.</p>
<ul>
<li>Status: <strong>Resolved</strong>.</li>
<li>Issue link: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1494">https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1494</a></li>
</ul>
<h3 id="improve-security-headers-in-default-nginx-config"><a class="toclink" href="#improve-security-headers-in-default-nginx-config">Improve security headers in default Nginx config</a></h3>
<h4 id="the-issue_3"><a class="toclink" href="#the-issue_3">The issue</a></h4>
<p>NLNet suggested that we implement improved security headers in our default Nginx configuration. Better headers improves the security of the web server for all users.</p>
<h4 id="our-response_3"><a class="toclink" href="#our-response_3">Our response</a></h4>
<p>We've implemented several improvements to our Nginx config since this report was done. Notably, the suggested header (<code>"Strict-Transport-Security: max-age=31536000"</code>) is present in our config already. We do not use the <code>includeSubDomains</code> option as we don't think this is a choice we should make for our users. Users can add this to their config if they want a little extra security!</p>
<ul>
<li>Status: <strong>Not Doing</strong>.</li>
<li>Issue link: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1493">https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1493</a></li>
</ul>
<p>That's it for now! We'll try to be quicker with these summaries in future. Thank you for bearing with us 🙏</p>Submit ideas for Google Summer of Code2022-01-12T00:00:00+01:002022-01-12T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-01-12:/gsoc.html<p>We're looking to submit our application to Google Summer of Code and we need your suggestions!</p><p>Hello again everyone 👋</p>
<p>Here at Funkwhale we've been doing some thinking about the future. While we love what we do, the reality of the situation is we don't always have the time to do what we might want to with Funkwhale as a project. This means there are a lot of really good ideas and pressing issues that are being left to the wayside while we focus on what we can.</p>
<p>The main blockers here are time and money. Many of us work full time on other things, and none of us are being paid for our contributions to Funkwhale currently. However, an opportunity has presented itself in the form of Google announcing an <a href="https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html">extension to their Google Summer of Code program</a>.</p>
<h2 id="what-is-the-google-summer-of-code"><a class="toclink" href="#what-is-the-google-summer-of-code">What is the Google Summer of Code?</a></h2>
<p>The Google Summer of Code is an online program in which participants get sponsored by Google to work on open source and free software projects. It essentially provides projects with paid staff who can work on specific, scoped projects in collaboration with the project maintainers and community.</p>
<h2 id="okay-so-what-do-i-need-to-do"><a class="toclink" href="#okay-so-what-do-i-need-to-do">Okay, so what do I need to do?</a></h2>
<p>The most important thing for GSoC is <em>interesting ideas</em>. We need to come up with some projects that GSoC interns could work on if we are accepted into the project. These can range from improving our app's frontend, to adding support for new devices, to integrating into new services, to improvements to our Android app. Really, the sky's the limit!</p>
<p>We'd like to hear your ideas for projects so that we can represent the interests of the community properly when we put forward a proposal. If you have an idea of something you've always wanted to see in Funkwhale, hop on over to <a href="https://forum.funkwhale.audio/">our forum</a> or our <a href="https://matrix.to/#/#funkwhale:matrix.org">Matrix channel</a> and let us know. We'll collate everything nearer the time and put forward our application.</p>
<h2 id="so-when-do-we-see-results"><a class="toclink" href="#so-when-do-we-see-results">So, when do we see results?</a></h2>
<p>It's important to note that we may very well not be accepted into the program. Many different projects put forward proposals every year, so it's very competitive. We will also be limited to a select few projects we can choose to put forward, so we need to choose carefully!</p>
<p>We're looking forward to hearing your suggestions! 🐳</p>Funkwhale 1.2.1 bugfix release2022-01-07T00:00:00+01:002022-01-07T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-01-07:/funkwhale-121-release.html<p>Hot off the heels of Funkwhale 1.2.0, a slightly more stable iteration is now ready for the limelight.</p><p>Hello again everybody! 👋</p>
<p>As mentioned in our <a href="https://blog.funkwhale.audio/funkwhale-120-release.html">Funkwhale 1.2.0 release announcement</a>, we have been working on a new bugfix release behind the scenes to address a couple of minor issues. We're pleased to announce that Funkwhale 1.2.1 is now ready for download. As always, you can follow the upgrade instructions <a href="https://docs.funkwhale.audio/admin/upgrading.html">in our docs</a>.</p>
<p>This new release fixes the following issues:</p>
<ul>
<li>Our pipeline wasn't generating artifacts properly, leading to our upgrade and install instructions not working as expected. This has now been amended, so you can download artifacts as expected 🛠</li>
<li>The remote content page for libraries <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1655">showed a blank screen</a>, meaning you were missing out on your remote libraries. This has been amended, so you can now get back to jamming out to tunes on other pods 🎸</li>
</ul>
<p>That's all for now. Just keep swimming! 🐋</p>Funkwhale 1.2.0 is out!2022-01-04T00:00:00+01:002022-01-04T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2022-01-04:/funkwhale-120-release.html<p>It's finally here! Funkwhale 1.2.0 is out now and available for download at an internet near you!</p><p>It's free! It's out! Funkwhale 1.2.0 has finally been published and pushed out for you to enjoy.</p>
<p><img alt="A gif from the movie Free Willy showing the whale jumping to freedom" src="images/free_willy.gif"></p>
<p>Funkwhale 1.2.0 marks a huge release with a lot of changes across the project. As always, you can follow the <a href="https://docs.funkwhale.audio/admin/upgrading.html">upgrade instructions</a> in our docs to update your instance.</p>
<h3 id="important-instructions-for-non-docker-deployments"><a class="toclink" href="#important-instructions-for-non-docker-deployments">Important instructions for non-Docker deployments</a></h3>
<p>Due to an issue in the publishing pipeline, the 1.2.0 build has no artifacts associated with it. If you are updating or installing a <strong>non-Docker deployment</strong>, you need to replace the <code>$FUNKWHALE_VERSION</code> placeholder in the static file and API artifact download steps with <code>81069</code> and <code>81072</code> respectively.</p>
<ul>
<li><code>https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/81069/artifacts/download</code> – Frontend</li>
<li><code>https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/81072/artifacts/download</code> – API</li>
</ul>
<p>This will be fixed in an upcoming bugfix release 🙏</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<p>This release brings with it a lot of new features, enhancements, and bugfixes that should make your listening experience more enjoyable. While most of the work for this release has been under the hood, there have also been some significant UI and UX changes aimed at making Funkwhale easier to use and more pleasing to look at. As always, you can find the full list of changes in our <a href="https://docs.funkwhale.audio/changelog.html">Changelog</a>, but let's go through a few of them here just to get you hyped up 🕺</p>
<h3 id="new-features"><a class="toclink" href="#new-features">New features</a></h3>
<p>New features are always the most fun, so let's run through them first!</p>
<ul>
<li>We've added a "Recently Added" radio to enable you to start playing all the most recent content on your pod 🎧</li>
<li>We have completely redesigned the pod "About" page to make it easier to share information about your pod with users. It also just looks a lot cleaner and cooler now 😎</li>
<li>We've deprecated the footer and moved all of its content to a neat little dropdown menu in the sidebar. The new profile menu is a much neater way of getting around and gives you more space to navigate your pod 🧭</li>
<li>We've completely revamped how track tables are laid out and unified this across the app. Track tables are more dynamic both in terms of usability and responsiveness. No more weird formatting on mobile 📱</li>
<li>Users of <a href="https://maloja.krateng.ch/">Maloja</a> can now submit scrobbles from Funkwhale using the new Maloja plugin 🔌</li>
</ul>
<h3 id="enhancements"><a class="toclink" href="#enhancements">Enhancements</a></h3>
<ul>
<li>You can now broadcast your listening activity for all the world to see! The new activity visibility makes it so that even remote users can see what you're rocking out to 🤘</li>
<li>Subsonic users can now get even more out of Funkwhale with newly added support for artist cover art and additional metadata 📡</li>
<li>ARM users can now set up Funkwhale in the wink of an eye with our new multiarch Docker containers ⚡️</li>
</ul>
<h3 id="bugfixes"><a class="toclink" href="#bugfixes">Bugfixes</a></h3>
<p>As usual, we've also stomped out some bugs with this latest release. We won't bore you with all the details here, but let's highlight a few that might have been annoying you:</p>
<ul>
<li>The volume slider can now be adjusted linearly rather than in steps, making for a smooth-as-butter experience 🧈</li>
<li>Tags will now only be suggested once when creating a search filter 🔎</li>
<li>The playback volume is now set globally, so it won't jump around when the track changes 🎚</li>
<li>The embed option is now visible for tracks in channels, so you can start sharing these with your friends 🎁</li>
</ul>
<h2 id="anything-else"><a class="toclink" href="#anything-else">Anything else?</a></h2>
<p>A lot of work has been going on behind the scenes for this release, mostly aimed at making contribution and maintenance easier. Let's highlight a few of these:</p>
<ul>
<li>We've deprecated the "master" branch in our repository. This will be replaced with a new branch name for 1.3.0 👩💻</li>
<li>We've linted our entire frontend codebase and added new checks to make sure we catch as many errors as possible before merging them into the codebase 🐛</li>
<li>We've improved our build processes and tooling to make the whole pipeline easier to deal with 🛠</li>
<li>We've removed the deprecated JSON Web Token (JWT) authentication method to reduce overhead and improve security 🔐</li>
<li>We've updated a host of dependencies for both our frontend and backend codebase 👷♀️</li>
</ul>
<h2 id="thank-you"><a class="toclink" href="#thank-you">Thank you</a></h2>
<p>As always, we'd like to thank everybody who got involved with this release: coders, designers, testers, translators, and users alike have helped shape this release up to be our best yet!</p>Funkwhale 1.2.0 release candidate2021-12-07T00:00:00+01:002021-12-07T00:00:00+01:00Sporifftag:blog.funkwhale.audio,2021-12-07:/funkwhale-120-rc-release.html<p>On your marks, get set, go! It's time to start testing the Funkwhale 1.2.0 release candidate!</p><p><img alt="And now… it's showtime!" src="https://media2.giphy.com/media/13ZVRnWnmSMaRy/giphy.gif?cid=ecf05e47rzwiu7wk7bjhk0mujxlowxqplnyw8qlq6ozgw192&rid=giphy.gif&ct=g"></p>
<p>Hello again everyone! We come to you in this coldest of months to bring good news! After months of development, the release candidate for Funkwhale 1.2.0 is finally ready to test!</p>
<h2 id="oh-boy-whats-that"><a class="toclink" href="#oh-boy-whats-that">Oh boy! What's that?</a></h2>
<p>A release candidate is a snapshot of all of the features and bugfixes we want to ship in the latest release. It's a releasable version of the new update that we can use to give people time to test out the new changes, submit translations, and generally play around with the software to make sure we address any issues before going live with the new version 🕹</p>
<h2 id="so-what-do-i-need-to-do"><a class="toclink" href="#so-what-do-i-need-to-do">So, what do I need to do?</a></h2>
<p>There are a few things you can do to help us get this release into shape!</p>
<ul>
<li>If you're a pod administrator, you can install this release candidate somewhere and play around with it to make sure we've tightened all the screws. If you find something that doesn't work how you expect, let us know so we can get on that 🔧</li>
<li>If you're a localizer, head on over to <a href="https://translate.funkwhale.audio">our weblate instance</a> to start updating translations in your language 🌐</li>
</ul>
<p>Any time you can spare to help us make this release as good as it can be is greatly appreciated 🙏</p>
<h2 id="what-else-do-i-need-to-know"><a class="toclink" href="#what-else-do-i-need-to-know">What else do I need to know?</a></h2>
<p>As always, 1.2.0 brings with it a host of new features, bug fixes, and new designs. We'll cover these in the actual announcement post, but for now there are a few things pod admins and contributors should be aware of regarding the upcoming release:</p>
<ol>
<li>We have removed the outdated JSON web token (JWT) based authorization flow. This means that apps using this flow to authenticate will not be able to talk to pods running 1.2.0 and above. This includes <a href="https://github.com/apognu/otter">Otter</a>. If you're currently using Otter, consider using the official <a href="https://f-droid.org/en/packages/audio.funkwhale.ffa/">Funkwhale for Android</a> app instead 🎧</li>
<li>We now ship multiarch Docker containers for deployment on ARM devices. This gives you a lot more options for which machines you can run Funkwhale on ⚡️</li>
<li>As announced in a <a href="https://blog.funkwhale.audio/deprecation-all-in-one-container.html">recent blog post</a>, we will be deprecating our all-in-one-Docker container. You don't need to worry about this just yet, but keep it in mind for the future 🔮</li>
<li>We will be switching our deployment branch from <code>master</code> to <code>main</code> to keep our terms inclusive. If your Ansible or Docker setup points to <code>master</code>, make sure you update those references as soon as possible!</li>
</ol>November update2021-11-07T00:00:00+01:002021-11-07T00:00:00+01:00Funkwhaletag:blog.funkwhale.audio,2021-11-07:/2021-november-update.html<p>October has come to an end and the winter is now upon us. Time for some updates to keep you warm and cosy ☕️</p><p>Hello there!</p>
<p><img alt="GIF of Obi-Wan Kenobi from Star Wars Episode 3 saying "Hello there!"" src="https://c.tenor.com/DSG9ZID25nsAAAAC/hello-there-general-kenobi.gif"></p>
<p>October has come to an end and the winter is now upon us. Time for some updates to keep you warm and cosy ☕️</p>
<h2 id="deprecating-the-all-in-one-container-deployment"><a class="toclink" href="#deprecating-the-all-in-one-container-deployment">Deprecating the All-In-One-Container deployment</a></h2>
<p>As announced in a <a href="https://blog.funkwhale.audio/deprecation-all-in-one-container.html">recent blog post</a>, we're deprecating the AIO-Container deployment method originally created by <a href="https://github.com/michaelmob">@michaelmob</a>. Check out the post for more information about our decision and our plan for the future. If you're currently using this deployment method: don't panic! We're going to continue supporting it for the immediate future and will provide a migration path to the multi-container deployment 💪</p>
<h2 id="multiarch-image-support"><a class="toclink" href="#multiarch-image-support">Multiarch image support</a></h2>
<p>Low power devices are getting more and more popular these days. Since our software is self-hosted, we want you to be able to run it on as many devices as possible. This month we have added initial support for multiarch Docker containers, meaning you will be able to run Funkwhale on ARM devices following the same instructions as our standard amd64 deployment 👩💻</p>
<h2 id="new-track-table-supports"><a class="toclink" href="#new-track-table-supports">New track table supports</a></h2>
<p>We teased this a little while ago, but after some more work we have finally merged our new track table design 🎉</p>
<p>Previously, our track tables were just that: tables. They didn't really work well on mobile and were a bit inflexible. Plus, we had different tables all over the app. It was a bit of a nightmare to be honest!</p>
<p>Following designs submitted by <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a>, <a href="https://dev.funkwhale.audio/sporiff">@sporiff</a> and <a href="https://dev.funkwhale.audio/georgkrause">@georgkrause</a> have worked hard to create a new, responsive way of playing music in Funkwhale.</p>
<h3 id="desktop-view"><a class="toclink" href="#desktop-view">Desktop view</a></h3>
<iframe title="Track tables desktop" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/a773657a-3683-481e-b81e-10f07efd5d8d" frameborder="0" allowfullscreen></iframe>
<p>The new track table view on desktop includes a neater way of presenting tracks. At a glance, you can easily see what track is playing thanks to our fancy new play indicator. You can also quickly tell what tracks are already in your favorites by looking out for the pink heart 💗</p>
<h3 id="mobile-view"><a class="toclink" href="#mobile-view">Mobile view</a></h3>
<iframe title="Track tables mobile" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/e8eb29d2-11db-41cc-8a16-3cebd7b468aa" frameborder="0" allowfullscreen></iframe>
<p>On mobile, we've adopted a modal-driven design to track controls. This means that the UI is not cluttered up with controls. You can tap the track to start playing it immediately, or click on the three dot context menu to show all other commands.</p>
<p>This approach should make it easier to play music on your mobile devices 📱</p>
<h2 id="new-about-page"><a class="toclink" href="#new-about-page">New about page</a></h2>
<p><img alt="A screenshot of our new "About" page layout" src="images/about.png"></p>
<p>Our default "About" page was getting a bit tired, so <a href="https://dev.funkwhale.audio/mjourdan">@mjourdan</a> kindly whipped up a fancy new design. While there's still some work to do, <a href="https://dev.funkwhale.audio/cone">@cone</a> has completed the initial merge request and we'll continue to tweak it to make sure it's ready for the prime time soon 😎</p>
<h2 id="other-highlights"><a class="toclink" href="#other-highlights">Other highlights</a></h2>
<p>The last few weeks have been quite eventful in the Funkwhale world! We're gearing up for the 1.2 release and have been finishing up some fun features and bugfixes.</p>
<ul>
<li><a href="https://dev.funkwhale.audio/phw">@phw</a> added a new plugin for sending listens to <a href="https://github.com/krateng/maloja">maloja</a> 🔌</li>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> fixed an issue that caused the player to jump to the last track in the queue when you removed the last entry 🎵</li>
<li><a href="https://dev.funkwhale.audio/devilcius">@devilcius</a> added artist cover art support to our Subsonic API 🖼</li>
</ul>Deprecation: All in One Container2021-11-05T13:48:00+01:002021-11-05T13:48:00+01:00Georgtag:blog.funkwhale.audio,2021-11-05:/deprecation-all-in-one-container.html<p>The All-in-One container deployment method is now deprecated and won't be supported in the future.</p><p>After several discussions and some consideration we have decided to deprecate the All-In-One-Container Docker
deployment method. We'll explain the reasons for this in this blog post But first: don't panic! If you are running the All-In-One-Container for your Funkwhale instance, you won't be facing this change alone!</p>
<h2 id="we-will-support-your-migration"><a class="toclink" href="#we-will-support-your-migration">We will support your migration</a></h2>
<p>Firstly, there will be builds of the AIO-Container for the next few releases. Funkwhale 1.3.x will
still be available for you without any change. Secondly, we will provide a guide how to migrate your
installation to the multi container deployment. Thirdly, if you are experiencing any issues with the migration,
we will provide support in our chat rooms and forums. We can manage this transition together 😄</p>
<h2 id="reasons"><a class="toclink" href="#reasons">Reasons</a></h2>
<p>There are several reasons for this decision and I'll try to explain them here.</p>
<p>Funkwhale has a quite broad feature set and several deployment methods. Its hard to maintain all of this. We do
think it's important to cover as many use cases as possible, but there are some limits. The AIO-Container
previously was maintained by <a href="https://github.com/michaelmob">@michaelmob</a>. Sadly, they seemed to stop working on this and some of our updates
have caused builds to fail. We took over the project to make sure the builds work, but we don't have the
resources to maintain this in the long-term. We want to focus on proper support of the multi container and ansible
setup as well as spending more time improving Funkwhale itself.</p>
<p>On a technical level the AIO-Container goes against the idea of a Docker deployment. Usually each service
lives in its own container, which allows scaling and is quite robust against the whole stack failing. This method
is supported by our multi container setup and works quite well.</p>
<p>If you have any questions or want to help creating a migration guide, get in touch through our
<a href="https://forum.funkwhale.audio/d/60-all-in-one-container-deprecation">Forum</a>.</p>October update2021-10-17T00:00:00+02:002021-10-17T00:00:00+02:00Funkwhaletag:blog.funkwhale.audio,2021-10-17:/2021-october-update.html<p>Another month, another blog post. Let's jump in to some of the things that have been happening recently with the Funkwhale project.</p><p>Hi everyone!</p>
<p>Another month, another blog post. Let's jump in to some of the things that have been happening recently with the Funkwhale project.</p>
<h2 id="funkwhale-for-androidtm-is-on-f-droid"><a class="toclink" href="#funkwhale-for-androidtm-is-on-f-droid">Funkwhale for Android™ is on F-Droid</a></h2>
<p>After the announcement last month we've been doing some work behind the scenes to make it easier for you to get your hands on Funkwhale for Android™ (FFA). You can now grab FFA directly from <a href="https://f-droid.org/en/packages/audio.funkwhale.ffa/">the official F-Droid repository</a>, which means you no longer have to set up an external repository! We'd like to thank the F-Droid team for their help on this project 🥂</p>
<p>Work is still ongoing to get the app into the Google Play Store, which is proving more of a challenge due to Google's opaque review process. We'll keep you all updated of our progress as we continue 💪</p>
<h2 id="changes-to-our-open-collective"><a class="toclink" href="#changes-to-our-open-collective">Changes to our Open Collective</a></h2>
<p>We've been using <a href="https://opencollective.com/funkwhale">Open Collective</a> as a donation platform for a few years now. Recently, we noticed that we could tweak some settings to remove platform fees from donations. This means that 100% of the money you donate goes to the project directly 💵</p>
<p>There's still a discussion to be had with the community about how we want to use the funds raised by the collective since we're able to handle our hosting costs pretty handily. Once we've got some more ideas we'll open up the discussion to the whole community to get your input.</p>
<h2 id="funkwhale-updates"><a class="toclink" href="#funkwhale-updates">Funkwhale updates</a></h2>
<p>As always, the project continues to power on with updates and new features. To highlight a few:</p>
<ul>
<li>We've made the volume slider even more slidey with stepless adjustment support. Now that's sleek 🤩</li>
<li>A recent update gives you a nice visual indicator when you've copied your Subsonic password. You know, just so you're sure 🔒</li>
<li>We're still working on some layout changes and visual overhauls to track tables and the app user menu. These are big changes so we're taking some time to clean them up and make sure they're as good as we want them to be 🛁</li>
</ul>
<p>That wraps it up for this month! Thanks for reading. We'll be back next month with more news.</p>September Update2021-09-03T00:00:00+02:002021-09-03T00:00:00+02:00Funkwhaletag:blog.funkwhale.audio,2021-09-03:/2021-september-update.html<p>For quite some time I've wanted to create regular blog posts to let you know what's cooking at Funkwhale. It's really quite a lot, so let's get started!</p><p>Hi everyone!</p>
<p>For quite some time I've wanted to create regular blog posts to let you know what's cooking at Funkwhale. It's really quite a lot, so let's get started!</p>
<h2 id="general-assembly"><a class="toclink" href="#general-assembly">General Assembly</a></h2>
<p>We planned our General Assembly. All members are invited to vote for our Committees and discuss some important topics. It's happening on September 17th, 19:30 CEST on a special Matrix channel. If you're a member, you should have received an invitation. If not, get in touch!</p>
<p>I'm really excited about this General Assembly, since it will be my first and we will end this intermediate phase in leading the development.</p>
<p>If you want to follow the news or get involved, check out our forum! https://forum.funkwhale.audio/d/36-general-assembly-organization/11</p>
<h2 id="coming-up-release"><a class="toclink" href="#coming-up-release">Coming up release</a></h2>
<p>Our last minor version (1.1.0) was released on March 10th, so almost 6 months ago. That's a long time and we've got a lot of things done since then. Some more changes are currently in the works and should be done soon. This release will be mostly a maintenance release, though. We have a lot of dependency updates, we've removed some deprecated code, and we've improved our workflows. There are some interesting improvements, though, so stay tuned! I am confident that we will have a version 1.2 this year, no promises, though!</p>
<h2 id="discuss-future-developments"><a class="toclink" href="#discuss-future-developments">Discuss future developments</a></h2>
<p>We have some topics which pop up again and again and hopefully we can start working on these things as soon as possible. Not all of them are fully clear yet, so if you have ideas we are looking forward to getting your input! Some great mockups for future features can be found in our design repository: https://dev.funkwhale.audio/funkwhale/funkwhale-design</p>
<h2 id="androidtm-app"><a class="toclink" href="#androidtm-app">Android™ App</a></h2>
<p><strong>TL;DR</strong>
It's time to party! We have released a first version of Funkwhale for Android™ (FFA) – the new official Android™ application.
To get a copy, please add <a href="https://fdroid.funkwhale.audio/">our self-hosted F-Droid repository</a> to your F-Droid client application. Our repository hosts a preview version that gets updated frequently and a stable release version.</p>
<p><strong>The story</strong>
You might know that a bit more than two months ago we forked <a href="https://github.com/apognu/otter">Otter</a> - an open source client that you can use to connect to Funkwhale pods. Even though FFA still resembles Otter a lot, there are some important enhancements and a few bugfixes in our first release. The most important feature is the implementation of a new authentication system. This will be necessary to use upcoming versions of the Funkwhale server. We have also fixed a number of issues that had been reported in the Otter repository. Please have a look at the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/raw/0.1.1/CHANGELOG">complete change log</a> for more details.</p>
<p><strong>So what's the plan for the future?</strong>
In the short term, we want to make FFA available both through the official F-Droid repository and the Google Play Store, so that users can get the app more easily.
We also have dozens of issues <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues">in our backlog</a> already. We know of a number of bugs that we want to address going forward but we also have ideas for further enhancements.</p>
<p><strong>Get involved!</strong>
Right now, our team is quite small and, as a community project, we appreciate not only your ideas but also your contributions to the ongoing development.
And there are many different ways to help: you can chip in with development, you can report bugs, you can also help by <a href="https://translate.funkwhale.audio/">translating the app</a>.
We have created a basic <a href="https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/wikis/Development-Documentation/Developer-setup">developer setup documentation</a>, that can help if you want to get involved. Although we are looking for people that like to get involved on a regular basis we certainly welcome individual contributions as well. If you want to talk to us, you can reach us in our <a href="https://matrix.to/#/#funkwhale-android:matrix.org">Matrix channel</a>.</p>
<p><strong>Thanks Antoine</strong>
We want to take the opportunity to thank Antoine for all the work that went into Otter in the past. Without him, Funkwhale for Android™ would not have been possible.</p>
<h2 id="our-blog"><a class="toclink" href="#our-blog">Our Blog</a></h2>
<p>We've had some issues with our blogging software. We have been using Plume for a long time now. It's a fediverse project, which has served us quite well up until now. Sadly we have been experiencing some annoying bugs lately. In the last few days we worked hard to move all our posts to a static page generator with keeping all URLs valid. This should now work, but let us know if you encounter any issues! One nice improvement is that we are in full control of the theme now and we will work on improving it.</p>
<p>Thanks for reading!</p>New Funkwhale forums2021-07-13T18:21:00+02:002021-07-13T18:21:00+02:00Funkwhaletag:blog.funkwhale.audio,2021-07-13:/new-funkwhale-forums.html<p>We’re excited to announce that we have launched a new forum! 🎉</p><p>We’re excited to announce that we have launched a new forum! 🎉</p>
<p>You can check it out and sign up over at <a href="https://forum.funkwhale.audio">https://forum.funkwhale.audio</a>. This will be replacing our existing forums over at <a href="https://governance.funkwhale.audio">https://governance.funkwhale.audio</a> for future community discussions.</p>
<p>Forums are an important part of a lot of software projects and communities. They offer a place for communities to gather and talk about a project asynchronously. For some, they are more accessible and understandable than fast-moving chats and email threads. Because of this, we’ve kept our forums at the heart of Funkwhale-related discussions and communications.</p>
<p>Back when the project was starting to pick up, we decided upon Loomio as our forum software. This was due to Loomio’s polling tools, which helped us conduct community decision-making. But over the last few years the forums have grown more complex. People have sometimes found it a bit difficult to navigate and understand. The layout of topics and discoverability of threads is a bit lacking in Loomio compared to other forum software. Since we want the forums to be the center of community engagement, this is not ideal!</p>
<p>A few weeks ago, a user enquired about whether we’d considered alternatives to Loomio. They pointed out some areas where Loomio was lacking, such as a lack of social log in and poor post editing tools. Off the back of this discussion, we decided to take a look at what was out there.</p>
<h2 id="the-alternatives-the-alternatives-dirauto"><a class="toclink" href="#the-alternatives-the-alternatives-dirauto">The alternatives {#the-alternatives dir="auto"}</a></h2>
<p>When looking at alternative software, we had a few requirements:</p>
<ol>
<li>The software needed to be free and open source to keep in line with the project’s goals.</li>
<li>It needed to be user-friendly and offer better navigation options than Loomio.</li>
<li>It had to support a range of login methods to enable users to sign in how they want.</li>
<li>It had to integrate well with our existing tools to make sure we weren’t duplicating efforts.</li>
</ol>
<p>The two main alternatives we considered were <a href="https://www.discourse.org/">Discourse</a> and <a href="https://flarum.org/">Flarum</a>.</p>
<p>Discourse is a very well-known piece of software that many projects use day-to-day. It has a user-friendly interface, good layout options, and offers many prebuilt plugins. But when we looked at it we found a couple of issues with it. Discourse is quite a resource-intensive application, and can get quite slow. It is also written in Ruby, which nobody in the project is very familiar with. While neither of these issues would block a deployment, they could lead to issues later on.</p>
<p>Flarum, by comparison, is pretty lightweight. It also offers a pleasant user interface and simple tools, and has many prebuilt plugins. The biggest advantage of Flarum is that it is written in PHP.</p>
<blockquote>
<p>A million developers cry out in pain.</p>
</blockquote>
<p>All jokes aside, PHP is a very capable language and one that many people on the project have some experience with. Sticking to software written in familiar languages enables us to maintain and build upon our forums much more easily.</p>
<h2 id="forum-setup-forum-setup-dirauto"><a class="toclink" href="#forum-setup-forum-setup-dirauto">Forum setup {#forum-setup dir="auto"}</a></h2>
<p>Once we’d picked our software, we decided to create a test instance for the community to check out. We set up some spaces to separate out content and test how the forum would look, then started posting content like normal.</p>
<p>The new forums contain more clearly separated topics. We now have dedicated topics for:</p>
<ul>
<li><strong>Development</strong>: Conversations relating to bugs, new features, and other development topics.</li>
<li><strong>Support</strong>: A space for community members to ask each other for help and support.</li>
<li><strong>Music</strong>: A space to share music you’ve discovered or created on Funkwhale!</li>
<li><strong>Podcasts</strong>: A space to share cool podcast content with each other.</li>
<li><strong>Community</strong>: A place to hang out, introduce yourselves, and get to know one another.</li>
</ul>
<p>Each of these topics has subtopics to help keep discussions navigable. We’re open to feedback about more topics/subtopics going forward, so please feel free to open up a discussion!</p>
<h2 id="join-us-join-us-dirauto"><a class="toclink" href="#join-us-join-us-dirauto">Join us! {#join-us dir="auto"}</a></h2>
<p>If you’re an existing user or just someone who wants to get involved, please come and join us. If you want to get more involved with the community, make a post in the <a href="https://forum.funkwhale.audio/t/introduction">introduction topic</a> telling us a bit about yourself!</p>
<p>We are looking to add more language-specific topics for people who don’t speak English. Currently, we have German and French spaces set up. However, we need help maintaining and moderating these spaces as we don’t speak other languages fluently. If you’d like to volunteer to moderate a new language, open up a thread about it in the <a href="https://forum.funkwhale.audio/t/community">community topic</a>!</p>
<p>We’re looking forward to seeing everyone there 👋</p>Diversity2021-06-14T18:07:00+02:002021-06-14T18:07:00+02:00Funkwhaletag:blog.funkwhale.audio,2021-06-14:/diversity.html<p>It’s Pride month. People around the world are fighting for equality and celebrate diversity. The Funkwhale community is fully in support of diversity.</p><p>It’s Pride month. People around the world are fighting for equality and celebrate diversity. The Funkwhale community is fully in support of diversity. We believe it is the greatest strength any community can have. Because of this, we have always tried to make our spaces welcoming to everyone and have strived to be inclusive to people from all backgrounds. However, we have not always been as successful as we would have liked to have been.</p>
<p>It is easy to pay lip service to the subject of diversity. Words and platitudes are cheap, and many in the technology world like to wax philosophical about how much they are in support of under-represented communities. Putting these sentiments into practice, however, is much more challenging. For all of our best efforts, we need to acknowledge we are far from perfect. Most of the people who hold positions in the Funkwhale community are male, based in Europe, and white. That’s not an equal representation of the people around the world or the users of Funkwhale, and is something we are keen to address.</p>
<p>Lets elaborate why this is so important to us. Humans are quite different, they have different use cases for and different access to our software. There are different devices, different languages, different abilities and many more differences than we can even think about. On the one hand its simply discriminatory to exclude some people from using or developing our software or take part in shaping the community. On the other hand this exclusion is a huge loss for the community, since we loose perspectives, opinions and contributors. And this is exclusion is not only happening explicitly. We also exclude people by not making our places welcoming or making it not easy enough for people to join us.</p>
<p>We have had some discussions about this topic. We know we cannot remedy every factor that has led us to where we are currently. But we typify these issues at Funkwhale, too, and this is something we think we can change. We want to be more inclusive and welcoming, and we want to make sure that people can not only enjoy our software, but feel positive about contributing to the project and community as well.</p>
<p>This is where you come in. Besides having our own thoughts about the topic and doing some research, we want to open the discussion and get your feedback, so that we are not just acting on our own myopic points of view. So, if you want to give us some input, have some ideas, or want to point out places where we have messed up, let us know! Tell us everything you think about this topic, especially if you don’t feel represented in the community already.</p>
<p>You can write us an <a href="mailto:maintainers@funkwhale.audio">E-Mail</a> (private), contact us on <a href="https://fosstodon.org/@funkwhale">Mastodon</a> or <a href="https://twitter.com/funkwhaleaudio">Twitter</a> (private or publicly), you can post to our <a href="https://governance.funkwhale.audio">Forums</a> (public) or provide your feedback <a href="https://nextcloud.funkwhale.audio/apps/forms/iHSAHryTbbx2gEWb">here</a> (private & anonymous).</p>Roadmap2021-05-12T13:27:00+02:002021-05-12T13:27:00+02:00Funkwhaletag:blog.funkwhale.audio,2021-05-12:/roadmap.html<p>We have some good news: the Funkwhale community is slowly becoming more organized again and we are getting stuff done.</p><h2 id="project-maintainence"><a class="toclink" href="#project-maintainence">Project maintainence</a></h2>
<p>We have some good news: the Funkwhale community is slowly becoming more organized again and we are getting stuff done. We are quite close to publishing another bugfix release and the development for the next minor version has already started.</p>
<p>In the background there is a lot of stuff going on, too. Our infrastructure is being revisited, all tools are getting updates, deprecated tools are being replaced and new tools are already planned. Additionally we have been talking about the state of the Funding with NLNet and have got a few extra offers, namely a security audit, packaging for NixOS and an accessibility audit.</p>
<h2 id="upcoming-version-12"><a class="toclink" href="#upcoming-version-12">Upcoming version 1.2</a></h2>
<p>Enough of the boring stuff, you are here to hear about the new features we plan to ship in the following releases. As I said, development for 1.2 has already started. There are already some minor improvements merged: If you click on a track in a playlist, e.g. an album, the whole context gets added to the queue instead of the single song and track pages now show a cover image. There is also some refactoring of the lists in the UI in progress, which is especially useful on mobile devices. Check this video to see what we are working on:</p>
<p>Some more UI improvements will be included in 1.2. Most of the work will be done under the hood, though. We need to update a lot of dependencies, prepare ourselves for a new major version of our UI toolkit and build a solid base for future versions. We have a lot of great feature requests, but before we start to work on them we need to built a solid base and iron out technical debts.</p>
<h2 id="plans-for-13"><a class="toclink" href="#plans-for-13">Plans for 1.3</a></h2>
<p>None of this is set in stone yet, but we have some plans for 1.3: we want to refactor the UI to provide a better experience.</p>
<p><img alt="A screenshot showing a mockup of the new homescreen layout" src="images/new_home.png"></p>
<p>On this side, our goal is to provide people with a more welcoming landing page, and offer an easier navigation throughout content.</p>
<p>Additionally we want to implement some tools to have a wider view at the network. Due to the distributed nature of Funkwhale, there is no single database containing all the music. We want to built some mechanics to increase the amount of content which is visible for the user, no matter which instance they are using!</p>
<h2 id="support-us"><a class="toclink" href="#support-us">Support us</a></h2>
<p>This is a community project. If you want to support us, check out <a href="https://funkwhale.audio/en_US/support-us">our support page</a> or join our <a href="https://funkwhale.audio/en_US/community">Community spaces</a> if you want to contribute to Funkwhale!</p>Current state of finding new maintainers2021-04-25T12:37:00+02:002021-04-25T12:37:00+02:00Funkwhaletag:blog.funkwhale.audio,2021-04-25:/current-state-of-finding-new-maintainers.html<p>Hello everyone. About five months ago Agate wrote a blog post explaining that Funkwhale searches for new maintainers as she steps down for personal reasons.</p><p>Hello everyone. About five months ago Agate wrote a blog post explaining that Funkwhale searches for new maintainers as she steps down for personal reasons.</p>
<p>Since then, some things happened. Lately we realized there was not enough transparency about the process and a update is needed. Thats the motivation for this post.</p>
<p>I used the term “we” in the previous paragraph and this is probably the point, where this update should start. Who are we? My name is Georg, I am actually quite new to this great community. My instance was started in May 2020. Since I was using mopidy before my first contributions were made for the mopidy plugin. When I saw the mentioned blog post, I stepped up for maintaining this plugin. Some people gathered together in a maintainers chat room to coordinate the work on the whole project.</p>
<p>When I entered this room in February, it was quite silent. There already were some contributions from several people merged into the develop branch and a release was needed to ship them. So we worked towards a 1.1 release, published an release candidate, fixed some bugs and the first release made by the community was there \o/</p>
<p>While I did some coordination, a lot of work was done by others: We had a bunch of contributors (See the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/releases/1.1">Changelog</a>), petitminion helps with managing the issues, mjourdan works on concepts to improve the design of the Funkwhale interface and reviews changes if they are a step in the right direction. Agate is still there for answering questions while Ginny moderated open.audio and was available to handle any case of abuse. Additionally we had a lot of users reporting issues and help to debug them.</p>
<p>By getting deeper into the project I noticed there are still a lot of responsibilities for Agate. The project was raised by her and thats a natural thing, but still a burden for her and sometimes a brake when she is not available. A huge task was the maintaince of our self hosted systems: Our project management, our forum and a lot of other services. Luckyly @egon0 stepped up to care for our infrastructure in the future. This takes another load from Agate.</p>
<p>So lets sum this up. As a reminder, here is the list of tasks collected by Agate in November 2020.</p>
<ol>
<li>Building a roadmap</li>
<li>Implementing roadmap items (new features)</li>
<li>Implementing day-to-day bugfixes and enhancements</li>
<li>Publishing new releases</li>
<li>Providing support to pod admins and users</li>
<li>Maintaining the Funkwhale infrastructure and services (servers, GitLab, Blog, Forums, etc.)</li>
<li>Maintaining and moderating open.audio</li>
<li>Communicating around the project and our blog and social media</li>
<li>Triage, answer and prioritize issues on the issue tracker</li>
</ol>
<p>As mentioned above, petitminion covers point 9., egon0 handles 6., while I take care of publishing releases, supporting users and admins and hunting bugs. Some points are still not covered. I wish I could spend more time to work on Funkwhale and implement new features, but this is not going to work for me this year. Additionally there are points 7 and 8. Especially moderation and handling of abuses are important tasks.</p>
<p>Agate will continue to be around to answer questions about the existing processes, organization, infrastructure and codebase, but plans to slowly move to other horizons.</p>
<p>If you are interested in helping out there, please <a href="https://funkwhale.audio/en_US/community">get in touch</a>! :)</p>
<p>\~Georg</p>Funkwhale is looking for new maintainers2020-11-18T19:27:00+01:002020-11-18T19:27:00+01:00Funkwhaletag:blog.funkwhale.audio,2020-11-18:/funkwhale-is-looking-for-new-maintainers.html<p>I come today with some important news that are going to impact the future of the project.</p><p>Hi there!</p>
<p>It's been a while since our last blog post. Lots of things happened, in particular Funkwhale 1.0 and 1.0.1 were released, even though we didn't publish proper announcements on the blog, so congratulation to the community for this big milestone.</p>
<p>I come today with some important news that are going to impact the future of the project.</p>
<h2 id="on-funkwhale-development-and-project-management"><a class="toclink" href="#on-funkwhale-development-and-project-management">On Funkwhale development and project management</a></h2>
<p>When I (Agate) started Funkwhale, five years ago, it was a personal hobby. Over the years, it has grown to become much, much more. New people joined the effort, we built a collective to support the project and work together, Funkwhale itself grew and many, many new features were implemented.</p>
<p>While the collective effort of our community made a lot of things possible, like keeping the documentation accurate and up-to-date, translating Funkwhale to new languages, packaging it to several platforms, integrating it with third-party projects, giving feedback on new features or developing a dedicated Android™ application, some tasks kept being handled almost exclusively by me.</p>
<p>In particular, I'm thinking about project management, development and maintenance tasks, such as:</p>
<ol>
<li>Building a roadmap</li>
<li>Implementing roadmap items (new features)</li>
<li>Implementing day-to-day bugfixes and enhancements</li>
<li>Publishing new releases</li>
<li>Providing support to pod admins and users</li>
<li>Maintaining the Funkwhale infrastructure and services (servers, GitLab, Blog, Forums, etc.)</li>
<li>Maintaining and moderating open.audio</li>
<li>Communicating around the project and our blog and social media</li>
<li>Triage, answer and prioritize issues on the issue tracker</li>
</ol>
<p>Some people helped or are still helping with those tasks but overall, it has been my responsibility to handle all of this (and possibly more).</p>
<h2 id="i-cannot-do-this-anymore"><a class="toclink" href="#i-cannot-do-this-anymore">I cannot do this anymore</a></h2>
<p>As you're probably already guessing from our silence and the post title, I am not able to do this work anymore.</p>
<p>I won't dive too much in the details, but I had serious health issues this summer, and the dust is only starting to settle. This affected my ability to work on the project on more important scale than expected, and I haven't been able to achieve anything lately but the most basic tasks.</p>
<p>Initially, I thought my energy and motivation would eventually come back as they were before. They didn't, however, and I think it's time I communicate clearly about this and take a step back from my current role as a project maintainer.</p>
<h2 id="were-looking-for-help"><a class="toclink" href="#were-looking-for-help">We're looking for help</a></h2>
<p>For the time being, I am still willing to perform some of the tasks listed above, mainly maintenance tasks like basic support, infrastructure and open.audio maintenance or critical bugfixing and releases. Everything else, I won't do anymore (I haven't in a while, anyway).</p>
<p>I don't want to put what we have built in danger, and I want to leave some time for new people to take over.</p>
<p>Me reducing my involvement in the project doesn't necessarily mean Funkwhale will die, though this implies members of the community take ownership on the unfulfilled tasks and responsibilities. I've been amazed by our collective strength in the past, and I'm quite eager to see what will happen next.</p>
<p>As much as possible, I'll try to help with the transition, if people have questions or need pointers. I'm not leaving the community after all ;)</p>
<p>Some of the development tasks can be paid, as we still have some of the <a href="https://governance.funkwhale.audio/d/QyEBOaV6/status-of-our-nlnet-funding">NLNet funding</a>. This could be an opportunity for you to get paid working on open-source software!</p>
<p>If you are willing to help with one or many of the tasks listed above, please get in touch with us on <a href="https://governance.funkwhale.audio/d/mBfhxe6N/funkwhale-is-looking-for-new-maintainers">our forum</a>, or on <a href="https://app.element.io/#/room/#funkwhale:matrix.org">Matrix</a>.</p>
<p>Thank you so much for reading and helping with Funkwhale <3</p>Blog post week 2020-19: starting the work on Funkwhale 0.21.1 and 1.02020-05-08T13:45:00+02:002020-05-08T13:45:00+02:00Funkwhaletag:blog.funkwhale.audio,2020-05-08:/blog-post-week-2020-19-starting-the-work-on-funkwhale-0211-and-10.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/%7E/Announcements/blog-post-week-2020-17-funkwhale-0.21-is-out">last time</a>?</p>
<h2 id="squashing-bugs-in-funkwhale-021"><a class="toclink" href="#squashing-bugs-in-funkwhale-021">Squashing bugs in Funkwhale 0.21</a></h2>
<p>With the new features and the player/queue redesign introduced in v0.21, we've introduced new bugs and issues.</p>
<p>As a result, we've started to work on fixing these, and will release a patch release, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/milestones/24">v0.21.1</a>, probably by the end of the month.</p>
<p>This release will only include bugfixes and fully backward compatible enhancements that can be backported from the incoming 1.0 release.</p>
<p>It will also bring <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/741">several enhancements</a> that have been requested by the community regarding the <code>import_files</code> command, and in particular:</p>
<ul>
<li>Support updating metadata on existing in-place imported files when performing a scan</li>
<li>A new <code>--watch</code> flag to react to filesystem events (file creation, update, removal, move)</li>
<li>A <code>--prune</code> flag to easily prune library from dangling metadata after a scan</li>
</ul>
<p>If you've encountered new bugs in Funkwhale 0.21 that are not yet scheduled for the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/milestones/24">0.21.1</a> milestone, don't hesitate to open new tickets!</p>
<h2 id="planning-funkwhale-10"><a class="toclink" href="#planning-funkwhale-10">Planning Funkwhale 1.0</a></h2>
<p><a href="https://governance.funkwhale.audio/d/0RJWr5Ts/a-roadmap-for-funkwhale-0-21/10">As already announced during our last community consultation when building the roadmap for Funkwhale 0.21</a>, Funkwhale 0.22 will in fact be 1.0.</p>
<p>Let's take a moment to review the reasons and implications of that.</p>
<h3 id="longstanding-issues-and-technical-debt"><a class="toclink" href="#longstanding-issues-and-technical-debt">Longstanding issues and technical debt</a></h3>
<p>The current Funkwhale codebase will be three-years old on June 23, 2020. Over the years, we've introduced a lot of new features, and barely removed any. This means that the amount of existing bugs has grown in the app.</p>
<p>In addition to this, working on new exciting features meant we have postponed some important enhancements that were requested by our community:</p>
<ul>
<li>Our search experience is suboptimal as we don't have a dedicated search page</li>
<li>It's not possible to change your email</li>
<li>We have several accessibility issues (we'll talk more about this in a dedicated post) that need to be fixed</li>
</ul>
<p>This list is not exhaustive.</p>
<p>Finally, we've accumulated a fair share of technical debt. For instance, we're still supporting Python 3.5, which was released in 2015, and is not supported anymore by many of our dependencies, leading to a wide range of bugs and unexpected behaviours (as well as some performance or security issues).</p>
<p>Other examples of technical debt that currently exist in the project:</p>
<ul>
<li>We have two authentication schemes in place (JWT for the Web UI and OAuth for third-party apps)</li>
<li>Our theming system needs to be reworked to be easier to deal with</li>
<li>Some components (library cards, radio cards) don't match the latest improvements in the UI</li>
</ul>
<p>Here again, the list isn't exhaustive.</p>
<h3 id="our-first-stable-release"><a class="toclink" href="#our-first-stable-release">Our first stable release</a></h3>
<p><strong>Funkwhale 1.0 will allow us to address these issues and work on the overall stability of the project.</strong> By releasing our first stable version (that's what 1.0 means), we're also sending a signal to our community.</p>
<p>When Funkwhale 1.0 is released, it means we consider Funkwhale is mature enough for you to use, and we're committed to keep it that way.</p>
<p>We won't break Funkwhale REST API compatibility in future minor releases (1.1, 1.2, etc.), meaning developers can safely build new clients, apps and integrations on top of it.</p>
<p>However, to get there and ensure Funkwhale 1.0 is as stable and clean as possible, we will have to break compatibility in some places (e.g by removing JWT auth, or Python 3.5 support). As always, we'll document such breaking changes and offer guidance to upgrade.</p>
<p>Finally, the 1.0 release will be an opportunity for us to complete the API documentation, as many endpoints are not currently documented.</p>
<p>Thank you for staying with us, and let's build an awesome and stable 1.0 release!</p>Hosting your podcast for free on open.audio2020-04-24T09:25:00+02:002020-04-24T09:25:00+02:00Funkwhaletag:blog.funkwhale.audio,2020-04-24:/hosting-your-podcast-for-free-on-funkwhale-openaudio.html<p>To celebrate our latest release, we're offering free accounts with 3GB of storage on open.audio for a limited time!</p><p>TL;DR: To celebrate our <a href="https://blog.funkwhale.audio/blog-post-week-2020-17-funkwhale-021-is-out.html">latest release</a>, for a limited time, we're offering free accounts with 3GB of storage at <a href="https://open.audio">open.audio</a> if you want to host your podcast or audio content on a decentralized, ad-free, open platform.</p>
<p>Visit <a href="https://open.audio/signup">https://open.audio/signup</a> to get started or continue reading to learn more.</p>
<hr>
<p>Hi there, fellow podcasters!</p>
<p>Over the past 6 months, <a href="https://blog.funkwhale.audio/021-preview-channels-feature.html">we've worked really hard to make it possible to publish and host podcasts on Funkwhale</a>, and we're now confident enough to communicate more widely about it.</p>
<h3 id="the-offer"><a class="toclink" href="#the-offer">The offer</a></h3>
<p>To celebrate this, we're opening subscriptions for a couple of weeks at <a href="https://open.audio">https://open.audio</a>. Any account created in this period will get 3GB of storage to publish podcast episodes!</p>
<p>To avoid abuse and ensure the best quality of service, we'll review registrations manually, typically in a few hours so don't panic if there is a small delay before you get your confirmation.</p>
<h3 id="the-features"><a class="toclink" href="#the-features">The features</a></h3>
<p>As soon as your account is confirmed, you can <a href="https://docs.funkwhale.audio/users/channels.html">create channels and publish your podcasts</a> there. <a href="https://open.audio/channels/umlautsareoverestimated/">Here</a> is an example of a podcast page.</p>
<p>A couple features that you may like:</p>
<ul>
<li>Other users can <a href="https://docs.funkwhale.audio/users/followchannel.html#following-funkwhale-channels-on-funkwhale">subscribe to podcasts if they have an account on any Funkwhale pod</a>, and anonymously, as we produce <a href="https://docs.funkwhale.audio/users/followchannel.html#following-funkwhale-channels-through-podcast-apps">a RSS feed compatible with existing podcasting applications</a>.</li>
<li>Each podcast episode published on Funkwhale gets a dedicated page, and can have a description and cover image. People can visit this page to listen to your episode, without logging-in.</li>
<li>It's also possible to embed your channel or episodes on your own website, through an iframe-based player</li>
</ul>
<p>Because Funkwhale is free software, you can also <a href="https://docs.funkwhale.audio/installation/">host your own pod</a> or let someone else, such as <a href="https://app.spacebear.ee/funkwhale">SpaceBear</a> host it for you, under your own domain.</p>
<p>We'd love to hear what you think about it, and of course, let us know if you have any questions! You can contact us by email at <a href="mailto:contact@open.audio">contact@open.audio</a>.</p>Blog post week 2020-17: Funkwhale 0.21 is out!2020-04-24T09:02:00+02:002020-04-24T09:02:00+02:00Funkwhaletag:blog.funkwhale.audio,2020-04-24:/blog-post-week-2020-17-funkwhale-021-is-out.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2020-15-first-release-candidate-for-funkwhale-021.html">last time</a>?</p>
<h2 id="funkwhale-021-is-out"><a class="toclink" href="#funkwhale-021-is-out">Funkwhale 0.21 is out</a></h2>
<p>Funkwhale 0.21, codename "Agate", was officially published this morning! You can now upgrade your pod or install a brand new one, to benefit from the dozens of new features, enhancements and bugfixes shipped in this release, including:</p>
<ul>
<li>Support for publishing and subscribing to podcasts</li>
<li>Brand new navigation, queue and player redesign</li>
<li>Browsing a library content through the UI</li>
<li>Federated reports</li>
<li>Screening for sign-ups</li>
<li>Enforceable email verification</li>
<li>More reliable and less resource-hungry CLI importer, esp. on large libraries</li>
</ul>
<p>As usual, we recommend reading the <a href="https://docs.funkwhale.audio/changelog.html#agate-2020-04-24">full changelog</a> before upgrading.</p>
<p>This release is dedicated to Agate, to thank her, for both having created the Funkwhale project, being the current lead developer, and for her courage of coming out. Thank you Agate from all the members of the Funkwhale community <3</p>
<p>We are truly grateful as well to the dozens of people who contributed to this release with translations, development, documentation, reviews, design, testing, feedback, financial support, third-party projects and integrations... You made it possible!</p>
<h2 id="whats-next"><a class="toclink" href="#whats-next">What's next?</a></h2>
<p>Now that 0.21 is published, we'll probably take a break and start scheduling tickets for the stable release.</p>
<p>Funkwhale 1.0 will focus on stability, bugfixing, and building a solid, backward-compatible foundation for the project. You can expect to hear more about this in the upcoming weeks :)</p>Blog post week 2020-15: first release candidate for Funkwhale 0.212020-04-10T12:23:00+02:002020-04-10T12:23:00+02:00Funkwhaletag:blog.funkwhale.audio,2020-04-10:/blog-post-week-2020-15-first-release-candidate-for-funkwhale-021.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2020-011-new-shiny-stuff-status-update-and-our-first-nl-net-payment.html">last time</a>?</p>
<h2 id="funkwhale-021-rc1-is-out"><a class="toclink" href="#funkwhale-021-rc1-is-out">Funkwhale 0.21-rc1 is out</a></h2>
<p><a href="https://governance.funkwhale.audio/d/SeUDP7vM/funkwhale-0-21-release-incoming-looking-for-testers-">Our first release candidate (RC) is out</a> and ready for wider testing by the community!</p>
<p>It should be stable enough for further testing, although some bugs may occur. If you feel like it, have a look at the forum post linked above to get instructions on how to upgrade and what to test.</p>
<p>We want to get as much feedback as possible regarding bugs and regressions before the final release, scheduled around April 21, so don't wait too much ;)</p>
<h2 id="whats-new"><a class="toclink" href="#whats-new">What's new?</a></h2>
<p>You can read the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/tags/0.21-rc1">full changelog</a>, but here is an excerpt of the main changes and features included in this release:</p>
<ul>
<li>Support for publishing and subscribing to podcasts (Channels)</li>
<li>Brand new navigation, queue and player redesign</li>
<li>Browse a library content through the UI</li>
<li>Federated reports</li>
<li>Screening for sign-ups</li>
<li>Make it possible to enforce email verification</li>
</ul>
<p>Ginny put together a couple of blog posts to give you an in-depth preview of the new <a href="https://blog.funkwhale.audio/021-preview-moderation-features.html">moderation features</a>, and the new <a href="https://blog.funkwhale.audio/021-preview-channels-feature.html">channels features</a>, you should definitely have a look if you're curious!</p>
<h2 id="thank-you"><a class="toclink" href="#thank-you">Thank you!</a></h2>
<p>Overall, more than 35 people contributed to this release, and counting. Be it with feedback, translations, design, development, third-party integrations, testing, their work is truly invaluable.</p>
<p>Thank you Agate, annando, Anton Strömkvist, Audrey, ButterflyOfFire, Ciarán Ainsworth, dashie, Eloisa, eorn, Francesc Galí, GinnyMcQueen, guillermau, Haelwenn, jinxx, Jonathan Aylard, Keunes, M.G, marzzzello, Mathé Grievink, Mélanie Chauvel, Mjourdan, Morgan Kesler, Noe Gaumont, Noureddine HADDAG, Ollie, Peter Wickenberg, Renon, Satsuki Yanagi, Shlee, techknowlogick, ThibG, Tony Wasserka, unklebonehead, wakest, wxcafé, Xosé M and everyone else way me have forgot in this list <3</p>
<p>We're also extremely grateful to NLNet and all our supporters and donors, for making it possible to work on Funkwhale in a sustainable way!</p>0.21 Preview: Channels Feature2020-04-10T10:09:00+02:002020-04-10T10:09:00+02:00Funkwhaletag:blog.funkwhale.audio,2020-04-10:/021-preview-channels-feature.html<p>Expanding Funkwhale to be podcast friendly has been the culmination of months of community work, and we're so excited to finally show it to you!</p><p>Expanding Funkwhale to be podcast friendly has been the culmination of months of community work, and we're so excited to finally show it to you!</p>
<p>Channels are here! Users can now create channels which makes it easy for users to have their music, podcasts, and other audio manageable from one user account, with listeners able to subscribe to channels individually.</p>
<p>Here is a preview of the channel creation:</p>
<iframe title="Channels upload" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/abee3645-4c5f-4dc2-83bd-e4a08b5e220e" frameborder="0" allowfullscreen></iframe>
<p>And here is what the subscription feature looks like:</p>
<iframe title="Channels subscription" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/1a88eca4-2de8-403f-b5bf-df7b8a9d0ee2" frameborder="0" allowfullscreen></iframe>
<p>There's lots more to this feature, such as batch uploads and meta data editing, and a whole redesign of the single track page:</p>
<iframe title="Channels edit" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/d3e10342-0e9f-44c9-9e86-30a1cfda58e8" frameborder="0" allowfullscreen></iframe>
<p>Not only does each Funkwhale channel have its own RSS feed for easy subscription by listeners outside of Funkwhale, but podcasts and other audio hosted elsewhere can be subscribed to via its RSS feed inside Funkwhale. This means you can have all your subscriptions in once place for easy listening and management right from your Funkwhale account.</p>
<p>In addition, Funkwhale channels can be followed from other federated services: Mastodon, Pleroma, Friendica and Reel2Bits!</p>
<p>We want to again thank the community for their amazing work on these features from the idea stage, to testing, to coding. We could not have gotten to this release without you!</p>0.21 Preview: Moderation Features2020-04-02T07:32:00+02:002020-04-02T07:32:00+02:00Funkwhaletag:blog.funkwhale.audio,2020-04-02:/021-preview-moderation-features.html<p>0.21 is just around the corner and we wanted to give you a preview into some of the changes, including these new moderation features!</p><p>0.21 is just around the corner and we wanted to give you a preview into some of the changes, including these new moderation features!</p>
<p><img alt="A cartoon stingray and octopus hi-5'ing" src="./images/community.jpg"></p>
<h2 id="screening-for-sign-ups"><a class="toclink" href="#screening-for-sign-ups">Screening for sign-ups</a></h2>
<p>First, we have <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1056">screening for sign-ups</a>. In addition to enabling and disabling public registrations, admins can now require new users to fill out a form to request membership for the pod. When submitted, the new user request will go into a queue in the moderation dashboard where admin/moderators can manually approve/deny sign-ups. Admins can add up to three form questions as well custom help text (with markdown capabilities) for information and clarification for potential users before they sign up.</p>
<p>Admins/moderators will receive and email when there is a new sign-up in the queue, and users will receive an email when their sign-up request is approved or denied.</p>
<p>This feature helps filter out spam and other unwanted accounts while remaining accessible to new users.</p>
<iframe title="Signup screening" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/2a5bc833-afd6-41a1-9fcc-c07832660920" frameborder="0" allowfullscreen></iframe>
<h2 id="federated-reports"><a class="toclink" href="#federated-reports">Federated reports</a></h2>
<p>Next, we now have <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1049">federated reports</a> both between Funkwhale pods, and with other ActivityPub software. You can report users and content, and choose to forward your reports to the offending instance if necessary. This makes it easier for admins and moderators to keep on top of abuse issues and to share information between pods and platforms.</p>
<h2 id="email-verification-during-sign-up"><a class="toclink" href="#email-verification-during-sign-up">Email verification during sign-up</a></h2>
<p>And last but not least, we now have <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1039">email verification during sign-up</a>. Admins can now choose to enforce email verification to prevent signup with fake email addresses. This is another barrier to keep spam and other unwanted accounts out of your pod. Nothing to fancy to show in the user interface, but it’s quite helpful!</p>
<p>Thank you to all in our community for your support, and stay tuned for more feature previews as we near the release of Funkwhale 0.21!</p>Blog post week 2020-011: new shiny stuff, status update, and our first NLNet payment!2020-03-13T14:14:00+01:002020-03-13T14:14:00+01:00Funkwhaletag:blog.funkwhale.audio,2020-03-13:/blog-post-week-2020-011-new-shiny-stuff-status-update-and-our-first-nl-net-payment.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2020-08-some-podcasts-news-and-a-meetup.html">last time</a>?</p>
<p>First of all we skipped a week but hey, this happens :p</p>
<h2 id="regarding-podcasts"><a class="toclink" href="#regarding-podcasts">Regarding podcasts</a></h2>
<p>Things are still progressing. In particular, @mjourdan contributed several missing wireframes for some import screens of the UI.</p>
<p>As of today, it's also possible to subscribe to 3rd-party podcasts directly from Funkwhale!</p>
<p>What remains?</p>
<ul>
<li>Completing some of the federation features/tests</li>
<li>Designing/implementing the subscriptions UI</li>
<li>Designing/implementing the new album and track pages</li>
<li>Some additional testing and polishing</li>
</ul>
<p>Most of the hard work is already done though!</p>
<h2 id="other-dev-news"><a class="toclink" href="#other-dev-news">Other dev news</a></h2>
<p>Several interesting contributions were merged over the past three weeks, in particular:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1048">Support for browsing a library content</a> @agate</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1042">Reduced size of our docker image</a>, by @renon</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1049">Federated reports with other Funkwhale pods, Mastodon and Pleroma</a> by @agate</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1036">New locale, kb_dz</a> by @nhaddag, @sporiff</li>
</ul>
<h2 id="where-are-we-regarding-the-021-release"><a class="toclink" href="#where-are-we-regarding-the-021-release">Where are we regarding the 0.21 release?</a></h2>
<p>It's been already 5 months since our last release. You may remember we initially commited to quarterly releases, so you deserve an explantion and status update.</p>
<p>Here is our initial roadmap for the 0.21 release:</p>
<ol>
<li>Podcasts/easier audio publication on the platform (in progress)</li>
<li>Redesign of the sidebar navigation (completed)</li>
<li>Screening for sign-ups (not started)</li>
<li>Enforce mail verification during signups (in progress)</li>
<li>Federated reports (completed)</li>
</ol>
<p>As you can see, two out of five items are completed, and two more are in progress. However, we underestimated the work that was needed to implement the podcasts/channels feature. Although we're reaching the end of it, it took us several months to get here.</p>
<p>Item #4 should take a few days of work, and item #3 a week at most. Our current estimation for the podcasting feature is something around 2 weeks of work left. Add to that all the necessary small bugfixes and tweaks, 1 week.</p>
<p>If those estimations are accurate, and nothing unexpected comes up, you can expect a release by the end of April.</p>
<p>Some people in the community are concerned about the lack of releases, and we totally understand this. We'll do our best to honor our quarterly release schedule after Funkwhale 0.21 is out!</p>
<p>And if you want to see our current progress, you can always visit <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/milestones/21">https://dev.funkwhale.audio/funkwhale/funkwhale/-/milestones/21</a> ;)</p>
<h2 id="we-got-our-first-nlnet-payment"><a class="toclink" href="#we-got-our-first-nlnet-payment">We got our first NLNet payment!</a></h2>
<p>It's not a surprise, and we had no reason not to trust NLNet, but that's an important milestone for our us anyway! We completed several items from our roadmap, and got the corresponding payments from NLNet.</p>
<p>In case you're wondering, <a href="https://governance.funkwhale.audio/d/QyEBOaV6/status-of-our-nlnet-funding">we have a public forum thread to follow the payments requests, and the associated roadmap items.</a></p>
<p>That's pretty much it for today. Thank you for reading, and see you in two weeks!</p>Blog post week 2020-08: some podcasts news, and a meetup2020-02-18T08:29:00+01:002020-02-18T08:29:00+01:00Funkwhaletag:blog.funkwhale.audio,2020-02-18:/blog-post-week-2020-08-some-podcasts-news-and-a-meetup.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2020-06-more-funding-and-development-news.html">last time</a>?</p>
<h2 id="funkwhale-meetup-in-paris"><a class="toclink" href="#funkwhale-meetup-in-paris">Funkwhale Meetup in Paris</a></h2>
<p>We had our first meetup in Paris last Saturday and spent a lovely afternoon at L'Imprévu Café, with Funkwhale friends and crew. Thank you for joining us, and if you couldn't be there this time, don't worry, we'll have other meetups in the future!</p>
<h2 id="podcasts-news"><a class="toclink" href="#podcasts-news">Podcasts news</a></h2>
<p>After the RSS feature from last month, we've continued podcasts development slowly but steadily. In particular, it's now possible to:</p>
<ul>
<li>Create, manage and remove channels through the UI</li>
<li>Upload files, edit metadata and publish tracks through the UI</li>
</ul>
<p>In particular, the uploader supports batch uploads, publish later, and adding covers and descriptions to individual tracks.</p>
<p>All this work is done <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1033">in a single branch</a>, and is expected to land in the main branch this week. Right now, we're gathering feedback from our fellow podcasters to polish everything, and adding the missing bits ;)</p>
<p>It's a short blog entry today. See you next time!</p>Blog post week 2020-06: more funding and development news2020-02-06T08:15:00+01:002020-02-06T08:15:00+01:00Funkwhaletag:blog.funkwhale.audio,2020-02-06:/blog-post-week-2020-06-more-funding-and-development-news.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2020-04-we-got-funding.html">last time</a>?</p>
<h2 id="regarding-our-funding"><a class="toclink" href="#regarding-our-funding">Regarding our funding</a></h2>
<p>As announced in our previous blog post, NLNet granted us 47,500€ to work on critical items in the Funkwhale roadmap.</p>
<p>If you want to learn more about the details, and what tasks the funding will apply to, <a href="https://governance.funkwhale.audio/d/QyEBOaV6/status-of-our-nlnet-funding">we've published an in-depth forum post about it</a>.</p>
<p>This link will take you to our testing platform, and the new "Channel" screen. The next screens to be implemented are the user profiles, followed by the channel management and upload screens!</p>
<h2 id="installing-funkwhale-from-source"><a class="toclink" href="#installing-funkwhale-from-source">Installing Funkwhale from source</a></h2>
<p>In order to have a test platform for the incoming podcasts/channels feature, we've reworked <a href="https://dev.funkwhale.audio/funkwhale/ansible/">our Ansible playbook</a> to support installing from source.</p>
<p>This means it's now possible and really easy to deploy a specific branch of Funkwhale that isn't merged, or even your custom fork/repository! If you're willing to test this, have a look at the brand new "Installing from source" in the Ansible playbook repository.</p>
<h2 id="development-news"><a class="toclink" href="#development-news">Development news</a></h2>
<p>In addition to this, development has continued in various areas:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1010">A longstanding set of bugs regarding metadata deduplication</a> has been solved recently. If you encountered split albums/compilations, or skipped uploads, this should fix the situation</li>
<li>Jean has submitted a handful of improvements to our Ansible role, to <a href="https://dev.funkwhale.audio/funkwhale/ansible/merge_requests/8">create the install directory if it's missing</a>, <a href="https://dev.funkwhale.audio/funkwhale/ansible/merge_requests/9">support PostgreSQL databases hosted on a remote server</a> and <a href="https://dev.funkwhale.audio/funkwhale/ansible/merge_requests/10">more complex reverse proxy configurations</a></li>
<li>techknowlogick submitted a bunch of enhancements and fixes for our docker images: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1016">updated Redis from v3 to v5</a>, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1017">updated Linux Alpine from v3.8 to v3.11</a>, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1018">updated NodeJS from v11 to v12</a>, and also <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/1022">fixed a crash occuring with cover images that had uppercased extensions</a></li>
<li>Podcasts/channels development has continued, with exciting news, as the contribution that brings compatibility with existing podcasting apps through RSS feeds has been merged!</li>
</ul>Blog post week 2020-04: we got funding!2020-01-24T16:41:00+01:002020-01-24T16:41:00+01:00Funkwhaletag:blog.funkwhale.audio,2020-01-24:/blog-post-week-2020-04-we-got-funding.html<p>These days, the development effort is mainly focused on channels. We've seen significant progress on that front…</p><h2 id="development-notes"><a class="toclink" href="#development-notes">Development notes</a></h2>
<p>These days, the development effort is mainly focused on channels. We've seen significant progress on that front, and even though the remaining work is huge, we are making huge strides!</p>
<h2 id="a-nixos-package-for-funkwhale"><a class="toclink" href="#a-nixos-package-for-funkwhale">A NixOS package for Funkwhale</a></h2>
<p>Someone has been working on a NixOS package for Funkwhale. Unfortunately, this person didn't have the time and energy to complete the task.</p>
<p>If you are familiar with NixOS packaging, or know someone who could be interested in helping with this effort, please <a href="https://github.com/NixOS/nixpkgs/pull/53416">have a look at the corresponding Pull Request on GitHub</a>!</p>
<h2 id="were-funded"><a class="toclink" href="#were-funded">We're funded!</a></h2>
<p>Today, we can share one of the most exciting news in the history of the project: <a href="https://nlnet.nl/project/Funkwhale/">Funkwhale is officially funded by the NLNet Foundation as part of their Discovery fund</a>.</p>
<p>NLnet is a Dutch association that supports internet-related and open-source technologies and projects. <strong>We submitted a formal proposal back in October 2019, to ask them to support us, and they accepted, for an amount up to 48,000 euros!</strong></p>
<p>This money will proceed to Agate and Ginny, who dedicate a lot of time to the project, in order to give them the financial stability to continue for the forseeable future. Really soon, we'll also share more details regarding how the money will be affected in terms of roadmap items and features.</p>
<p>Many, many thanks to the folks at NLNet who trusted Funkwhale and decided to support us!</p>Blog post week 2020-02: happy new year!2020-01-10T14:09:00+01:002020-01-10T14:09:00+01:00Funkwhaletag:blog.funkwhale.audio,2020-01-10:/blog-post-week-2020-02-happy-new-year.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-48-a-podcasting-task-force-and-an-anniversary.html">last time</a>?</p>
<h2 id="happy-new-year"><a class="toclink" href="#happy-new-year">Happy new year!</a></h2>
<p>Better late than sorry: we wish you the best for 2020! May this year be thrilling, joyful and full of good memories <3</p>
<h2 id="development-notes"><a class="toclink" href="#development-notes">Development notes</a></h2>
<p>With holidays, development has slowed, and we're getting back to it. But there have been exciting changes since our last blog post:</p>
<ul>
<li><a href="https://governance.funkwhale.audio/d/m9LlGf4T/redesign-of-the-sidebar-navigation">Our navigation and player redesign was merged, after two months of work</a>. If you're using the develop branch, you can enjoy a better navigation, with easier access to your personal content, and a mobile-first player and queue!</li>
<li>We've also merged a first round of improvements to our content cards (the UI elements that represent artists, radios, playlists, albums, etc.), based on <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/973">a proposal from</a> @mjourdan</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/975">We've rebuilt our search engine to use PostgreSQL full-text-search</a>, which drastically improve performance, especially on slower hardware</li>
<li>We've improved offline and mobile experience thanks to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/983/">a contribution by Sporiff that makes Funkwhale a Progressive Web App</a>.</li>
<li>@Creak also stepped up to continue the work on a <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/990">Desktop app, based on Electron</a>, that was started by @Kaze 6 months ago. It's not ready yet, but it's promising!</li>
</ul>
<h2 id="what-about-podcasting"><a class="toclink" href="#what-about-podcasting">What about podcasting?</a></h2>
<p>We've continued our weekly meetings to design the podcasting/channels feature, and made a lot of progress. Implementation of the first screens should start next week, and focus first on the listener experience.</p>
<h2 id="funkwhale-community-spotlight"><a class="toclink" href="#funkwhale-community-spotlight">Funkwhale Community Spotlight</a></h2>
<p><a href="https://blog.funkwhale.audio/funkwhale-community-spotlight-unkle-bonehead.html">Our monthly interview for January was published yesterday</a>. This time, we feature @Unklebonhead, who joined the podcasting working group in december!</p>
<h2 id="funkwhale-at-fosdem"><a class="toclink" href="#funkwhale-at-fosdem">Funkwhale at Fosdem</a></h2>
<p>While we won't have a stand or presentation at Fosdem, some of us (@agate and @gordon) will attend. Feel free to <a href="https://fosstodon.org/@funkwhale">reach out</a> if you want to meet there!</p>Blog post week 2019-48: a podcasting task force and an anniversary2019-12-02T08:38:00+01:002019-12-02T08:38:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-12-02:/blog-post-week-2019-48-a-podcasting-task-force-and-an-anniversary.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-45-updates-and-native-android-app.html">last time</a>?</p>
<h2 id="were-now-in-fork-awesome"><a class="toclink" href="#were-now-in-fork-awesome">We're now in Fork Awesome!</a></h2>
<p>Thanks to <a href="https://github.com/ForkAwesome/Fork-Awesome/issues/216">a request from</a> @DeadSuperHero, our logo will be included in the next version of the <a href="https://github.com/ForkAwesome/Fork-Awesome/issues/216">Fork Awesome icon font</a>.</p>
<p>We're using Fork Awesome on various of the Funkwhale websites, and we'd like to use the occasion to send a huge "thank you!" to the Fork Awesome community!</p>
<h2 id="development-notes"><a class="toclink" href="#development-notes">Development notes</a></h2>
<p>Several small and medium fix and features were shipped over the past weeks, and will be included in the 0.22 release:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/950">Sorting and pagination options will now be saved when browsing artists, albums, playlists and radios</a> (contributed by @Renon)</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/954">Pod admins got a new, powerful CLI to create, update and remove users</a> (@agate)</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/956">It's now possible to easily update album covers</a> through the web UI (@agate)</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/957">Two new radios are now available</a>, to let you play your own content, or content from a specific library (@agate)</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/953">Recently edited playlists will now show up first on the landing page</a> (@Renon)</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/952">Fixed a padding issues on playlist cards</a> (@Renon)</li>
</ul>
<p>@mjourdan also opened a <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/973">redesign proposal to harmonize the various artist, album, playlist and radio cards</a>. The initial wireframes are really exciting, don't hesitate to have a look and share your feedback!</p>
<h2 id="podcasts-and-channels-are-on-the-way"><a class="toclink" href="#podcasts-and-channels-are-on-the-way">Podcasts and channels are on the way</a></h2>
<p>The working group gathered last week for the first time, and we're now ready to start the design, implementation and testing work of the feature.</p>
<p>You can follow the progress or join the working group on the dedicated <a href="https://matrix.to/#/#funkwhale-podcasts:matrix.org">Matrix Channel</a> or on the corresponding <a href="https://governance.funkwhale.audio/d/s7GTeHwU/podcast-support">forum thread</a>. We'll also have a weekly meeting on thursday or saturday (alternating) at 17:00 UTC, until the feature is released.</p>
<p>The current focus is on collecting user stories and relevant art to feed the upcoming design process.</p>
<h2 id="an-anniversary"><a class="toclink" href="#an-anniversary">An anniversary</a></h2>
<p>We've been using the "we" pronoun for a while here, but we'll make an exception today. Sometimes, things are personal, and there is no shame in that.</p>
<p>If you've been following the project for a while, you probably know that I, Agate, usually write and publish these blog entries. But why?</p>
<p><a href="https://blog.funkwhale.audio/logbook-week-0-2018-48.html">Recurring publication on this blog started a year ago</a>, in the form of a logbook. A year ago, I left my job to focus on Funkwhale, and committed to write a weekly blog entry. This quote from the first logbook describes my mindset at the time pretty well:</p>
<blockquote>
<p>Transitioning from a traditional job - even though I worked remotely - with meetings, schedules, (brilliant) colleagues, external goals and all the daily routine to a completely different setting, well, it's scary, and exciting, at the same time.</p>
<p>Part of my efforts to keep this momentum will go into a weekly log I intend to publish every friday. For you, this log will be the occasion to get news, facts and insights about what's actually going on for Funkwhale. As for myself, I hope it will be a - rather fun - way to structure my week and motivate myself.</p>
</blockquote>
<p>The switch was planned for months, <a href="https://blog.funkwhale.audio/funkwhale-past-present-and-future.html">I mentioned it in september 2018 in a blog entry</a>. Still, it was a deeply scary moment. On Friday, I was working for a company, although remotely. On Monday, I was on my own, without much structure, staring at my screen.</p>
<p>I was so afraid to loose my rhythm, motivation and routine that I basically kept my previous job's schedule and replaced everything with Funkwhale-related tasks!</p>
<p>Another scary thing was the amount of work to do. In particular, I committed to work toward the following goals:</p>
<ul>
<li>make the project more accessible to users and contributors</li>
<li>simplify the installation / maintenance / upgrade processes</li>
<li>enable financial and non-financial support to content creators that publish their work on Funkwhale</li>
<li>set up a proper structure around Funkwhale to receive donations, pay contributors (as myself), manage the community spaces, etc.</li>
<li>work on bigger features</li>
</ul>
<p>I'd be lying if I said everything was still to do. The project already had a small but active community, and discussions on some of those topics was ongoing. In fact, I wouldn't have left my job if this community didn't exist.</p>
<p>Today, I need to acknowledge the work we've done together, as a community of individuals. I mean, look at this list, over the past year, we:</p>
<ul>
<li>Setup a non profit around Funkwhale and had our first <a href="https://governance.funkwhale.audio/d/ld63UwBg/general-assembly-1-may-19th-6pm-utc-2-">General Assembly</a></li>
<li><a href="https://funkwhale.audio/collective/">Established a formal and democratic governance around the project</a></li>
<li><a href="https://funkwhale.audio/code-of-conduct/">Adopted a Code of Conduct</a></li>
<li>Got a bank account</li>
<li><a href="https://funkwhale.audio/contact/">Appointed a moderation team</a></li>
<li><a href="https://docs.funkwhale.audio/changelog.html">Shipped 4 major releases, from Funkwhale 0.18 to Funkwhale 0.21</a></li>
<li><a href="https://network.funkwhale.audio/dashboards/">Grew the public network to 35 pods and almost 400 active users each month</a></li>
<li><a href="https://funkwhale.audio/support-us/#budget">Agreed on and published an official budget</a></li>
<li>Collected more than 1000€ of donations, and got enough recurring donations to cover our monthly costs</li>
<li><a href="https://translate.funkwhale.audio/projects/funkwhale/front/">Had Funkwhale fully translated to 8 languages (and partially translated to many more)</a></li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues?scope=all&utf8=%E2%9C%93&state=closed&milestone_title=Any">Fixed hundreds of issues</a> through hundreds of contributions</li>
<li><a href="https://governance.funkwhale.audio/g/L4AfDozC/funkwhale-retribute">Started a working group for Retribute</a> and published <a href="https://retribute.me">https://retribute.me</a></li>
<li><a href="https://governance.funkwhale.audio/d/s7GTeHwU/podcast-support">Started a working group to develop our next big feature, Funkwhale channels</a></li>
<li><a href="https://github.com/apognu/otter">Got our first native android app</a></li>
<li><a href="https://pad.funkwhale.audio/roadmap">Agreed on a formal roadmap</a></li>
<li><a href="https://blog.funkwhale.audio/category/community.html">Started a cycle of monthly interviews on the blog</a></li>
<li><a href="https://blog.funkwhale.audio/category/announcement.html">Published more than 35 blog entries</a></li>
<li>Redesigned <a href="https://funkwhale.audio">https://funkwhale.audio</a>, with the cutest mascots ever</li>
<li><a href="https://funkwhale.audio/support-us#donate">Set up our new donation system</a></li>
<li><a href="https://governance.funkwhale.audio/d/pQS1Uznd/abuse-audit">Identified, designed and implemented critical moderation tools in the platform</a></li>
<li><a href="https://docs.funkwhale.audio/installation/#quick-install">Published a fully automated installation and update script</a></li>
</ul>
<p>All this work, and everything else I forgot, is worth celebrating, really. We did that together folks!</p>
<p>On a personal level, whenever I read this evergrowing list, I don't feel scared anymore. This is one of the reasons I try to account for all the work we're doing, through blog posts or forum threads. I believe it fuels our motivation more than anything else.</p>
<p>I am intensely grateful to be able to work on this project I love, with people I love. Thank you, to each of everyone who is, has been or will be a member of the Funkwhale community. Thanks to your presence, support, feedback, ideas and kind words, I am living one the most intense and rewarding period in my life.</p>
<p>Everything isn't bright and shiny, though, and I also think it's important to acknowledge our failures and weaknesses.</p>
<p>The amount of changes our group went through means we lost some people on the way. As of today, we still have no sustainable funding to pay our contributors. I'm still the only one to handle most of the development and implementation work. Funkwhale is still harder to deploy, maintain and use than it should be.</p>
<p>Next year, I'll continue to work on the various roadmap items. But I'd also like to address some of these issues. In particular, I really want to make it possible for other people to contribute to the project and get paid for it. After all, there are no valid reasons I'm the only one to enjoy this.</p>
<p>Saying I'm looking forward to next year would be an understatement. I'm <em>craving</em> it. And even if it's only half good as 2019, 2020 will be amazing.</p>
<p>From the bottom of my heart, thank you for being a part of it.</p>
<p>Agate</p>Blog post week 2019-45: updates and native Android™ App2019-11-08T14:52:00+01:002019-11-08T14:52:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-11-08:/blog-post-week-2019-45-updates-and-native-android-app.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-42-a-quiet-time.html">last time</a>?</p>
<p>First of all, we missed last week's blog entry. That's because we had a busy schedule that prevent us from publishing it, and we apologize.</p>
<h2 id="updated-yunohost-package"><a class="toclink" href="#updated-yunohost-package">Updated YunoHost package</a></h2>
<p><a href="https://github.com/YunoHost-Apps/funkwhale_ynh">Funkwhale's YunoHost package</a> was updated from Funkwhale 0.19.1 to 0.20.1. This means that you can update your YunoHost install and benefit from the latest features and fixes.</p>
<p>Thanks @jibec for you work!</p>
<h2 id="navigation-and-player-redesign"><a class="toclink" href="#navigation-and-player-redesign">Navigation and player redesign</a></h2>
<p>Following the design discussion at <a href="https://governance.funkwhale.audio/d/m9LlGf4T/redesign-of-the-sidebar-navigation">https://governance.funkwhale.audio/d/m9LlGf4T/redesign-of-the-sidebar-navigation</a>, we've made progress on the redesign implementation.</p>
<p>This redesign will bring a better user experience on both mobile and desktop, thanks to a cleaner navigation and a complete overhaul of the queue and player.</p>
<p>Up-to-date videos and links to live-test the redesign can be found at <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/923">https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/923</a>. Remember to share your feedback!</p>
<p>Many thanks to @mjourdan for their amazing work on the wireframes and their involvement in the discussion.</p>
<h2 id="otter-a-native-androidtm-app-for-funkwhale"><a class="toclink" href="#otter-a-native-androidtm-app-for-funkwhale">Otter, a native Android™ App for Funkwhale</a></h2>
<p><a href="https://mastodon.social/@apognu">@apognu </a>recently published a beta version of <a href="https://github.com/apognu/otter">a native Android™ app for Funkwhale, named Otter</a>.</p>
<p>Compared to other <a href="https://funkwhale.audio/apps/">Android™ apps</a> such as DSub, Otter is way easier to setup, and more tailored to Funkwhale, because it uses our APIs (instead of Subsonic APIs).</p>
<p>Otter's features, as of this writing, are the following:</p>
<ul>
<li>Basic collection browsing (artists, albums and tracks)</li>
<li>Playlists listing</li>
<li>Favorites management (listing and add/remove)</li>
<li>Track search</li>
<li>Queue management</li>
<li>Caching of played tracks (played tracks work offline)</li>
<li>Dark mode</li>
</ul>
<p>The app is available for free on the <a href="https://play.google.com/store/apps/details?id=com.github.apognu.otter">Play Store</a> and directly as <a href="https://github.com/apognu/otter/releases/">an APK from GitHub</a>. Release on F-Droid is planned soon.</p>
<p>Please send any feedback you may have on the <a href="https://github.com/apognu/otter">GitHub repository</a>.</p>
<p>Thank you @apognu for making this app a reality!</p>
<h2 id="monthly-community-interview"><a class="toclink" href="#monthly-community-interview">Monthly community interview</a></h2>
<p>As usual, <a href="https://blog.funkwhale.audio/funkwhale-community-spotlight-gordon.html">our monthly community interview</a> was published earlier this week. This times, Gordon, early user of the project and current Secretary of the Board discuss his involvement in the project, among other things.</p>
<p>Thank you Ginny and Gordon for this month's interview!</p>Blog post week 2019-42: a quiet time ;)2019-10-18T15:23:00+02:002019-10-18T15:23:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-10-18:/blog-post-week-2019-42-a-quiet-time.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-40-funkwhale-020-is-here.html">last time</a>?</p>
<p>It's been rather quiet lately. After the 0.20 release on October 4th, we took some time to rest, and we're slowly getting back to work.</p>
<h2 id="funkwhale-0201"><a class="toclink" href="#funkwhale-0201">Funkwhale 0.20.1</a></h2>
<p>As with most new big releases, with introduced a few bugs in Funkwhale 0.20. We'll be releasing Funkwhale 0.20.1 by the end of the month to address some annoying bugs.</p>
<p>It will also bring several enhancements, like a retry button for failed uploads and consistent placeholder and call to actions when there is no content on a page.</p>
<p>You can follow the progress <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/milestones/22">here</a>, don't hesitate to report any bug you may encounter!</p>
<h2 id="starting-the-work-for-the-next-release"><a class="toclink" href="#starting-the-work-for-the-next-release">Starting the work for the next release</a></h2>
<p>We've also started to work on the next release. <a href="https://governance.funkwhale.audio/d/0RJWr5Ts/a-roadmap-for-funkwhale-0-21">We've agreed on a roadmap with the community</a>, and began with the <a href="https://governance.funkwhale.audio/d/m9LlGf4T/redesign-of-the-sidebar-navigation">sidebar/navigation redesign</a>.</p>
<p>It's not complete yet, but we should have a demo to provide for the next blog entry ;)</p>
<p>Podcasts/channels development should start in november, and we'll soon make some announcements regarding how we plan to organize the development and implementation of the feature.</p>
<h2 id="a-dedicated-website-for-retribute"><a class="toclink" href="#a-dedicated-website-for-retribute">A dedicated website for Retribute</a></h2>
<p>We've been rather silent about the progress of Retribute, but we've been working on a dedicated website for the project, and expect to launch it next week. Stay tuned!</p>
<h2 id="monthly-interview"><a class="toclink" href="#monthly-interview">Monthly interview</a></h2>
<p><a href="https://blog.funkwhale.audio/funkwhale-community-spotlight-sporiff.html">Our september interview was published recently</a>. If you want to learn more about Sporiff and his involvement in the Funkwhale project and community, you should definitely read it!</p>Blog post week 2019-40: Funkwhale 0.20 is here!2019-10-04T10:40:00+02:002019-10-04T10:40:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-10-04:/blog-post-week-2019-40-funkwhale-020-is-here.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-38-release-incoming.html">last time</a>?</p>
<h2 id="funkwhale-020"><a class="toclink" href="#funkwhale-020">Funkwhale 0.20</a></h2>
<p>The release was published this morning and an upgrade of your pod is recommended if you want to benefit from the many, many improvements, bugfixes and new features!</p>
<p>Here are a few noteworthy changes, but as usual you can find the full list in <a href="https://docs.funkwhale.audio/changelog.html#id1">our documentation</a>.</p>
<h3 id="suport-for-associating-genrehashtags-with-artists-albums-and-tracks"><a class="toclink" href="#suport-for-associating-genrehashtags-with-artists-albums-and-tracks">Suport for associating genre/hashtags with artists, albums and tracks</a></h3>
<p>Funkwhale will automatically extract genre information from uploaded files and associate it with the corresponding tracks in the form of tags (similar to Mastodon or Twitter hashtags).</p>
<p>Tags can also be associated with artists and albums, and updated after upload through the UI using the edit system released in <a href="https://docs.funkwhale.audio/changelog.html#id5">Funkwhale 0.19</a>. Tags are also fetched when retrieving content via federation.</p>
<p>Tags are used in various places to enhance user experience:</p>
<ul>
<li>Tags are listed on tracks, albums and artist profiles</li>
<li>Each tag has a dedicated page were you can browse corresponding content and quickly start a radio</li>
<li>The custom radio builder now supports using tags</li>
<li>Subsonic apps that support genres - such as DSub or Ultrasonic - should display this information as well</li>
</ul>
<h3 id="landing-and-about-page-redesign"><a class="toclink" href="#landing-and-about-page-redesign">Landing and about page redesign</a></h3>
<p>We've completely redesigned the landing and about page, by making it more useful and adapted to your pod configuration.</p>
<p>Among other things, the landing page will now include:</p>
<ul>
<li>your pod name and an excerpt from your pod's description</li>
<li>your pod banner image, if any</li>
<li>your contact email, if any</li>
<li>the login form</li>
<li>the signup form (if registrations are open on your pod)</li>
<li>some basic statistics about your pod</li>
</ul>
<p>The landing page will still include some information about Funkwhale, but in a less intrusive and prominent way than before.</p>
<p>Additionally, the about page now includes:</p>
<ul>
<li>your pod name, description, rules and terms</li>
<li>your pod banner image, if any</li>
<li>your contact email, if any</li>
<li>comprehensive statistics about your pod</li>
<li>some info about your pod configuration, such as registration and federation status or the default upload quota for new users</li>
</ul>
<h3 id="new-reporting-feature-to-let-people-contact-moderators"><a class="toclink" href="#new-reporting-feature-to-let-people-contact-moderators">New reporting feature to let people contact moderators</a></h3>
<p>It is now possible to report content, such as artists, tracks or libraries, as well as user accounts. These reports are forwarded to the pod moderators, who can review it and delete reported content, block accounts or take any other action they deem necessary.</p>
<h3 id="support-links"><a class="toclink" href="#support-links">Support links</a></h3>
<p>Users will now be reminded on a regular basis that they can help Funkwhale by donating or contributing. This notification can be turned off in the pod settings menu.</p>
<p>If specified by the pod admin, a separate and custom message will also be displayed in a similar way to provide instructions and links to support the pod.</p>
<h3 id="dark-theme"><a class="toclink" href="#dark-theme">Dark theme</a></h3>
<p>Funkwhale now has a built-in dark theme that you can enable in the application footer.</p>
<h3 id="account-deletion"><a class="toclink" href="#account-deletion">Account deletion</a></h3>
<p>Users can now delete their account themselves, without involving an administrator.</p>
<h3 id="allow-listing-to-restrict-federation-to-trusted-nodes"><a class="toclink" href="#allow-listing-to-restrict-federation-to-trusted-nodes">Allow-listing to restrict federation to trusted nodes</a></h3>
<p>The Allow-Listing feature grants pod moderators and administrators greater control over federation by allowing you to create a pod-wide allow-list.</p>
<p>When allow-listing is enabled, your pod's users will only be able to interact with pods included in the allow-list.</p>
<h3 id="custom-css"><a class="toclink" href="#custom-css">Custom CSS</a></h3>
<p>Admins can now specify custom CSS code to customize the look and feel of their pod, directly from their pod settings.</p>
<h3 id="catalan-and-czech-translations"><a class="toclink" href="#catalan-and-czech-translations">Catalan and Czech translations</a></h3>
<p>These two new languages were included in the release, thanks to our translators <3</p>
<p>This brings the number of supported languages to 20. 6 languages are fully translated, and of the remaining 14, 3 are translated at 80% or more, and 7 at 50% or more.</p>
<p>If you want to help with translations, <a href="https://contribute.funkwhale.audio/guides/translate/">you can, and it's rather easy if you follow our instructions</a>!</p>
<h3 id="easier-install-and-upgrade"><a class="toclink" href="#easier-install-and-upgrade">Easier install and upgrade</a></h3>
<p>We've worked on <a href="https://docs.funkwhale.audio/installation/index.html#quick-install">a dedicated install script</a> to reduce the friction while setting up a new Funkwhale pod.</p>
<p>If you've hesitated to set up a pod in the past, you may want to give it a try: it will give you a fully functional pod in minutes. Upgrades to future releases are also fully supported.</p>
<h3 id="new-documentation-theme"><a class="toclink" href="#new-documentation-theme">New documentation theme</a></h3>
<p>We gave some special care to our documentation by switching to a new, more readable and modern theme.</p>
<p>It will also be easier for people to correct typos and suggest changes, as we now provide a direct link to the documentation source on GitLab!</p>
<h2 id="finalizing-our-roadmap-for-funkwhale-021"><a class="toclink" href="#finalizing-our-roadmap-for-funkwhale-021">Finalizing our roadmap for Funkwhale 0.21</a></h2>
<p>Now that we're done with Funkwhale 0.20, we'll soon be starting to work on the 0.21 release, scheduled for early 2020.</p>
<p>We've started <a href="https://governance.funkwhale.audio/d/0RJWr5Ts/a-roadmap-for-funkwhale-0-21">a discussion with the community</a> to agree on a roadmap for this next release, and we're finalizing the discussion with a vote.</p>
<p>The current proposal is to focus the 0.21 release on audio publication, by bringing support for podcasts and channels in Funkwhale. The 0.22 release would be focused on stabilization, enhancements, bugfixes, and could possibly be labeled Funkwhale 1.0 ;)</p>
<p>The vote is still open for a couple of days, if you want to join!</p>Blog post week 2019-38: release incoming!2019-09-21T14:15:00+02:002019-09-21T14:15:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-09-21:/blog-post-week-2019-38-release-incoming.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-36-new-schedule-monthly-interview-and-first-budget.html">last time</a>?</p>
<h2 id="020-release-incoming"><a class="toclink" href="#020-release-incoming">0.20 release incoming</a></h2>
<p>After more than 4 months of development, the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/-/milestones/18">0.20 release is almost ready</a>. Over the past few weeks, the latest big features were implemented:</p>
<ul>
<li>Reports</li>
<li>Landing and about page redesign (<a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/899">review is still open for this one</a>, and we could use your feedback)</li>
<li>User account deletion</li>
<li>Donation reminders (<a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/900">review is still open for this one</a>, and we could use your feedback)</li>
</ul>
<p>Given the remaining work and unless some critical and hard to fix bugs are found during testing, we can assume the 0.20 release will be out early October.</p>
<h2 id="a-roadmap-for-the-021-release"><a class="toclink" href="#a-roadmap-for-the-021-release">A roadmap for the 0.21 release</a></h2>
<p>As a result, we need to discuss about the next release and agree on the features we want to implement.</p>
<p><a href="https://governance.funkwhale.audio/d/0RJWr5Ts/a-roadmap-for-funkwhale-0-21">The corresponding forum thread</a> was opened earlier today. Come and help us decide what we're going to do!</p>Blog post week 2019-36 - new schedule, monthly interview and first budget2019-09-06T14:25:00+02:002019-09-06T14:25:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-09-06:/blog-post-week-2019-36-new-schedule-monthly-interview-and-first-budget.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-33-new-donation-and-membership-platform.html">last time</a>?</p>
<h2 id="bi-monthly-blog-posts"><a class="toclink" href="#bi-monthly-blog-posts">Bi-monthly blog posts</a></h2>
<p>You may have noticed that the weekly schedule for these blog entries hasn't really been honored lately.</p>
<p>Given our resources, we've decided to write bi-monthly blog posts instead. This should make it easier for us, and lead to richer entries!</p>
<h2 id="our-monthly-interview-is-out"><a class="toclink" href="#our-monthly-interview-is-out">Our monthly interview is out</a></h2>
<p>In August, Ginny started a cycle of monthly interviews with members of the community to shed some light on the people involved in the project.</p>
<p><a href="https://blog.funkwhale.audio/funkwhale-community-spotlight-ana.html">This month's interview features Ana</a>, who also happens to work on <a href="https://joinplu.me/">Plume, a federated blog engine</a> . You should definitely have a look!</p>
<h2 id="our-first-budget"><a class="toclink" href="#our-first-budget">Our first budget</a></h2>
<p>One of the reasons we set up our collective was to take over Funkwhale-related expenses and seek funding.</p>
<p>To ensure all of this happens in the most transparent manner, the Board and the Direction Commitee agreed on our very first budget, for the September to December period.</p>
<p><a href="https://funkwhale.audio/support-us/#budget">This budget is live on our website</a> if you want to have a look :)</p>
<h2 id="donations-and-memberships"><a class="toclink" href="#donations-and-memberships">Donations and memberships</a></h2>
<p>In case you missed it during summer, we're now ready to receive donations and membership fees.</p>
<p>If you are considering becoming a member, we strongly suggest you register by the end of the month, as this will give you voting rights in our next general assembly (in Q3 2020).</p>
<p>Everything you need to know can be found <a href="https://funkwhale.audio/support-us/">on our website</a>. Thank you for your kind support!</p>Blog post week 2019-34 - new installation method, Android™ app in the pipes and identity guidelines2019-08-23T14:27:00+02:002019-08-23T14:27:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-08-23:/blog-post-week-2019-34-new-installation-method-android-app-in-the-pipes-and-identity-guidelines.html<p>Check out what's happened since our last post!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-33-new-donation-and-membership-platform.html">last time</a>?</p>
<h2 id="new-simpler-installation-method"><a class="toclink" href="#new-simpler-installation-method">New, simpler installation method</a></h2>
<p>In addition to our existing installation methods, we now provide <a href="https://docs.funkwhale.audio/installation/index.html#quick-install">a simpler, shorter installation method than only requires a single command</a>:</p>
<p><code>sudo sh -c "$(curl -sSL https://get.funkwhale.audio/)"</code></p>
<p>That's it ;)</p>
<p>We hope this will make deployment of Funkwhale pods easier for non-tech people. Since this is rather new, let us know how it works for you!</p>
<h2 id="third-party-androidtm-app"><a class="toclink" href="#third-party-androidtm-app">Third-party Android™ app</a></h2>
<p>@apognu recently started to work on <a href="https://governance.funkwhale.audio/d/X4OGJ9bK/native-android-player-in-development">a native (as in: not based on Subsonic) Android™ client for Funkwhale</a>.</p>
<p>While the project is still in early stages, we encourage you to join the discussion, give feedback and follow the development on our forums.</p>
<h2 id="logo-and-identity-guidelines"><a class="toclink" href="#logo-and-identity-guidelines">Logo and identity guidelines</a></h2>
<p>As Funkwhale matures, it's important to make it easier for third-party projects to integrate with us. To help with that, we've put up <a href="https://funkwhale.audio/logos">a page that includes the high-resolution versions of our logos, as well as some guidelines to reuse these properly</a>.</p>
<p>If you are working on a Funkwhale-related app or project, you probably want to have a look!</p>Blog post week 2019-33 - new donation and membership platform2019-08-16T08:58:00+02:002019-08-16T08:58:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-08-16:/blog-post-week-2019-33-new-donation-and-membership-platform.html<p>Part of the team was on vacation recently, which is why you haven't heard from us. But we come with big news!</p><p>What has happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-30.html">last time</a>?</p>
<p>Part of the team was on vacation recently, which is why you haven't heard from us. But we come with big news!</p>
<h2 id="our-new-donation-platform-is-live"><a class="toclink" href="#our-new-donation-platform-is-live">Our new <a href="https://funkwhale.audio/support-us">donation platform</a> is live!</a></h2>
<p><a href="https://blog.funkwhale.audio/help-funkwhale-grow-support-the-project-financially-on-open-collective.html">For almost a year now</a>, we've been asking for your financial support on <a href="https://opencollective.com/funkwhale">Open Collective</a>.</p>
<p>We chose this platform because it was easy to set up, supported recurring payments and, at the time, offered an option for anonymous payment (without an Open Collective account).</p>
<p>However, the ability to donate anonymously disappeared a few months later, and people started to ask for more diverse payment means, such as SEPA wiretransfers.</p>
<p>It quickly became evident that if we wanted to grow, we would need a bank account, which in turn implies the need for a legal structure to support the project.</p>
<p>It took us six months, but <a href="https://blog.funkwhale.audio/blog-post-week-2019-24.html">our collective was incorporated in June</a> and today, we're proud to announce that we're ready to receive your donations directly by credit cards and SEPA transfers!</p>
<p>Benefits of this new system include:</p>
<ul>
<li>no need to create an account to send your donation</li>
<li>lower transaction fees compared to Open Collective</li>
</ul>
<p>We don't support recurring donation by credit cards, but you can setup a recurring SEPA transfer. Our Open Collective page will remain open as we have no plans to shut it down.</p>
<p>If you want to help the project financially, you can visit <a href="https://funkwhale.audio/support-us#donate">https://funkwhale.audio/support-us#donate</a>.</p>
<p>Thank you for your support!</p>
<h2 id="you-can-now-become-a-member-of-the-funkwhale-collective"><a class="toclink" href="#you-can-now-become-a-member-of-the-funkwhale-collective">You can now become a member of The Funkwhale Collective</a></h2>
<p>In addition to the new donation platform, you can now <a href="https://funkwhale.audio/support-us#membership">register to become a member of our collective</a>.</p>
<p>We chose to let people decide the amount of the yearly fee, starting at €1, so you can join at the amount of money you can or want to give.</p>
<p>As a member of our association, you get to join our yearly General Assemblies, vote in the important decisions (assuming you are a member for more than at least a year), and contribute to the governance of the project.</p>
<p>Membership is also needed if you want to be elected to one the various decisions bodies.</p>
<p>Our next General Assembly will take place at the end of Q3 2020, so we recommend signing up as member now if you want to cast votes.</p>
<h2 id="redesign-of-the-sidebar-navigation"><a class="toclink" href="#redesign-of-the-sidebar-navigation">Redesign of the sidebar / navigation</a></h2>
<p>A proposal was made last week that could improve the user experience by redesigning the sidebar navigation, queue and player controls.</p>
<p>You can see screenshots submitted by @mjourdan <a href="https://governance.funkwhale.audio/d/m9LlGf4T/redesign-of-the-sidebar-navigation">here</a>. You’re welcome to join in and give us your feedback on this :)</p>
<h2 id="funkwhale-development-designing-artist-profiles"><a class="toclink" href="#funkwhale-development-designing-artist-profiles">Funkwhale Development : Designing Artist profiles</a></h2>
<p>There are some new developments on this feature, as someone is willing to contribute to the implementation.</p>
<p>We've launched <a href="https://governance.funkwhale.audio/p/tj9WIoCd/validate-what-metadata-artists-will-be-able-to-put-on-their-profiles">a poll to ensure we didn't forget anything critical</a>, and it's still open for a few days, so remember to cast your vote!</p>
<h2 id="moderation-and-reports"><a class="toclink" href="#moderation-and-reports">Moderation and reports</a></h2>
<p>Implementation of this feature started earlier this week. It is the last big feature scheduled for the 0.20 roadmap. If you're interested, you can follow the progress on this fediverse thread.</p>Blog post week 2019-302019-07-26T13:45:00+02:002019-07-26T13:45:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-07-26:/blog-post-week-2019-30.html<p>We couldn't publish last week's post, but we're going to make it up today ;)</p><p>What happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-28.html">last time</a>?</p>
<p>We couldn't publish last week's post, but we're going to make it up today ;)</p>
<h2 id="retribute"><a class="toclink" href="#retribute">Retribute</a></h2>
<p>Two weeks ago, we had our first brainstorming session to come up with a basic roadmap for Retribute. The full meeting notes are available <a href="https://governance.funkwhale.audio/d/keqv8xYV/brainstorming-session/10">on the forum</a>, but to sum it up, our initial goal is to set up a basic website to introduce the project by the end of September!</p>
<h2 id="funkwhale-feature-request-timer"><a class="toclink" href="#funkwhale-feature-request-timer">Funkwhale Feature Request: Timer</a></h2>
<p>Ginny opened <a href="https://governance.funkwhale.audio/d/VMWNTRgl/timer">a request for a timer feature</a> in the player, to automatically stop playback after a given time or number of tracks. Feel free to leave it a thumbs up or some comments regarding the design proposal.</p>
<h2 id="funkwhale-development-publicly-shareable-playlist"><a class="toclink" href="#funkwhale-development-publicly-shareable-playlist">Funkwhale Development: Publicly shareable playlist</a></h2>
<p>There has been <a href="https://governance.funkwhale.audio/d/v10ce3Pl/publicly-shareable-playlist-with-content-playable-and-all-">an ongoing forum discussion about sharable playlists</a>. We're still trying to figure out the potential implications, so don't hesitate to jump in to help us ;)</p>
<h2 id="tags-implementation-is-completed"><a class="toclink" href="#tags-implementation-is-completed">Tags implementation is completed</a></h2>
<p>After roughly a month of development (and many, many more of design and discussions), <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/432">the second big feature to land in Funkwhale 0.20 is complete</a>, or almost.</p>
<p>Funkwhale will now successfully extract genres from audio files, and expose it, in the form of hashtags. Those tags can be associated to artists, albums and individual tracks, are broadcasted over federation, and can be used for search, discovery and radios.</p>
<p>The feature has been deployed on open.audio, so if you want to <a href="https://open.audio/library/tags/Electronic">access hundreds of hours of #Electronic music</a>, you know where to go!</p>
<h2 id="single-command-install-script"><a class="toclink" href="#single-command-install-script">Single command install script</a></h2>
<p><a href="https://dev.funkwhale.audio/funkwhale/ansible/merge_requests/1">A new, simpler installation method for Funkwhale is in review stage</a>. It's a unique script that can be run on any Debian or Ubuntu server and that will give you a fully functioning Funkwhale instance.</p>
<p>Give it a try and tell us how it worked for you :)</p>Blog post, week 2019-282019-07-13T09:36:00+02:002019-07-13T09:36:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-07-13:/blog-post-week-2019-28.html<p>Check out what's happened since our last post!</p><p>What happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-27.html">last time ?</a></p>
<h2 id="report-option-on-everything"><a class="toclink" href="#report-option-on-everything">Report option on everything</a></h2>
<p>This is one of the big features on the <a href="https://governance.funkwhale.audio/d/tjlI6VZa/funkwhale-0-20-roadmap">0.20 roadmap</a>, and discussions about actual design started recently. You should definitely <a href="https://governance.funkwhale.audio/d/CIK2gzXG/report-option-on-everything">have a look and voice your ideas</a>!</p>
<h2 id="retribute"><a class="toclink" href="#retribute">Retribute</a></h2>
<h3 id="brainstorming"><a class="toclink" href="#brainstorming">Brainstorming</a></h3>
<p><a href="https://governance.funkwhale.audio/d/keqv8xYV/brainstorming-session">This afternoon, we're having a brainstorming session</a> about Retribute with people willing to help. Join us <a href="https://matrix.to/#/#retributeme:tchncs.de">on Matrix</a> if you wish. (This will be text only).</p>
<h3 id="language"><a class="toclink" href="#language">Language</a></h3>
<p>Alextee opened a discussion on the terms we use to qualify the different actors in Retribute and made a few suggestions to use less corporate vocabulary:</p>
<ul>
<li>"creators" → artists</li>
<li>"consuming" → appreciating</li>
<li>"content" → works</li>
<li>"compensation" → support</li>
</ul>
<p>You can join the discussion <a href="https://governance.funkwhale.audio/d/ZB3GstOI/retribute-me-website-creation">here</a>, give your opinion and make your own suggestions if you have any :)</p>
<h2 id="hardening-security-in-funkwhale"><a class="toclink" href="#hardening-security-in-funkwhale">Hardening security in Funkwhale</a></h2>
<p>This week, Agate submitted <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/826">a Merge Reques to increase the security of the web app and reduce the attack surface in case of a successful exploit</a>.</p>
<p>If you have some knowledge on the topic, we could use your review there ;)</p>
<h2 id="first-board-meeting"><a class="toclink" href="#first-board-meeting">First board meeting</a></h2>
<p>The Board, which involves Audrey, Linda and Gordon had a meeting this Monday.</p>
<p>Minutes of the meeting will be shared, but in the meantime, we can already tell you we're making progress on the administrative parts of the collective, and we'll soon have a bank account to receive donations and membership fees.</p>Blog post, week 2019-272019-07-08T08:00:00+02:002019-07-08T08:00:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-07-08:/blog-post-week-2019-27.html<p>Check out what's happened since our last post!</p><p>What happened since <a href="https://blog.funkwhale.audio/blog-post-week-26.html">last time</a>?</p>
<h2 id="retribute-website-creation"><a class="toclink" href="#retribute-website-creation">Retribute website creation</a></h2>
<p>3 main audiences were identified : creators, developers and contributors.</p>
<p>Ginny suggested to address them with a few sentences for each on the front page. She also suggested we could add some artwork. Robin said he would be happy to work on this.</p>
<h2 id="retribute-first-spec-draft"><a class="toclink" href="#retribute-first-spec-draft">Retribute first spec draft</a></h2>
<p><a href="https://dev.funkwhale.audio/retribute.me/spec/merge_requests/1/">The very first specification draft for Retribute is now public for review</a>, and we're looking for feedback about it.</p>
<p>It's nowhere near complete, but it's a first step to gather some feedback and building a solid, efficient and adequate specification!</p>
<h2 id="new-landing-page"><a class="toclink" href="#new-landing-page">New landing page</a></h2>
<p>The landing page (before log in) has been granted a redesign. There is already an initial wireframe to work from. There is still a lot of work to be done. You can join the effort <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/872">here</a></p>
<h2 id="custom-css"><a class="toclink" href="#custom-css">Custom CSS</a></h2>
<p>As part of the landing page redesign, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/879">we're now offering custom CSS, configurable directly from the pod settings</a>. This feature will land in Funkwhale 0.19.2.</p>
<h2 id="tagsgenre-implementation-started"><a class="toclink" href="#tagsgenre-implementation-started">Tags/genre implementation started</a></h2>
<p>It's the second big feature in the 0.20 release, and <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/814">implementation work started this week</a>. Nothing to show yet, because the work happens at a low-level, but we'll keep you updated ;)</p>
<h2 id="scrobbling"><a class="toclink" href="#scrobbling">Scrobbling</a></h2>
<p><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/497">One of the most popular</a> feature requests is related to audio scrobbling.</p>
<p>However given the variety of scrobbling services, maintaining a connector for each of them in Funkwhale doesn't seem like a good idea on the long term. That's why we started to discuss the possible implementation of a plugin system for this kind of use cases.</p>
<p>If you have some experience as a plugin author and want to contribute to the design of this plugin system, let us know!</p>
<h2 id="the-collective-is-up"><a class="toclink" href="#the-collective-is-up">The collective is up!</a></h2>
<p>We got the confirmation from the french authorities and The Funkwhale Collective is now legally a thing!</p>
<p>Next steps are: opening a bank account then communicate with our community so interested individuals can become members of the collective.</p>Blog post, week 262019-06-28T11:11:00+02:002019-06-28T11:11:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-06-28:/blog-post-week-26.html<p>Check out what's happened since our last post!</p><p>What happened since <a href="https://blog.funkwhale.audio/blog-post-week-25.html">last time</a>?</p>
<h2 id="allow-listing-is-now-implemented"><a class="toclink" href="#allow-listing-is-now-implemented">Allow-listing is now implemented!</a></h2>
<p>Allow-listing is the first of the big features planned for the 0.20 release. <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/853">The implementation was completed last week</a> and went ok!</p>
<p>You'll have to wait for the release to try it, unless you're running your pod on the <code>develop</code> branch ;)</p>
<p>We're convinced this feature will increase the safety of our community and users.</p>
<h2 id="customizable-landing-page-for-instances"><a class="toclink" href="#customizable-landing-page-for-instances">Customizable Landing Page For Instances</a></h2>
<p>A poll was open to decide whether we were ready to move on to the next step (ie: start the implementation) or we missed something.</p>
<p>@hellekin suggested there should be a music player on the landing page, since Funkwhale is audio oriented and users might expect that. We're still not 100% ready, but, we're likely to move on to implementation soon!</p>
<h2 id="keyboard-shortcuts-in-web-app"><a class="toclink" href="#keyboard-shortcuts-in-web-app">Keyboard shortcuts in web app</a></h2>
<p>Offering a wide range of keyboard shortcuts in a webapp like Funkwhale can improve the accessibility and experience for everyone.</p>
<p>@Sporiff <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/801">took some time to clean up existing shortcuts and implement new ones</a>. Keyboard shortcuts now cover all core actions such as:</p>
<ul>
<li>Volume control</li>
<li>Search</li>
<li>Playback control (pause, play, seeking)</li>
<li>Queue control (Next, previous, clear, looping)</li>
<li>Add current track to favorites</li>
</ul>
<h2 id="retribute"><a class="toclink" href="#retribute">Retribute</a></h2>
<p>A dedicated forum on Loomio was launched. You can <a href="https://governance.funkwhale.audio/g/L4AfDozC/funkwhale-retribute">join us and follow the discussions about Retribute there</a></p>
<p>We started to talk about the creation of a website for the base domain retribute.me and what we should find in it.</p>
<h2 id="0191-release"><a class="toclink" href="#0191-release">0.19.1 release</a></h2>
<p><a href="https://docs.funkwhale.audio/changelog.html#id1">Funkwhale 0.19.1 was released this morning with a lot of bugfixes and improvements</a>. Upgrade is of course recommended ;)</p>
<p>Many thanks to the all amazing contributors who reported, tested, fixed, reviewed and documented everything ❤️</p>Blog post, week 252019-06-21T13:03:00+02:002019-06-21T13:03:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-06-21:/blog-post-week-25.html<p>Check out what's happened since our last post!</p><p>What happened since <a href="https://blog.funkwhale.audio/blog-post-week-2019-24.html">last time</a>?</p>
<h2 id="statutes"><a class="toclink" href="#statutes">Statutes</a></h2>
<p>The Association statutes were submitted to the french .gov website earlier this week. It shouldn’t be long before The Funkwhale Collective is officially created and ready to welcome new members!</p>
<h2 id="retribute"><a class="toclink" href="#retribute">Retribute</a></h2>
<p>Retribute is another project of @Agate to help you support your favorite artists. Until the official website is up, you can read more about it <a href="https://agate.blue/2019/06/09/introducing-retribute-a-decentralized-open-effort-to-support-creators.html">on Agate's blog</a></p>
<p>After <a href="https://governance.funkwhale.audio/d/enSAkJho/a-discussion-about-the-relationship-between-funkwhale-and-retribute">a discussion on Loomio</a>, a poll was launched on the Fediverse to ask if Retribute should be developed under the Funkwhale umbrella .</p>
<p>The result is quite unanimous and we are very happy to welcome Retribute in the Funkwhale family :)</p>
<h2 id="customizable-landing-page-for-pods"><a class="toclink" href="#customizable-landing-page-for-pods">Customizable Landing Page For Pods</a></h2>
<p>@ginny <a href="https://governance.funkwhale.audio/d/aDqFmMuT/customizable-landing-page-for-instances">started a discussion regarding pod's landing page</a>. The idea is to make this page more useful for everyone, by including customizable content provided by pod admins.</p>
<p>Join the discussion to help us designing this!</p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Funkwhale 0.19.1 is coming soon <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/milestones/19">with several bugfixes and enhancements</a>.</p>
<p>In parallel, we've seen some interesting progress on the 0.20 release. The backend part for <a href="https://governance.funkwhale.audio/d/l3i2yOQ0/allow-listing">allow-listing</a> is now implemented, meaning only the UI remains.</p>
<p><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/789">We also took the occasion to make the moderation logic pluggable, using a system similar to Pleroma's MRF</a>. This means that, as a pod owner, you'll be able to design more complex and automated moderation tools if the ones we provide are not enough!</p>
<h2 id="happy-birthday-funkwhale"><a class="toclink" href="#happy-birthday-funkwhale">Happy birthday Funkwhale</a></h2>
<p>It's not actually Funkwhale's birthday, but it's been exactly two years since the reboot of the project was officially announced, on Music Day 2017.</p>
<p>Let's take a moment to celebrate what we've accomplished, and see you next week!</p>Blog post, week 2019-242019-06-14T14:01:00+02:002019-06-14T14:01:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-06-14:/blog-post-week-2019-24.html<p>Check out what's happened since our last post!</p><p>What happened since <a href="https://blog.funkwhale.audio/logbook-week-22-2019-20.html">last time</a>?</p>
<h2 id="finalized-roadmap-for-funkwhale-020"><a class="toclink" href="#finalized-roadmap-for-funkwhale-020">Finalized roadmap for Funkwhale 0.20</a></h2>
<p>We now have a <a href="https://governance.funkwhale.audio/d/tjlI6VZa/funkwhale-0-20-roadmap">final roadmap for the 0.20 release</a>, meaning we can start development. This is the list of new features that will be implemented:</p>
<ul>
<li>Easier Discovery of music via genres/tags</li>
<li>Admin ability to delete users/content (content is already implemented)</li>
<li>Allow-listing</li>
<li>Report option on everything</li>
</ul>
<h2 id="software-development-activity"><a class="toclink" href="#software-development-activity">Software development activity</a></h2>
<p>Since last time, we've seen a lot of small bugfixes that will likely be included in the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/milestones/19#tab-merge-requests">0.19.1 release</a>. In particular, some documentation, translations, and front-end-related contributions.</p>
<p>With the 0.20 roadmap now being officially ready, you can expect more activity to happen within the repository.</p>
<h2 id="general-assembly"><a class="toclink" href="#general-assembly">General Assembly</a></h2>
<p>Our first General Assembly took place on May 19th and went very well :)</p>
<p>We voted on many subjects:</p>
<ul>
<li>We are now officially named: The Funkwhale Collective</li>
<li>We approved our drafted statutes</li>
<li>We decided of the membership fees: the chosen membership fee is free, starting with 1€ per year.</li>
<li>We elected the candidates for the various decision bodies:</li>
</ul>
<p><strong>Board</strong></p>
<p>@auzzy: president</p>
<p>@lindan: treasurer</p>
<p>@gordon: secretary</p>
<p><strong>Steering Commitee</strong></p>
<p>@sporiff</p>
<p>@robin</p>
<p>@agate</p>
<p><strong>Moderation Commitee</strong></p>
<p>@ginnymcqueen</p>
<p>@ren</p>
<h2 id="building-a-group-of-code-reviewers"><a class="toclink" href="#building-a-group-of-code-reviewers">Building a group of Code Reviewers</a></h2>
<p>As part of our ongoing effort to transition to a "Benevolent Dictator" to a community-driven governance, we're in the process of building a group of reviewers that are willing to review contributions made to Funkwhale.</p>
<p>Because lots of those contributions are done by @agate, having systematic reviews will reduce the bus factor and ensure the contributions are understood and approved by other community members.</p>
<p>We're maintaining an <a href="https://pad.funkwhale.audio/code-reviewers">open pad</a> with reviewers name and area of interests, so feel free to add your name to this list :)</p>
<h2 id="naming-bettys-friends"><a class="toclink" href="#naming-bettys-friends">Naming Betty’s friends</a></h2>
<p>Ginny started a thread <a href="https://governance.funkwhale.audio/d/dRgIuPFj/betty-s-thread">Naming Betty’s friends</a> where everyone was invited to suggest names for the animals created by Robin and visible on <a href="https://funkwhale.audio">https://funkwhale.audio</a></p>
<p>So you already know Betty the blue whale and our mascot,</p>
<p>The green whale is Harriet,</p>
<p>The pink whale is Wanda,</p>
<p>The octopus is Otto,</p>
<p>The stingray is Serenity.</p>
<h2 id="coordinate-translations"><a class="toclink" href="#coordinate-translations">Coordinate translations</a></h2>
<p>Agate started a thread <a href="https://governance.funkwhale.audio/d/X2z5kEFt/coordinate-translations">Coordinate translations</a> to keep track of contributors and reviewers for each language in which https://translate.funkwhale.audio is translated.</p>
<h2 id="discussions-on-a-future-desktop-client"><a class="toclink" href="#discussions-on-a-future-desktop-client">Discussions on a future desktop client</a></h2>
<p>Discussions and debates are continuing <a href="https://governance.funkwhale.audio/d/Ne1wR2jt/a-desktop-client-for-funkwhale">in the thread started by</a> @Kaze to launch the development of a dedicated, multiplatform desktop client for Funkwhale.</p>
<p>A poll was opened this week to identify core priorities and features, and will remain opened for a few weeks. If you want to see this happen, remember to cast your vote!</p>
<p>We would like to thank all the Funkwhale community, so many wonderful folks involved in this great adventure !</p>
<p>This article was written by Agate and Robin.</p>Logbook, week 22 (2019-20)2019-05-17T14:22:00+02:002019-05-17T14:22:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-05-17:/logbook-week-22-2019-20.html<p>After nearly three months of development and weeks of testing, Funkwhale 0.19 was released yesterday, with a tons of new features and improvement.</p><p><a href="https://blog.funkwhale.audio/logbook-week-21-2019-20.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>After nearly three months of development and weeks of testing, Funkwhale 0.19 was released yesterday, with a tons of new features and improvement.</p>
<p>I already wrote <a href="https://blog.funkwhale.audio/funkwhale-019-is-out.html">a dedicated blogpost yesterday</a> about this milestone, and what will come next for the project in terms of perspective and challenges.</p>
<p>It's completely non-technical, and I tried to explain how our work on project management and association for Funkwhale actually impact the development.</p>
<p>Apart from the release, the week was really quiet in terms of development. Most of my time was spent doing sysadmin work:</p>
<ul>
<li>installing and configuring tools for the association</li>
<li>writing <a href="https://dev.funkwhale.audio/funkwhale/ansible/">an Ansible role to deploy/upgrade Funkwhale instances</a></li>
</ul>
<p>Our <a href="https://network.funkwhale.audio/dashboards/">dashboards</a> received some attention too: incorrect numbers and buggy graphs were fixed, and new ones added. Hopefully, it should now give a better overview of the current state and evolution of the network!</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p><a href="https://governance.funkwhale.audio/d/WREZ1Ms9/you-are-invited-to-our-first-general-assembly-on-may-19th-6pm-utc-2-">Our first general assembly takes place this Sunday</a> and, as you would expect, it requires careful preparation and communication.</p>
<p>In parallel, we're continuing the work on the roadmap with Ginny. Our goal is to have a structured roadmap for the 0.20 release next week, before we start the development.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I had two critical milestones this week:</p>
<ol>
<li>The 0.19 release, which went quite good!</li>
<li>The General Assembly, which is coming fast. I'm still under a lot of stress about it, as it comes after months of hard work from lot of people, and will have a huge impact on the future of the project</li>
</ol>
<p>I'm leaving next Friday for 10 days of (really needed) vacation. I'll try to publish a blog post, but if it's not possible, I'll be back the first week of June.</p>
<p>See you soon!</p>Logbook, week 21 (2019-20)2019-05-10T12:07:00+02:002019-05-10T12:07:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-05-10:/logbook-week-21-2019-20.html<p>I'm incredibly happy and excited to announce you that our first General Assembly will take place next week on Sunday 19th, at 6PM (UTC+2).</p><p><a href="https://blog.funkwhale.audio/logbook-week-20-2019-17.html">Previous entry</a></p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Yes, today, this section comes first! I'm incredibly happy and excited to announce you that our first General Assembly will take place next week on Sunday 19th, at 6PM (UTC+2).</p>
<p>The assembly is open for anyone to join. We will vote on critical decisions for the future of the project and the collective, so if you're interested in Funkwhale, you probably want to attend :D</p>
<p><a href="https://governance.funkwhale.audio/d/WREZ1Ms9/you-are-invited-to-our-first-general-assembly-on-may-19th-6pm-utc-2-">For more details about the organization/logisticts/agenda, please have a look at our forum</a>.</p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>The testing phase of the 0.19 is going smoothly. <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/tags/0.19.0-rc2">I've released a second candidate</a> this morning, that contains some bugfixes and enhancements:</p>
<ul>
<li>Lots of issues with the player that were introduced with the first RC should be solved</li>
<li>It's now possible to serve audio content directly from a S3 bucket</li>
<li>It includes latest translations for various languages</li>
<li>It contains some documentation enhancements submitted by @sporiff and @renon</li>
</ul>
<p>I think we'll have the final 0.19 release next week.</p>
<p>@Kaze, one of our community member is also looking for feedback and help before starting to work on a dedicated, native Desktop client for Funkwhale. If you're a user, designer or developer and have some interest in such a project, <a href="https://governance.funkwhale.audio/d/Ne1wR2jt/a-desktop-client-for-funkwhale">get in touch on the dedicated forum topic</a> ;)</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I feel a lot of excitation, relief (and some stress too, let's face it :D) with the upcoming General Assembly. Overall, I think we are well-prepared for the event, and knowing our months of discussions and writing are finally paying of makes the event really big for me.</p>
<p>See you next week!</p>Logbook, week 20 (2019-17)2019-05-03T13:10:00+02:002019-05-03T13:10:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-05-03:/logbook-week-20-2019-17.html<p>For personal reasons, I had to take a few days off last week, meaning no weekly logbook was published on April 26 :)</p><p><a href="https://blog.funkwhale.audio/logbook-week-18-2019-15.html">Previous entry</a></p>
<p>For personal reasons, I had to take a few days off last week, meaning no weekly logbook was published on April 26 :)</p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>The main event of last week was the release of our new website! @Robin finished to work on the illustrations, and I took some time to integrate <a href="https://governance.funkwhale.audio/d/zVW3YaeF/funkwhale-audio-redesign">the feedback that was shared during the beta phase</a> (especially <a href="https://funkwhale.audio/apps/">an "Apps" page that wasn't planned in the initial design</a>).</p>
<p>Many, many, many thanks to Robin, our translators and all the people who took some time to report issues and suggest improvements! You can visit the website itself at <a href="https://funkwhale.audio">https://funkwhale.audio</a>.</p>
<p>As for Funkwhale itself, we've seen few contributions to the project recently:</p>
<ul>
<li>@Qasim.Ali recently contributed an interesting update to playlists: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/729">Funkwhale will now warn you when you're adding a duplicate track in a playlist</a>.</li>
<li>@Sporiff <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/742">fixed a few issues in our documentation</a> / <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/753">deployment files</a></li>
</ul>
<p>In parallel, the work for the 0.19 release continued. ~20 tickets were fixed over the past two weeks, including:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/735">Support for external S3 storage</a></li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/739">Prefetching of the next track in queue during playback</a></li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/734">Better handling of artists with lots of albums and tracks in the UI</a></li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/741">Better UX during file upload</a></li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/728">Improved performance when loading the UI</a></li>
</ul>
<p>Since all the tickets for the 0.19 release were solved, <a href="https://governance.funkwhale.audio/d/NyI4G1UK/release-incoming-for-funkwhale-0-19">I published a release candidate yesterday</a>. You can expect the final release to be published around May 16, to leave time for testers to report bugs, and for translators to complete translations for new strings.</p>
<p>To test our brand new OAuth2 support with a real life scenario, <a href="https://dev.funkwhale.audio/funkwhale/mopidy">I've also updated our Mopidy plugin</a></p>
<p>to leverage this new authentication and authorization workflow I had to fix a few small things but it works great so far!</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Guess what? <a href="https://governance.funkwhale.audio/d/gTxRJAzL/call-for-candidates-for-the-board-steering-and-moderation-commitee-of-the-funkwhale-collective/12">We have candidates for all our collective seats</a>:</p>
<p><strong>Board:</strong></p>
<ul>
<li>@auzzy - president</li>
<li>@lindan - treasurer</li>
<li>@gordon - secretary</li>
</ul>
<p><strong>Steering Commitee:</strong></p>
<ul>
<li>@sporiff</li>
<li>@robin</li>
<li>@agate</li>
</ul>
<p><strong>Moderation Commitee:</strong></p>
<ul>
<li>@ginnymcqueen</li>
<li>@ren</li>
</ul>
<p><a href="https://governance.funkwhale.audio/d/FDxMv0sE/organizing-our-first-general-assembly">We've started to discuss the organization of the General Assembly</a>, and it's possible we launch the collective this month. The assembly itself will be open to anyone, and we'll let you know when we have the date ;)</p>
<p><a href="https://governance.funkwhale.audio/d/pQS1Uznd/abuse-audit">The abuse audit started by</a> @Ginny a few weeks ago was completed last week, with <a href="https://governance.funkwhale.audio/p/XIST6hLp/what-are-the-priorities-in-terms-of-anti-abuse-development-">an open poll to decide of the priorities</a>. Especially, allow-listing, content deletion and report option were identified as the most urgent items to implement.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>Even though I've been more tired lately, lots of long-running projects and tasks were either completed or reached the next step over the past two weeks:</p>
<ul>
<li>the new website was deployed</li>
<li>the 0.19 release is almost there</li>
<li>it's a matter of weeks (maybe days) before we have an official collective</li>
<li>the medium/long-term roadmap is shaping</li>
</ul>
<p>This gives me a lot of energy and optimism for the future of the project and the community!</p>
<p>See you next week!</p>Logbook, week 19 (2019-16)2019-04-19T13:59:00+02:002019-04-19T13:59:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-04-19:/logbook-week-19-2019-16.html<p>Most of the development effort made by external contributors this week was focused on feature requests/design/specifications.</p><p><a href="https://blog.funkwhale.audio/logbook-week-18-2019-15.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Most of the development effort made by external contributors this week was focused on feature requests/design/specifications:</p>
<ul>
<li><a href="https://governance.funkwhale.audio/d/npXlaBWx/collaborative-playlists">Collaborative playlists</a>, started by @Nouts</li>
<li><a href="https://governance.funkwhale.audio/d/pQS1Uznd/abuse-audit">Abuse audit</a>, started and followed by @Ginny</li>
</ul>
<p>As for the anti-abuse thread, we're now going to the next step and <a href="https://governance.funkwhale.audio/p/XIST6hLp/what-are-the-priorities-in-terms-of-anti-abuse-development-">started an open poll</a> to evaluate the priority of each item. Join the group and cast your vote!</p>
<p>@Robin has been working on extra cute illustrations for Funkwhale and we'll be able to share them really soon (probably next week)!</p>
<p>Finally, I'm incredibly happy to say <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/689">that the metadata feature/admin UI feature is merged and complete</a>. I'm merged the last bit of interface this morning, and even though I expect some tweaks, improvements and fixes in the future, the whole thing is usable and stable enough!</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Things were a bit slower on the project management side this week, but we do have <a href="https://governance.funkwhale.audio/d/gTxRJAzL/call-for-candidates-for-the-board-steering-and-moderation-commitee-of-the-funkwhale-collective">two new candidates for the collective</a>, @Auzzy and @Robin.</p>
<p>I'm going to push the collective creation forward starting from next week.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I feel quite relieved that my work on the metadata updates / admin UI, started 3 months ago, has come to an end today. I will be focusing on something else, and my brain needs this!</p>
<p>I've also got back all my energy and productivity this week :)</p>
<p>See you next week!</p>Logbook, week 18 (2019-15)2019-04-12T13:56:00+02:002019-04-12T13:56:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-04-12:/logbook-week-18-2019-15.html<p>Check out what's happened since our last post!</p><p><a href="https://blog.funkwhale.audio/logbook-week-17-2019-14.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week @Jee <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/716">contributed an improvement to our Docker-Compose file</a>, and several contributors from my workshop during the JDLL contributed to Funkwhale too:</p>
<ul>
<li>Translations</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/709">Documentation fixes</a></li>
<li><a href="https://dev.funkwhale.audio/jdll2019">Bug reports</a></li>
<li>Updates to our Wikipedia and AlternativeTo page</li>
</ul>
<p>Thank you for your help!</p>
<p>@Bignose also contributed a nice quality of life improvement: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/702">the browser tab will now display the title and artist name of the currently playing track!</a></p>
<p>I've continued to work on the metadata update feature. It literally started months ago, and progress is slow, but steady. This week, I've commited <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/713">the first <em>working</em> version of a federated metadata update</a>, and started to work on a dedicated admin UI to manage artists, albums, tracks, libraries and uploads.</p>
<p>This is part of our ongoing effort to give more control and power to server admins and moderators toward the content they are hosting.</p>
<p>@Ginny <a href="https://governance.funkwhale.audio/d/pQS1Uznd/abuse-audit">continued working on a general ongoing abuse audit</a> of the Funkwhale software. Based on the findings, we'll be able to prioritize design, development and bugfixing for the most critical issues, and integrate the rest in our future developments.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>On the collective side, things are starting to look good, since <a href="https://governance.funkwhale.audio/d/gTxRJAzL/call-for-candidates-for-the-board-steering-and-moderation-commitee-of-the-funkwhale-collective">we now have candidates for almost every seat</a>.</p>
<p><a href="https://governance.funkwhale.audio/d/u5MbJalK/how-to-discuss-features-">Thanks to community feedback</a>, I've spent some time today to tidy up a bit our forum and create two dedicated subgroups:</p>
<ul>
<li>A <a href="https://governance.funkwhale.audio/g/SdKlQIvD/funkwhale-development">"Development"</a> subgroup, for topics related to the development of Funkwhale (the software): ideas, feature requests, roadmap, translation coordination…</li>
<li>A <a href="https://governance.funkwhale.audio/g/5GzfpnA6/funkwhale-project-management">"Project management"</a> subgroup, for topics related to the organization of the community and contributions: meetings, discussions about the collective, the roadmap, our decision process…</li>
</ul>
<p>Existing discussions were moved to those new categories. It should reduce the noise, an help community members to find relevant topics :)</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>After the JDLL week-end, that was very intense, I'm both excited and tired. That's why this week was slower for me than usual, even though I'm really happy with the big progress on the metadata update.</p>
<p>I expect the dust to settle soon and to have more energy in the upcoming days.</p>
<p>See you next week!</p>Logbook, week 17 (2019-14)2019-04-05T12:15:00+02:002019-04-05T12:15:00+02:00Funkwhaletag:blog.funkwhale.audio,2019-04-05:/logbook-week-17-2019-14.html<p>This week, we started a redesign of our official website.</p><p><a href="https://blog.funkwhale.audio/logbook-week-16-2019-13.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week, we started a redesign of our official website, <a href="https://funkwhale.audio">https://funkwhale.audio</a>. After <a href="https://governance.funkwhale.audio/d/zVW3YaeF/funkwhale-audio-redesign">weeks of discussions and brainstorming</a>.</p>
<p>Once complete, this new version will feature:</p>
<ul>
<li>Multilingual content</li>
<li>A better, non-technical explanation of how Funkwhale work how it is similar and different from known services and projects</li>
<li>A list of public instances to help visitors find a place to join</li>
<li>a page dedicated to our community, explaining how to join our community spaces</li>
<li>A cleaner, mobile-first design</li>
<li><a href="https://governance.funkwhale.audio/d/dRgIuPFj/betty-s-thread">Hand-crafted illustrations of Betty</a>, made by @Robin</li>
</ul>
<p>Lots of feedback regarding this new version was submitted, and <a href="https://governance.funkwhale.audio/d/zVW3YaeF/funkwhale-audio-redesign">you can share yours too</a>.</p>
<p>Additionally, @Bignose submit an interesting MR this week, to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/702">include the title and artist name of the currently playing song in the browser tab title</a>. It will be included in the next release.</p>
<p>I've also spent two days redesigning the way Funkwhale retrieve audio metadata from audio files, to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/703">support a better error handling and display meaningful errors to the end users when anything goes wrong</a>. Here again, it will land in the next release.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>After our Loomio migration from next week, we're slowly taking our marks on this new tool.</p>
<p>We've seen a lot of interesting discussions already:</p>
<ul>
<li><a href="https://governance.funkwhale.audio/d/s7GTeHwU/podcast-support">Discussion and design the Podcast feature</a></li>
<li><a href="https://governance.funkwhale.audio/d/DALCEWtq/an-initial-roadmap-for-funkwhale">Building a roadmap together for the upcoming months</a></li>
<li><a href="https://governance.funkwhale.audio/d/pQS1Uznd/abuse-audit">Abuse audit to identify the weak points in the sotfware</a></li>
</ul>
<p><a href="https://governance.funkwhale.audio/polls">The decisions feature of Loomio</a> proved itself to be especially helpful during the roadmap discussions. It allowed us to quickly get a grasp of what were the priorities for the community, as shown below:</p>
<p>The vote is closing in a few days, and you can create a Loomio account to participate!</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'm starting to see the end of the 0.19 release with the work done recently on OAuth and error handling. There is still the metadata update feature to complete, and some bugs to fix, obviously, but I'd say the hardest part is behind us.</p>
<p>I'm also quite happy new candidates have expressed their will to get involved in our collective. I can't wait to launch the association!</p>
<p>I'm leaving in a few hours for Lyon, and I'll be back on Sunday. See you this week-end if you are attending the JDLL, or next week otherwise!</p>Logbook, week 16 (2019-13)2019-03-29T14:55:00+01:002019-03-29T14:55:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-03-29:/logbook-week-16-2019-13.html<p>It's real, OAuth2 support in Funkwhale was merged earlier this week!</p><p><a href="https://blog.funkwhale.audio/logbook-week-14-2019-11.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>It's real, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/672">OAuth2 support in Funkwhale was merged earlier this week</a>, as well as an improved API documentation!</p>
<p>As a result, the next release (0.19) will make it considerably easier for third-party projects and applications to integrate with Funkwhale and build new and interesting features and interfaces!</p>
<p>After almost a month working on this, I have to say I feel relieved ;)</p>
<p>I also continued to work on Funkwhale.audio redesign and made a lot of progress. I expect to have more to share next week.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Project management was buzzing though! We migrated our community forum to <a href="https://governance.funkwhale.audio">Loomio</a>, for reasons outlined on our old forum.</p>
<p>It was a time-consuming task but also needed to guarantee our independence and improve our decision making processes.</p>
<p>We'll be progressively migrating existing discussions opened on Socialhub.network to our Loomio instance, but you can already open new topics there and participate in ongoing discussions and debates!</p>
<p>Especially, @Ginny relaunched <a href="https://governance.funkwhale.audio/d/s7GTeHwU/podcast-support">the discussion that was opened months ago to bring Podcast support into Funkwhale</a>, and you may want to give your feedback.</p>
<p><a href="https://governance.funkwhale.audio/d/gTxRJAzL/call-for-candidates-for-the-board-steering-and-moderation-commitee-of-the-funkwhale-collective">We're still looking for candidates for management positions in the new collective</a>. Right now, we roughly have half the candidates we need. If you're even remotely interested curious, come ask your questions and introduce yourself :)</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>It was an interesting and diverse week in terms of tasks and achievements and I'm reaching the week-end with a lot of positive thoughts and energy.</p>
<p>I'll be in Lyon, France next week-end for the <a href="https://www.jdll.org">JDLL</a>. If you plan to be there too, drop me a message so we can meet and greet.</p>
<p>See you next week!</p>Logbook, week 15 (2019-12)2019-03-22T15:52:00+01:002019-03-22T15:52:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-03-22:/logbook-week-15-2019-12.html<p>Check out what's happened since our last post!</p><p><a href="https://blog.funkwhale.audio/logbook-week-14-2019-11.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week, @Alexander <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/678">contributed some documentation</a> for the Gentoo platform, @Jovuit <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/659">completed the work on string contextualization</a>, @Sporiff <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/679">documented our documentation process</a> (wow, meta ;) and integrated <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/673">a longstanding enhancement</a>.</p>
<p>Work on OAuth support continued too, and even though it's been a while, I'm pretty confident it will be completed next week.</p>
<p>Finally, <a href="https://docs.funkwhale.audio/changelog.html#id1">Funkwhale 0.18.3 was released yesterday, with a lot of bugfixes and enhancements!</a></p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Our journey toward a legal entity behind the project continued:</p>
<ul>
<li>We have moderation rules/guidelines, thanks to @Ginny</li>
<li>The call for candidates is now open: we want you to get involved in this new structure!</li>
<li><a href="https://governance.funkwhale.audio/d/oJ0OpjEk/pick-a-name-for-the-association">We're looking for a name for the collective</a>. Feel free to jump in, share your ideas or give us feedback!</li>
</ul>
<p>You may have noticed the last link is on a new tool. It's a new platform I've setup today, at <a href="https://governance.funkwhale.audio">https://governance.funkwhale.audio</a>, based on a project called <a href="https://www.loomio.org/">Loomio</a>. This is similar to a forum, but with additional features to reach consensus and make decisions within communities as ours. You can freely sign up and start using it today :)</p>
<p>Finally, thanks to @Ginny and @Robin, we now have a mascot, called Betty!</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'm a bit sad not to have completed the OAuth work this week, but this week was pretty busy and productive overall.</p>
<p>I feel relieved to have Funkwhale 0.18.3 out, since multiple bugs were consistently affecting end users and should now be solved.</p>
<p>See you next week!</p>Logbook, week 14 (2019-11)2019-03-15T13:25:00+01:002019-03-15T13:25:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-03-15:/logbook-week-14-2019-11.html<p>Check out what's happened since our last post!</p><p><a href="https://blog.funkwhale.audio/logbook-week-13-2019-10.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Over the past week, @sporiff <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/661">contributed a lot of documentation, including new guides and structural changes to ensure our documentation can scale properly</a>.</p>
<p>@deltadelta and @renon also contributed additional documentation, respectively for <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/645">content removal</a> and <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/671">instructions for backing up Funkwhale instances</a>.</p>
<p>The <a href="https://github.com/YunoHost-Apps/funkwhale_ynh">YunoHost package for Funkwhale 0.18</a> was officially released earlier this week by @jibec and @PierrickBrun. If you have a Funkwhale instance deployed via YunoHost, you probably want to upgrade ;)</p>
<p>@gordon and I spent some time working together on authentication/authorization. Our goal was to kickstart the work on <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/752">2-factor auth</a> and <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/752">OAuth</a>.</p>
<p>We've started the OAuth implementation, and this is exciting news, as it will bring a better and more robust authentication/permission scheme in the app, and was the last big missing piece to allow third-party apps developers to integrate with Funkwhale!</p>
<p>Finally, following the work done by @troll, I've started to work on the content for the funkwhale.audio redesign.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Lots of things happened this week. First of all, we now have an official <a href="https://funkwhale.audio/en_US/code-of-conduct">Code of Conduct</a>. Many thanks to @Ginny</p>
<p><a href="https://funkwhale.audio/fr_FR/code-of-conduct/">A french translation</a> of this document quickly followed, and was contributed by @Arr0w_root, @teslawf, @gordon, @albakham and @adrien.</p>
<p>We've started a bunch of important discussions on the forum:</p>
<ul>
<li>Internal moderation rules draft: to agree on the rules/processes that will apply to our moderators</li>
<li>An initial roadmap for Funkwhale: to design a roadmap for the project and keep focus</li>
</ul>
<p>Having your feedback on those topics would be really helpful :)</p>
<p>One final thing: Funkwhale Sync #4, will take place this Sunday, at 18:00 UTC+1. Come and join us!</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>This week had a really good vibe, and lot of tasks were started and completed.</p>
<p>For plenty of them, I wasn't even involved (or just for the review part) which gives me more peace of mind, and the freedom to focus on other things.</p>
<p>Dear Funkwhale community: you are amazing! I can't wait to see you next week!</p>Logbook, week 13 (2019-10)2019-03-08T13:37:00+01:002019-03-08T13:37:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-03-08:/logbook-week-13-2019-10.html<p>This week developments were focused on bugfixing and enhancements.</p><p><a href="https://blog.funkwhale.audio/logbook-week-12-2019-09.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week developments were focused on bugfixing and enhancements. @Jovuit contributed some fixes and enhancement for the frontend, @gerry_the_hat started interesting discussions: one regarding <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/741">Funkwhale's behaviour when it come to CLI import</a> and one suggesting we <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/742">implement UPnP to make Funkwhale content accessible to devices connected on the same network</a>.</p>
<p>Earlier this week I focused my energy on <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/642">implementing real JSON-LD support in Funkwhale</a>. Even though it's completely invisible work, it was needed to bring potential compatibility with other fediverse software, to improve the robustness of the federation code, and to continue working on metadata updates.</p>
<p>After that, I fixed a handful of small bugs, some related to notifications, some to federation. Thanks to reports and screenshots provided by @ariasuni, I also had a front-end improving afternoon to fix <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/644">a lot of small glitches and annoying things</a> (especially on smaller screens)</p>
<p>Finally, since @Jovuit contextualized almost all of our source strings, I dedicated this morning to write a script to automatically populate those new strings with previous matching translations. This will drastically reduce the work load generated by the contextualization for our kind translators ;)</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>It's time for Funkwhale Sync #4, and you're welcome to join us! Date is not fixed yet and you can suggest a slot that work for you :)</p>
<p>We're also in the process of writing our final Code of Conduct and looking for feedback. This CoC will be an important step to improve the safety and inclusivity of our community!</p>
<p>One final thing, if you're involved in Funkwhale's community, we'd appreciate it if you could indicate your pronouns in your bio or display name.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>This week was better for me than the previous ones. I 've felt less distracted and more productive.</p>
<p>See you next week :)</p>Logbook, week 12 (2019-09)2019-03-01T13:43:00+01:002019-03-01T13:43:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-03-01:/logbook-week-12-2019-09.html<p>Most of the contributions this week were small bugfixes or improvements.</p><p><a href="https://blog.funkwhale.audio/logbook-week-11-2019-08.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Most of the contributions this week were small bugfixes or improvements, made by @Elza and @Renon.</p>
<p>@Jovuit also almost finished the huge contextualization work on translations, that started a month ago!</p>
<p>On a personal level, I've merged the first big chunk of the metadata update feature, and I'm now working</p>
<p>on the remaining part, which is huge as well, because it involves federation.</p>
<p>I'm starting to be a bit worried regarding the amount of bugs that are opened. I need to focus</p>
<p>on big features right now, but by doing that, I have to neglect smaller yet important issues.</p>
<p>Once the metadata thing is done, I think I will dedicate my energy toward bugfixes.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>In case you missed that, <a href="https://blog.funkwhale.audio/a-warm-welcome-to-ginny.html">Ginny joined the project earlier this week</a> to help us with community and organization work.</p>
<p>I spent some time this week to help with her onboarding, and also on personal administrative stuff.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I kinda feel this week was calm, but if I'm really objective, Ginny working with us is a big</p>
<p>thing in itself. Even though development stuff was more quiet than usual, progress was made!</p>
<p>See you next week :)</p>A warm welcome to Ginny!2019-02-25T16:03:00+01:002019-02-25T16:03:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-02-25:/a-warm-welcome-to-ginny.html<p>Today, I'm incredibly excited to announce that Ginny will be joining the project, starting immediately.</p><p>Today, I'm incredibly excited to announce that <a href="http://ginny.today">Ginny</a> will be joining the project, starting immediately. She'll work with us to ensure our community and our future organization are as inclusive, diverse and welcoming for everyone as they should be.</p>
<p>Her long experience with online communities will bring us the feedback and ideas we need to bring Funkwhale to the next level. She's new to our community, so please give her a warm welcome!</p>
<p>Ginny will also be the first Funkwhale contributor to be paid for her work. I'm going to share the details with you, for the sake of transparency: Ginny will work with us from February 25th to March 31st. That's five week in total, and she'll be paid 200 USD per week. We agreed on this amount and duration, based on our needs and available resources. At the end of this 5-week period, we'll discuss of the outcomes and the future of our cooperation :)</p>
<p>Thank you for joining us Ginny, we're looking forward to work with you!</p>Logbook, week 11 (2019-08)2019-02-22T13:07:00+01:002019-02-22T13:07:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-02-22:/logbook-week-11-2019-08.html<p>We're received a few interesting contributions this week!</p><p><a href="https://blog.funkwhale.audio/logbook-week-10-2019-07.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>We're received a few interesting contributions this week!</p>
<p>@Sporiff contributed a lot of documentation, especially <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/623">some guides to tag your music library with Picard and do common administration tasks via Django's admin backend</a>. He's also spend a lot of time and energy answering support requests, which allowed me to focus on other tasks.</p>
<p>@Renon fixed <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/622">a longstanding bug in our documentation</a>, and @Jovuit fixed <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/620">a lot of small annoying issues with our frontend</a>.</p>
<p>@jibec and Pierrick Brun <a href="https://github.com/YunoHost-Apps/funkwhale_ynh/pull/58">have almost completed the work on the YunoHost package upgrade to the 0.18.2 release</a>, and could use some feedback about that!</p>
<p>Thanks to a suggestion by @Floreal, I've been able to properly implement auto-embedding of the player when sharing a Funkwhale URL on Mastodon (and other software supporting twitter cards).</p>
<p>The player was a bit ugly and cluttered on smaller resolution, so @Tixie <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/625">brought it to the next level</a> and it should now render great on a large variety of devices, regardless of the screen width and height, as shown below:</p>
<p>On a personal note, this week development time was focused on <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/621">the big metadata update feature</a>. I now have the basic APIs and UI to suggest and browse edits on track metadata, as shown in this video:</p>
<iframe title="Tracks edit" sandbox="allow-same-origin allow-scripts allow-popups" src="https://videos.funkwhale.audio/videos/embed/14c661b2-aca0-4c37-8f64-405d67f59f03" frameborder="0" allowfullscreen></iframe>
<p>Next steps include generalizing this to support update on artists and albums, and federating those changes to other instances.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>As promised last week, you can find a summary of our conclusions from Funkwhale Sync #3 on our forum. This should give you some insight about the next steps!</p>
<p>@Sporiff also launched a discussion regarding our documentation, how it is structured and how we could improve it in the future. You probably want to check it out ;)</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'm a bit struggling with my current rhythm. Recent events in my personal life prevent me to be as focused on Funkwhale as I was in January and December.</p>
<p>I'm probably reaching a second phase of my work on Funkwhale: after almost three months switching to full-time work on the project, I expected the energy to diminish a bit.</p>
<p>Still, I think things are moving forward, event if at a slightly slower speed, and it's good to see other people contributing to the project!</p>
<p>See you next week :)</p>Logbook, week 10 (2019-07)2019-02-15T14:02:00+01:002019-02-15T14:02:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-02-15:/logbook-week-10-2019-07.html<p>Funkwhale 0.18.2 was released this week, and fixes a few annoying bugs.</p><p><a href="https://blog.funkwhale.audio/logbook-week-9-2019-06.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/tags/0.18.2">Funkwhale 0.18.2 was released this week</a>, and fixes a few annoying bugs. The work on translation contextualization continued, led by @Jovuit, who made good progress, and @jake <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/613">contributed a brand new Albums list view</a>.</p>
<p>We've also received <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/608">some documentation improvements regarding third-party apps setup from</a> @Sporiff.</p>
<p>On a personal level, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/618">I've implemented the new feature to support hiding artist content in the UI</a>, and it will be shipped in Funkwhale 0.19</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Since we had Funkwhale Sync #3 on Sunday, I spent a lot of time discussing with @Gordon, integrating the feedback we received, and preparing the second version of our statuses.</p>
<p>The meeting itself was productive, thanks to the involvement of all participants. We were 13 at some point in the meeting, and the combination of vocal/written discussion worked quite well. I expect the discussion to be even smoother in next meetings, once we get use to this new format :)</p>
<p><a href="https://open.audio/library/albums/6133">The recording (french) is available on open.audio</a>, but it will probably be hard to follow since we often forgot to read what was being written in the chat.</p>
<p>I've been working on a new forum topic to summarize the concrete modifications that you can expect on the non-profit statuses, and it should be published over the week-end.</p>
<p>Again, many thanks to everyone who dedicated time this sunday to join us and help us improve the project: Melunaka, Tixie, Albakham, Audrey, Gordon, Floréal, OniriCorpse, Hælwenn, Troll, Theof, Jovuit, Milia, Nhaddag. Your presence and interventions were really appreciated and useful!</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>This week was a short too, as I was off monday afternoon and tuesday. However, I'm really happy with the progress we've made, and I can actually start to imagine our non-profit being up and running.</p>
<p>The work on the statuses has been quite exigeant, and even frustrating sometimes but, even if it's not over yet, I kind of feel the hardest part is behind us: once we have the statuses, everything should be considerably easier afterwards!</p>
<p>See you next week!</p>Logbook, week 9 (2019-06)2019-02-08T11:02:00+01:002019-02-08T11:02:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-02-08:/logbook-week-9-2019-06.html<p>Check out what's happened since our last post!</p><p><a href="https://blog.funkwhale.audio/logbook-week-8-2019-05.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>@jovuit <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/662">started to work on translations contextualization</a> which should improve the overall quality of Funkwhale translations, by giving more context to translators, leading to more accurate translations.</p>
<p><a href="https://github.com/django/channels/issues/1240">One issue was found in one of our dependency</a>, breaking user uploads, and I spent some time investigating that and working on a fix.</p>
<p>Two interesting feature requests were also submitted:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/703">A cleaner, dedicated user interface to make Funkwhale's web UI look better</a> and less cluttered, and could be useful in bars, or when you have friends home, by @OniriCorpe</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/701">The ability to hide specific artists from the UI</a>, to avoid being exposed to NSFW content or content that makes you uncomfortable in general. The issue was opened by me, but the initial suggestion comes from @milia</li>
</ul>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Funkwhale Sync #3 will take place this sunday, at 16:00 (CET), and we'll discuss our progress on the non-profit and our next steps.</p>
<p>Another key topic is the lack of diversity in Funkwhale's community and the concrete actions we should take to ensure the situation improves.</p>
<p>Please, join us if have something to say on that matters! The tool we use for the meeting has an embedded text chat you can use instead of a microphone to share your questions and insights during the meeting.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>This week was short, and I multi-tasked a lot, which is not something I'm really good at.</p>
<p>I feel a bit tired because of that and the week-end I spent in Brussels, at Fosdem 2019.</p>
<p>I expect next week to be calmer, especially since Funkwhale Sync #3 will be over ;)</p>
<p>See you next week!</p>Logbook, week 8 (2019-05)2019-02-01T09:13:00+01:002019-02-01T09:13:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-02-01:/logbook-week-8-2019-05.html<p>Earlier this week, I released Funkwhale 0.18.1. This is a small bugfix release, following the big 0.18 release from two weeks ago.</p><p><a href="https://blog.funkwhale.audio/logbook-week-7-2019-04.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Earlier this week, I released Funkwhale 0.18.1. This is a small bugfix release, following the big 0.18 release from two weeks ago, and <a href="https://docs.funkwhale.audio/changelog.html#id1">you should upgrade</a> your instance when you have a moment ;)</p>
<p>That being done, I started to focus on the 0.19 release, and especially on metadata management. What I call metadata is all the musical data revolving around audio content itself: license stuff, titles, dates, links to other platforms, etc.</p>
<p>Currently, we extract this data from audio files, during import, and there is no easy way to update it after that (for example to fix a typo, an error, or add a field that was missing). Moreover, since this data is federated, updating things locally could lead to discrepancies, or changes being erased if you update a local copy of something updated remotely.</p>
<p>To address that, I've opened <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/689">a dedicated issue</a> and tried to split the potential solution in small to medium size tasks. I think I have a pretty clear path forward, and the design I'm implementing will include auditability (who changed what, when?), and some wiki-like features (people can suggest a change, and people with the proper permissions can approve it).</p>
<p>Another thing I've been thinking about this week was how to bring Live Streaming to Funkwhale, a problem I've been trying to solve for a few months now. I now have a pretty-good high-level architecture to support this use case, <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/691">it's summarized on a dedicated issue</a>. I don't expect implementation itself will not start anytime soon, but it's good to know we can do that when we have the required bandwidth!</p>
<p>Finally, Wednesday afternoon, I took a few hours to implement a basic radio with recommendations based on other users history, based on a suggestion from @gordon. This led to an interesting thread about algorithms, curiosity, human-based curation, passivity and serendipity.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>We're still waiting for feedback on the non-profit statuses. It's been a week now, and we could use more insight. I expect the topic to stay open for another week, then we'll rewrite our draft based on the discussions.</p>
<p>Funkwhale Sync #3 will happen in a week or two. If you want in, remember to fill in the date poll and suggest discussion topics.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>This week's energy was interesting, I have the feeling that multiple problems that were hard to solve have found a path to resolution. I'm also excited to start working on big features again, after three or four weeks on polishing/bugfix work!</p>
<p>I'm currently in Lyon, and will be leaving for Brussels in the afternoon. See you tomorrow at the Fosdem this week-end if you're here :)</p>Logbook, week 7 (2019-04)2019-01-25T13:01:00+01:002019-01-25T13:01:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-01-25:/logbook-week-7-2019-04.html<p>This week development time was focused on the 0.18 "Naomi" release, and I'm glad to announce it's out and available!</p><p><a href="https://blog.funkwhale.audio/logbook-week-6-2019-03.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week development time was focused on the 0.18 "Naomi" release, and I'm glad to announce it's out and available! <a href="https://docs.funkwhale.audio/changelog.html#naomi-2019-01-22">Check-out the changelog</a> for details! TL;DR: it's a really big release, possibly the biggest one in Funkwhale history ;)</p>
<p>We'll be releasing a bugfix release for a few minor issues, probably next week, but overall, it went pretty well!</p>
<p>After the release, on thursday, I spent some time working on <a href="https://network.funkwhale.audio">https://network.funkwhale.audio</a>, a monitoring tool to collect and display statistics about available Funkwhale instances.</p>
<p>Thanks to that, we'll have the required data to observe of the network is evolving, and dispatch new users to one of the open instances!</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>Earlier today, I shared an initial draft for our future non-profit statuses, and your feedback would be appreciated to ensure we're on the right track!</p>
<p>Also, we're approaching February, and it's time to schedule our monthly Funkwhale Sync. Expect some news about that in the coming days :)</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'll be present at Fosdem in Brussels next week. Don't hesitate to say "hi!" if you're attending too!</p>
<p>See you next week!</p>Logbook, week 6 (2019-03)2019-01-18T14:23:00+01:002019-01-18T14:23:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-01-18:/logbook-week-6-2019-03.html<p>Check out what's happened since our last post!</p><p><a href="https://blog.funkwhale.audio/logbook-week-5-2019-02.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week development time was focused on three aspects:</p>
<ol>
<li>Integrate <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/614">an alternative Docker deployment method</a></li>
<li>Fix remaining blocking issues for the 0.18 release</li>
<li>Kickstart a small project to gather data about the Funkwhale network</li>
</ol>
<p>The <a href="https://github.com/thetarkus/docker-funkwhale">new alternative deployment</a> was contributed by @thetarkus and makes things easier by bundling all Funkwhale processes and services (database, redis), in a single Docker image. Although I was more a partisan of the "One container=one process" philosophy, I have to admit the image works great and is considerably easier to deploy than our docker-compose based method (which will remain supported by the way ;). I really think this easier set up will help the project grow!</p>
<p>I won't talk in details about the small issues that were fixed. It includes some album cover parsing issues in files metadata, and some small UX improvements. However, the last item will probably interest you. Our current list of instances at <a href="https://join.funkwhale.audio">https://join.funkwhale.audio</a> is powered by an hardcoded list which is hard to maintain. I've also been asked regularly how many Funkwhale instances and accounts we can find out here, and I don't have an easy answer to this question.</p>
<p>Since we're going to redesign Funkwhale's website, I thought it was about time to prepare for a new instance picker and this requires collecting data about Funkwhale instances. Initially, I was thinking about using the work done at <a href="https://the-federation.info/funkwhale">the-federation.info</a> for that, however, since I want to collect specific, non-standard data, I decided to implement this myself.</p>
<p>This app will crawl every instance on a regular basis and gather anonymous data about each instance such as the number of user accounts, the uptime, the Funkwhale version in use, etc. Data collection itself will likely be opt-out and togglable using a flag in their instance admin panel.</p>
<p>This is also an occasion to experiment new technologies and tools (especially async programming), which is something I've been waiting to do for a long time and may even be useful for Funkwhale in the future.</p>
<p>The source code (still a WIP) is available as usual, on <a href="https://dev.funkwhale.audio/funkwhale/network">our GitLab instance</a>.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>The 0.18 release will be out next week, probably Tuesday or Wednesday! I'll try to stream the release like I did last time ;)</p>
<p>We made some progress on the non-profit, although I don't have anything to share yet. However, we're also structuring the way we're working on translations, and if you ever worked on Funkwhale translations, you probably want to have a look at <a href="https://forum.funkwhale.audio/t/languages">the dedicated forum topic</a>.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'm really excited about next week and the 0.18 release. I have a lot on my plate this month, with the release, the work on the non-profit, and the planning and discussions for the next releases, but, at the same time, it feels like more people have contributed to the project over the past few weeks, and I can definitely feel an increase in the time I spend writing/discussing. This is a good thing, because it removes some load from my shoulders and spread it on multiple people.</p>
<p>I'll be present at Fosdem, in Brussels, if you want to say hi, discuss about Funkwhale, or simply meet me. I'll wear a Funkwhale T-Shirt so you don't miss me ;)</p>
<p>See you next week!</p>Logbook, week 5 (2019-02)2019-01-11T16:28:00+01:002019-01-11T16:28:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-01-11:/logbook-week-5-2019-02.html<p>One big feature landed this week: instance moderation tools.</p><p><a href="https://blog.funkwhale.audio/logbook-week-4-2019-01.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>One big feature landed this week: instance moderation tools. This new feature enable instance owners and moderators to control how their instance interact with other accounts and instances on the network.</p>
<p>Among other things, it's now possible to:</p>
<ul>
<li>reject media (audio files and metadata) from any instance or account</li>
<li>prevent all communication (in our out) with any instance or account</li>
<li>purge content originating from any instance or account</li>
</ul>
<p>For more insights about this new feature, you can have a look at the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/521">Merge Request</a> which explain the changes in details!</p>
<p>I'm pretty confident we'll be able to release the 0.18 this month. It's about time, because the changelog is becoming huge, with more than 50 entries, including many big features (transcoding, embedding, moderation, licensing data), bugfixes and enhancements!</p>
<p>To prepare for the release, translations strings were freezed this afternoon, to leave time for translators to work their magic ;)</p>
<p>I've also rescheduled a few issues that were initially planned for the 0.18 release but were not blocking.</p>
<p>Only a dozen issues remain <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/milestones/13">in the milestone</a>, and I'll possibly reschedule some of them next week.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>We had our second Funkwhale Sync last week-end and it went pretty well. We agreed that we needed a full redesign of <funkwhale.audio> and @Troll started to work on that.</p>
<p>There was also a consensus about opening a non-profit to support the project, and I've spent a lot of time this week with @Gordon to prepare an initial draft of the foundation statuses and Code of Conduct.</p>
<p>While we were initially aiming for a fast launch (as soon as early february), we started a discussion on the forum about the current lack of diversity inside the core team. Since we want Funkwhale to be an attractive and safe place for everyone, we're taking extra care to design the adequate structure and processes, and decided not to rush anything.</p>
<p>Expect some news on that matter in the upcoming weeks!</p>
<h2 id="interesting-notes"><a class="toclink" href="#interesting-notes">Interesting notes</a></h2>
<p>@Thetarkus is <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/614#note_7491">currently working on an easier way</a> to deploy docker image. If you want to try Funkwhale but the installation instructions look a bit overwhelming, you should probably give it a try and share your feedback ;)</p>
<p>@mmai also published <a href="https://github.com/mmai/funkwhale-nixos">a NixOS package</a> for Funkwhale, and a <a href="https://www.youtube.com/watch?v=YUfv3JFwHe0">step-by-step video</a> showcasing the installation on a cloud server.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>This week was possibly the most intense since I started to work full time on Funkwhale. The perspective of starting a foundation to take over the governance of the project is thrilling, and after the moderation tools were finally merged in the development branch, I've been able to tackle a lot of small issues, a thing I missed for a long time.</p>
<p>As a result, it went pretty fast, in fact, I realized it was Friday and I needed to write this entry just an hour ago :D</p>
<p>See you next week!</p>Logbook, week 4 (2019-01)2019-01-04T14:14:00+01:002019-01-04T14:14:00+01:00Funkwhaletag:blog.funkwhale.audio,2019-01-04:/logbook-week-4-2019-01.html<p>I went back from vacation this wednesday, so there have not been many news regarding the development.</p><p><a href="https://blog.funkwhale.audio/logbook-week-3-2018-51.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>I went back from vacation this wednesday, so there have not been many news regarding the development.</p>
<p>Still, I managed to implement two important bits of User Interface that were needed or more complex moderation tools. Funkwhale now have a UI to browse federation domains, and federation accounts.</p>
<p>Each one can be viewed separately, as well as interesting metadata that will hopefully give moderators some context and understanding when they need to act upon a domain or account.</p>
<p>@Auri also started working on a new important feature that will <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/646">improve the information we have about tracks, albums and their corresponding artists</a>.</p>
<p>I've also finished a handful of bugfixes and enhancements, such as exif data stripping for user avatars, a fix for websocket under Chrome browser and loading time improvements in critical API endpoints.</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>We're going to meet this Sunday at 18:00 (UTC+1) for the next Funkwhale Sync.</p>
<p>(The forum is currently down, but it should come back soon). If you want to join the discussion, you can <a href="https://hackmd.io/a328QU-5QUGZ8v-vPTyNYg">review the agenda</a>, and the details for joining the actual meeting will be shared on <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">the dedicated Matrix Room</a>.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'm really happy to be back, and I wish you a great year, full of energy, love and interesting things to do and discover.</p>
<p>See you next week!</p>Logbook, week 3 (2018-51)2018-12-21T09:45:00+01:002018-12-21T09:45:00+01:00Funkwhaletag:blog.funkwhale.audio,2018-12-21:/logbook-week-3-2018-51.html<p>Last week, I promised to show you some of the work on moderation tools, but I won't be able to do that today.</p><p><a href="https://blog.funkwhale.audio/logbook-week-2-2018-50.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Last week, I promised to show you some of the work on moderation tools, but I won't be able to do that today. I had to take a break from working on this feature because I was not implementing it properly. I'll start working on it again in january.</p>
<p>However, this does not mean I cannot show you anything fancy! One interesting feature landed this week, which is support for embedding Funkwhale content into third party websites. From now on, when you share a link to an artist, album or track page on an external website that supports the OpenGraph protocol (which a lot of platforms such as Mastodon, Facebook, Slack, etc. support), a preview card with an image and additional data will be displayed.</p>
<p>You can also embed a Funkwhale player directly on your own website using the new embedding tool, as shown in the gif below. You can embed full albums or individual tracks.</p>
<p>Implementing this has been technically challenging because of the way Funkwhale works. <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/496">You should definitely read the technical notes on this feature</a> if you're interested in the details!</p>
<p>Later this week, I've been focusing on improving the performance of the web UI, which takes a loooooong time to load, especially on slow connections. There is of course no single bullet way to fix that, but thanks to <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/499">a lot of small, targeted improvements</a>, the web UI will now load faster, load less data, and be more responsive during the initial load (we're talking about a factor 2 or 3).</p>
<p>This has been deployed on <a href="https://open.audio/library">Open.audio</a> yesterday and I expect this work to introduce some bugs, please report anything unusual with the web UI!</p>
<h2 id="018-release"><a class="toclink" href="#018-release">0.18 release</a></h2>
<p>The last big missing feature of <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/milestones/13">the 0.18 release</a> is the moderation tools, and I plan to have a first, working set of tools in the first half of January. There are a lot of other tickets in this milestone, but I'm going to reschedule some of them and only leave important bugfixes that need to be done.</p>
<p>I'm pretty confident we can have a release available by the end of January! As always, though it's an estimate and may be subject to change ;)</p>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>You may remember I published a forum topic to discuss the potential setup of a non-profit around the project. I did not receive any feedback on this, and I really need some :D If you have a few minutes to jump in and tell me what you think of it, that would be great!</p>
<p>We'll discuss this at the next Funkwhale Sync anyway, and this is a quick reminder that you join us.</p>
<p>The slot is not fixed yet, but it's likely to happen on January 6th based on the first answers to the poll.</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I'll be on vacations until January 2nd, and even if I'll be around, don't expect much progress.</p>
<p>I wish you nice holidays, see you next year!</p>Logbook, week 2 (2018-50)2018-12-14T14:09:00+01:002018-12-14T14:09:00+01:00Funkwhaletag:blog.funkwhale.audio,2018-12-14:/logbook-week-2-2018-50.html<p>This week developments have been focused the moderation tools, as last week.</p><p><a href="https://blog.funkwhale.audio/logbook-week-1-2018-49.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week developments have been focused the moderation tools, as last week. The work is going slowly, but I've started to implement the UI so I should have things to show you next week ;)</p>
<p>I could not spend as much time as usual on dev though, since I had to focus on various tasks outlined below.</p>
<h2 id="gitlab-migration"><a class="toclink" href="#gitlab-migration">Gitlab migration</a></h2>
<p>The main reason I ordered a dedicated server for Funkwhale is that until last week, critical sites and tools for the project were still hosted on my personal infrastructure. I think it's important to have a clean separation between my personal assets and the project ones.</p>
<p>Funkwhale can now leverage a dedicated server with enough resources to grow. I've migrated our Gitlab instance, from <code>code.agate.com</code> to <dev.funkwhale.audio> which took me a full day, as it affected many components and sites (Funkwhale's website, contribute guides, documentation, CI runners, code repositories, etc.) The migration is now complete, backups are in place, and I feel quite relieved it's done!</p>
<h2 id="ownership-change-for-openaudio"><a class="toclink" href="#ownership-change-for-openaudio">Ownership change for Open.audio</a></h2>
<p><a href="https://open.audio/">Open.audio</a> is one of the only instances with open registrations. It was started a few months ago by <a href="https://mastodon.art/@Curator">the same person behind Mastodon.art</a>, and offer hosting for Creative Commons content.</p>
<p>Curator contacted me two weeks ago, asking me if I wanted take ownership of the instance, as he wanted to focus on other tasks. I've proceed to the migration on thursday, and Open.audio is now hosted on the same physical server I mentioned earlier. From an end-user perspective, this should not change anything at all: you can continue to enjoy the service and upload your Creative Commons content as before.</p>
<p>For the project, however, this makes a big difference, because we now own a public instance where we can point people at and put content that will be accessible to anyone on the federation.</p>
<p>We still have to figure out how to maintain and moderate this instance, and also ensure it does not become a Single Point of Failure (SPOF) in the network.</p>
<p>Thank you Curator for starting and maintaining this instance in the first place :)</p>
<h2 id="mirroring-of-the-free-music-archive"><a class="toclink" href="#mirroring-of-the-free-music-archive">Mirroring of the Free Music Archive</a></h2>
<p>I've mentioned in a previous entry that there was an interesting thread about free music going on in the Fediverse. In this discussion, someone shared a link to the Free Music Archive (FMA), a collection of more than 100 000 thousands audio tracks under Creative Commons licenses.</p>
<p>The FMA was supposed to close, by lack of resources, and the content was mirrored on <archive.org> to ensure it remained available even after.</p>
<p>Apparently, they found a way to survive, which is great news!</p>
<p>But before I learn about that, since I had a brand new Funkwhale instance with Open.audio, and spare storage on the new server, I imported a third of the archive on Open.audio from the Archive.org mirror. That's approximately 6500 albums for a total size of nearly 400GB, of all genres, carefully handpicked by the FMA curators!</p>
<p>Mirroring the FMA on Open.audio serves multiple purposes:</p>
<ul>
<li>Ensuring the recent developments on license handling in Funkwhale work as expected (apparently, they do ;)</li>
<li>Injecting public content on the federation, for everyone to reuse, to help the growth of the network (Send a follow to <a href="https://open.audio/federation/music/libraries/ce1fb6d4-fae6-464a-a34a-bdd46209ee82">https://open.audio/federation/music/libraries/ce1fb6d4-fae6-464a-a34a-bdd46209ee82</a>)</li>
<li>Providing an alternative way to access this content (in addition to the FMA and Archive.org own websites)</li>
</ul>
<p>I'm not sure when I will import the remaining two thirds (it may require some additional storage), but it's in the todo list. If you're interested in doing this yourself, the code I used may be found <a href="https://dev.funkwhale.audio/funkwhale/archiveorg-dl/">here</a>, and it should work with any Archive.org content (and not only audio).</p>
<p>Huge thanks to the FMA team and members for the work they are doing, and also to the people at Archive.org for setting up this mirror!</p>
<h2 id="personal"><a class="toclink" href="#personal">Personal</a></h2>
<p>I feel like this second week went really, really fast compared to the previous one, I'm not sure why though. Maybe it's the fact I worked multiple tasks and did lot of system administration?</p>
<p>See you next week!</p>Logbook, week 1 (2018-49)2018-12-07T13:33:00+01:002018-12-07T13:33:00+01:00Funkwhaletag:blog.funkwhale.audio,2018-12-07:/logbook-week-1-2018-49.html<p>Check out what's happened since our last post!</p><p><a href="https://blog.funkwhale.audio/logbook-week-0-2018-48.html">Previous entry</a></p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>This week developments have been focused on three main aspects:</p>
<ul>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/308">License management, to store license data and copyright information from uploaded files and display it</a>. This was finished on Thuesday.</li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/507">Better support for multiple disc releases</a></li>
<li><a href="https://dev.funkwhale.audio/funkwhale/funkwhale/merge_requests/487">Moderation tools, to help admins filter content their insance receives or send</a>. This is still a work in progress.</li>
</ul>
<h2 id="project-management"><a class="toclink" href="#project-management">Project management</a></h2>
<p>The discussion about the project structure is open. Should we create a non-profit around the project? Investigate other options? Having some feedback and suggestions from the community would be incredibly helpful to avoid pitfalls and ensure we go in the right direction.</p>
<p>This will be discussed in January during Funkwhale Sync #2. The date is not fixed yet, we're waiting for more answers on the date poll before pinning the meeting slot.</p>
<h2 id="finances"><a class="toclink" href="#finances">Finances</a></h2>
<p>No big changes since last week on the <a href="https://opencollective.com/funkwhale">Open Collective</a> side. I do have good news though: my former colleagues from PeopleDoc collected money for the project before I left, and I started a call for proposals on the forum to discuss what we should to with this funding. Your input is wanted!</p>
<h2 id="events"><a class="toclink" href="#events">Events</a></h2>
<ul>
<li>@troll and@renon are now official moderators of our forum and Matrix rooms</li>
<li>The current owner of <a href="https://open.audio/">https://open.audio/</a> is willing to transfer the ownership of the domain to Funkwhale. This should happen in the next weeks.</li>
</ul>
<h2 id="personnal"><a class="toclink" href="#personnal">Personnal</a></h2>
<p>It was my first actual week of work on the project, and it went pretty well. I kept office hours, (9:30-17:30 everyday), and I could enjoy my evening without thinking about Funkwhale at all. This did not happen for a long, long time!</p>
<p>I'd say immediately setting up a calendar with explicit tasks was a good move, so was maintaining a daily worklog.</p>
<p>I'm expecting to feel a bit lonely next week, and I'll try to work from different places to prevent that.</p>
<p>See you next friday!</p>Logbook, week 0 (2018-48)2018-11-30T07:28:00+01:002018-11-30T07:28:00+01:00Funkwhaletag:blog.funkwhale.audio,2018-11-30:/logbook-week-0-2018-48.html<p>Today's a special day. If you remember, it's my very last day of work at PeopleDoc, the company I've been working for over the last 14 months.</p><p>Today's a special day. <a href="https://blog.funkwhale.audio/logbook-week-0-2018-48.html">If you remember</a>funkwhale-past-present-and-future.md), it's my very last day of work at PeopleDoc, the company I've been working for over the last 14 months.</p>
<p>As early as next monday, I will be technically unemployed, and able to dedicate more time to the project. I expect the change of rhythm and context to be quite brutal, and I'm currently looking for ways to preserve the momentum I have from my current position.</p>
<p>Transitioning from a traditional job - even though I worked remotely - with meetings, schedules, (brilliant) colleagues, external goals and all the daily routine to a completely different setting, well, it's scary, and exciting, at the same time.</p>
<p><em>Part of my efforts to keep this momentum will go into a weekly log I intend to publish every friday</em>. For you, this log will be the occasion to get news, facts and insights about what's actually going on for Funkwhale. As for myself, I hope it will be a - rather fun - way to structure my week and motivate myself ;)</p>
<p>I want this log to be accessible and understandable by everyone, which is why I will not talk in-depth about software engineering in those logs, and focus on the bigger picture instead:</p>
<ul>
<li>What is the progress on the next version?</li>
<li>What happened in the community?</li>
<li>What interesting contributions did we receive?</li>
<li>How are things going financially for Funkwhale?</li>
</ul>
<p>Since it's the first entry in the logbook, I'll mention things that happened during november (and not only last week).</p>
<h2 id="development"><a class="toclink" href="#development">Development</a></h2>
<p>Most of my development work in november have been focused on the contribution guides, which are now up at <a href="https://contribute.funkwhale.audio/">https://contribute.funkwhale.audio/</a>. In addition to the code needed to make the website actually work, a lot of effort and time was needed to write the guide themselves, and to setup a proper process for translators to <a href="https://translate.funkwhale.audio/projects/funkwhale/contribute/">translate the site</a>.</p>
<p>Given how recent this is, I have to say I'm amazed we already have a full Italian translation and almost complete Arabic translation, respectively contributed by @SylkeVicious and @ButterflyOfFire, as well as a cute logo designed by @troll!</p>
<p>More recently, I started to work again on an important feature for the 0.18 release: <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/308">have Funkwhale understand music licenses</a>. Part of the work was already done by @renon and I spent half of the development time researching about licenses, how they work, how we can modelize them and use them in Funkwhale, etc. Fun fact: there are at least 350 possible combinations of Creative Commons licenses!</p>
<p>Overall, the 0.18 release is progressing fairly well, and half of the planned tickets are already closed. Once the work on licenses is done, I plan to shift my focus on the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/580">moderation tools</a>, which is the last big remaining feature to implement for this release.</p>
<h2 id="finances"><a class="toclink" href="#finances">Finances</a></h2>
<p>Funkwhale is currently earning around 75€ a month on <a href="https://opencollective.com/funkwhale">Open Collective</a>, and this does not even include one-time donations. Many thanks for your trust and support!</p>
<h2 id="contributions"><a class="toclink" href="#contributions">Contributions</a></h2>
<p>Other recent contributions include:</p>
<ul>
<li><a href="https://aur.archlinux.org/packages/funkwhale/">An AUR package</a> that will probably interest ArchLinux users, as well as <a href="https://wiki.archlinux.org/index.php/Funkwhale">a dedicated entry in the ArchLinux Wiki</a> (@getzze)</li>
<li>Several bugfixes (@nykopol)</li>
<li><a href="https://translate.funkwhale.audio/projects/funkwhale/front/de/#history">German translations</a> for Funkwhale's web UI (<a href="https://translate.funkwhale.audio/user/jovuit/">@jovuit</a>, <a href="https://translate.funkwhale.audio/user/turion/">@turion</a>, <a href="https://translate.funkwhale.audio/user/max.lutterbeck/">@max.lutterbeck</a>)</li>
<li><a href="https://translate.funkwhale.audio/projects/funkwhale/front/pl/#history">Polish translations</a> for Funkwhale's web UI (<a href="https://translate.funkwhale.audio/user/m4sk1n/">@m4sk1n</a>)</li>
<li>Funkwhale-specific developments and discussions for the <a href="https://itunes.apple.com/NL/app/id955329386?mt=8">Play:sub iOS app</a> (<a href="https://dev.funkwhale.audio/MichaelBechHansen">MichaelBechHansen</a>)</li>
</ul>
<p>This list is of course non-exhaustive ;)</p>
<h2 id="other"><a class="toclink" href="#other">Other</a></h2>
<ul>
<li>I was interviewed by Jurij Podgorsek and Lio Novelli who host a show called <a href="https://radiostudent.si/dru%C5%BEba/tehno-klistir">Tehno Klistir</a> in Slovenia. While the show is in Slovene, the interview itself was done in english, and you can listen to it <a href="https://radiostudent.si/dru%C5%BEba/tehno-klistir/fragmentacija-federacije">here</a></li>
<li>It happened in early november, but still, we had our first Funkwhale Sync meeting and it went pretty well. Organize the next one is part of next week's todo list ;)</li>
<li>There was an interesting thread on the fediverse about places where you can find music under open licenses</li>
</ul>
<p>Thank you for reading, see you next week!</p>Announcing Funkwhale Sync #1, let's build Funkwhale together!2018-10-27T15:06:00+02:002018-10-27T15:06:00+02:00Funkwhaletag:blog.funkwhale.audio,2018-10-27:/announcing-funkwhale-sync-1-lets-build-funkwhale-together.html<p>We've decided to experiment with the idea of a Funkwhale sync meeting starting in November. The good news is that you can be a part of it!</p><p><em>A french version of this entry is available <a href="https://blog.funkwhale.audio/funkwhale-sync-1-construisons-funkwhale-ensemble.html">here</a>.</em></p>
<p>A few days ago, <a href="https://maly.io/@Troll">Troll</a> suggested in our Matrix room that we could have a regular meeting with the community, to discuss important topics, organize things, answer questions, etc. This resonated a lot with what I want to do as a project maintainer to ensure Funkwhale is in the hands of the community.</p>
<p>We've decided to experiment on this idea and to have our first meeting in november. The good news is that you can be a part of it!</p>
<h2 id="why"><a class="toclink" href="#why">Why?</a></h2>
<p>This meeting will be the opportunity for Funkwhale users and contributors to synchronize (hence the name) around the project:</p>
<ul>
<li>Get to know each other, and welcome newcomers</li>
<li>Discuss what should be done, how, by whom, etc.</li>
<li>Work together on the governance, tools, roadmap, etc.</li>
</ul>
<h2 id="when"><a class="toclink" href="#when">When?</a></h2>
<p>We'll pick the most voted date from a poll.</p>
<p>Participation is open to everyone :)</p>
<h2 id="how"><a class="toclink" href="#how">How?</a></h2>
<p>The meeting itself will last 1h at most, and happen on <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">funkwhale-sync:Matrix.org</a>. We'll do it via an audio call, but people not able or not willing to use audio will be able to use the text chat to ask questions.</p>
<p>Prior to the meeting, anyone can submit new topics in the meeting agenda: <a href="https://hackmd.io/QY6_qBeIStm3IAJ0Yk2VNA">https://hackmd.io/QY6_qBeIStm3IAJ0Yk2VNA#</a>. We'll freeze the agenda 24h before the meeting.</p>
<p>During the meeting, we'll simply discuss items from the agenda. We'll keep 10 minutes at the end for discussion / questions related to topics not covered in the agenda.</p>
<p><strong>The meeting will likely happen in french, as it's the language used by a huge proportion of our community. You can still come if you don't speak french, and we'll do our best to translate things for you. Designing something more convienient for non-french speakers is also part of the meeting agenda ;)</strong></p>
<p>Participation is open to everyone, you'll only need <a href="https://app.element.io/#/register">a Matrix account</a>, to join the Matrix channel <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">#funkwhale-sync:matrix.org</a> and be there at the chosen date.</p>
<h2 id="lets-meet"><a class="toclink" href="#lets-meet">Let's meet!</a></h2>
<p>That's it, we hope you'll be there. Send any question regarding the meeting on <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">#funkwhale-sync:matrix.org</a>, on <a href="https://fosstodon.org/@funkwhale">our Mastodon account</a>, or by reply on this blog entry.</p>
<p>See you soon!</p>Funkwhale Sync #1 : construisons Funkwhale ensemble2018-10-27T15:06:00+02:002018-10-27T15:06:00+02:00Funkwhaletag:blog.funkwhale.audio,2018-10-27:/funkwhale-sync-1-construisons-funkwhale-ensemble.html<p>Nous avons décidé d'expérimenter l'idée d'une réunion de synchronisation Funkwhale à partir de novembre. Bonne nouvelle, vous pouvez vous joindre à nous!</p><p><em>Cet article est disponible en anglais <a href="https://blog.funkwhale.audio/announcing-funkwhale-sync-1-lets-build-funkwhale-together.html">ici</a>.</em></p>
<p>Il y a quelques jours <a href="https://maly.io/@Troll">Troll</a> a suggéré sur notre salon Matrix que nous organisions régulièrement une réunion avec la communauté, afin de discuter des sujets importants, de nous coordonner, de répondre aux questions, etc.</p>
<p>Cette proposition fait écho à ce que j'ai envie de faire, en temps que mainteneur du projet, pour m'assurer que Funkwhale grandisse et demeure un entre les mains de sa communauté.</p>
<p>Nous avons donc décidé de mettre en pratique cette idée et d'organiser une première rencontre en novembre. Bonne nouvelle, vous pouvez vous joindre à nous !</p>
<h2 id="pourquoi"><a class="toclink" href="#pourquoi">Pourquoi ?</a></h2>
<p>Cette rencontre sera l'occasion pour les utilisateur.ices et contributeur.ices de se synchroniser (d'où le nom) autour du projet :</p>
<ul>
<li>Faire connaissance, et accueillir les personnes fraîchement arrivées</li>
<li>Discuter de ce qui doit être fait, comment, par qui, etc.</li>
<li>Travailler ensemble sur la gouvernance, les outils, la feuille de route, etc.</li>
</ul>
<h2 id="quand"><a class="toclink" href="#quand">Quand ?</a></h2>
<p>La date retenue sera celle ayant obtenu le plus de votes sur un sondage.</p>
<p>La participation est ouverte à tout le monde :)</p>
<h2 id="comment"><a class="toclink" href="#comment">Comment ?</a></h2>
<p>La rencontre elle-même durera 1h maximum et se déroulera sur <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">#funkwhale-sync:Matrix.org</a>.</p>
<p>Nous discuterons via audio, mais les personnes ne pouvant ou ne souhaitant pas participer de cette façon pourront également utiliser le chat pour poser leurs questions et intervenir.</p>
<p>Avant la rencontre, chacun.e peut suggérer de nouveaux sujets de discussion dans l'ordre du jour : <a href="https://hackmd.io/QY6_qBeIStm3IAJ0Yk2VNA">https://hackmd.io/QY6_qBeIStm3IAJ0Yk2VNA#</a>. L'ordre du jour sera figé 24h avant la réunion proprement dite.</p>
<p>Durant la réunion, nous aborderons simplement les points de l'ordre du jour. 10 minutes seront consacrées, en fin de réunion, à une discussion plus informelle sur les sujets n'ayant pas été abordés.</p>
<p>La langue utilisée pour la réunion sera très probablement le français, car c'est la langue actuellement utilisée par une grande proportion de notre communauté. Vous êtes malgré tout bienvenu.e si vous ne parlez pas français, et nous ferons de note mieux pour traduire les supports et interventions. D'autre part, le travail sur un mode de fonctionnement adapté à une communauté internationale fait partie des points à l'ordre du jour de cette réunion ;)</p>
<p>La participation est totalement ouverte, et vous n'aurez besoin que d'<a href="https://app.element.io/#/register">un compte Matrix</a>, de rejoindre le salon salon adéquat <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">#funkwhale-sync:Matrix.org</a> et d'être là le jour dit.</p>
<h2 id="rencontrons-nous"><a class="toclink" href="#rencontrons-nous">Rencontrons nous !</a></h2>
<p>Venez nombreux.ses, et n'hésitez pas à envoyer vos questions et remarques concernant cette rencontre sur <a href="https://matrix.to/#/#funkwhale-sync:matrix.org">#funkwhale-sync:Matrix.org</a> sur <a href="https://fosstodon.org/@funkwhale">notre compte Mastodon</a>, ou en commentaire de cet article!</p>
<p>See you soon!</p>Anti-harrasment tools2018-10-05T15:39:00+02:002018-10-05T15:39:00+02:00Funkwhaletag:blog.funkwhale.audio,2018-10-05:/anti-harrasment-tools.html<p>There is an ongoing discussion on Peertube about adding an option do disable the auto-approval of follows from other servers, as a preventive measure to avoid being harassed. As Funkwhale's maintainer, I feel like I have to take a stance in this discussion, because we will have the same ones for Funkwhale.</p><p>There is <a href="https://github.com/Chocobozzz/PeerTube/issues/1179">an ongoing discussion on PeerTube's issue tracker</a> about adding an option do disable the auto-approval of follows from other servers, as a preventive measure to avoid being harassed. At the moment of writing this, this is <em>the most commented issue</em> of the project, and the discussion feels like a battle.</p>
<h2 id="on-the-feature-itself"><a class="toclink" href="#on-the-feature-itself">On the feature itself</a></h2>
<p>This would be an option to activate on your PeerTube instance, to ensure only approved instances can follow you and syndicate your content. This feature is already implemented elsewhere, for instance in Mastodon (at the user level), and not technically <em>hard</em> to implement. There is a de-facto way to do that on the federation/ActivityPub side. The most complex part is probably to provide a user interface around that, but even that is technically feasible and there is nothing inherently hard about it.</p>
<p>The rationale is that harassers have an easier time harassing you if they can <em>easily</em> access your content, videos, etc. If we can make it harder for them to access your content, it will need more effort on their side to cause you trouble. The feature request in PeerTube is a bit different from what is implemented in Mastodon, because it's asking for a control at the instance level, with a validation from instance admins. So it's targeting instances instead of users, but the logic is the same.</p>
<h2 id="on-the-arguments-against-this-feature"><a class="toclink" href="#on-the-arguments-against-this-feature">On the arguments against this feature</a></h2>
<p>Most if not all the arguments developed against this feature are political ones, not technical ones, and falls in one of this category:</p>
<ol>
<li>This is against free speech</li>
<li>This is not effective to fight harassment</li>
</ol>
<p>If you think that controlling your audience is against free speech, please understand there is a huge difference between having something publicly <em>available</em>, and having something publicly <em>broadcasted</em>.</p>
<p>This is a perfectly valid use case to have a blog were publications are accessible to anyone but not wanting to have it broadcasted to on every other blog or newspaper. Because you are writing for your audience (which may grow organically), but not for <em>everyone</em>. The same goes for a video channel. Also, having this feature implemented means more people will join the network, as they will feel more secure to do so. Everyone benefits from a bigger network with more content.</p>
<p>Now, about the efficacy of this feature. Sure, some people will still be able to bypass that (using RSS feeds or embeds, browsing your instance directly, etc.), but the important bit is <em>it won't be as easy for them</em>. Thus, there is a higher chance they will simply leave you alone and go on with their lives.</p>
<p>It's not the ultimate solution to harassment. But it's definitely a good one to reduce the harassment coming from low-motivation harassers: dropping a hateful comment because they see your content popping in their timelines, sharing it with other harassers, etc.</p>
<p>It's a first step and should be considered as is. I really hope PeerTube contributors can take this in consideration when deciding whether they should implement it.</p>
<h2 id="on-the-stance-of-funkwhale-about-anti-harassment-tools"><a class="toclink" href="#on-the-stance-of-funkwhale-about-anti-harassment-tools">On the stance of Funkwhale about anti-harassment tools</a></h2>
<p>As Funkwhale's maintainer, I feel like I have to take a stance in this discussion, because we will have the same ones for Funkwhale. Here is my stance on the subject:</p>
<ul>
<li>Having anti-harrasment features, even if incomplete and/or not 100% effective is better than having nothing</li>
<li>I'll happily consider any suggestion to improve the existing anti-harassment features or integrate new ones</li>
</ul>
<p>Apart from manual approval of follows (which is already implemented), there is an <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/320">open issue to support block/mute at the actor and instance level</a>. This will be included in the first release that support direct interaction between actors, as I expect harassment to become a real problem at that point.</p>
<p>On the long-term, I'd also like to experiment with new tools, such as block/mute lists. But we'll need regular block/mute before that anyway!</p>
<p>There are probably plenty of other options to try as well, so if you want to help shape the moderation and anti-harassment tools for Funkwhale, feel free to say hi!</p>Funkwhale 0.17 is almost ready!2018-09-26T19:48:00+02:002018-09-26T19:48:00+02:00Funkwhaletag:blog.funkwhale.audio,2018-09-26:/funkwhale-017-is-almost-ready.html<p>Today, I'm pleased to announce that the 0.17 release is almost ready. Before going further, I'd like to test this on existing instances, to catch hidden bug before they are included in the release.</p><p>If you're following the project development, you probably know that not much visible happened since the the last big release, in july.</p>
<p>The reason for that is that the development effort was focused on redesigning the way music was managed in the system, to help dealing with copyright issues and make federation more powerful and easier to use.</p>
<p>Today, I'm pleased to announce that the 0.17 release is almost ready. Before going further, I'd like to test this on existing instances, to catch hidden bug before they are included in the release.</p>
<p>Those are the area I'd like to test, to ensure a smooth upgrade for everyone:</p>
<ul>
<li>Ensure <a href="https://docs.funkwhale.audio/upgrading/0.17.html#migration-path">the migration script</a> is working as expected</li>
<li>Ensure existing features, such as radios, playlists, imports, favorites, etc. are working as usual</li>
<li>Ensure new features are working as expected:<ul>
<li>Creation / management of users libraries</li>
<li>Federation / follow / deletion of users libraries</li>
<li>Ensure the redesigned import system is reliable, both on the front-end and the backend</li>
</ul>
</li>
</ul>
<p>If you want to help with that, please carry on!</p>
<h2 id="i-want-to-get-involved"><a class="toclink" href="#i-want-to-get-involved">I want to get involved!</a></h2>
<p>Thank you!</p>
<p>If you own an instance, those are the things you can do to battle-test this release:</p>
<ol>
<li><a href="https://docs.funkwhale.audio/installation/index.html#running-funkwhale-on-the-develop-branch">Switch to the development channel</a> to use the latest changes</li>
<li>Read <a href="https://docs.funkwhale.audio/upgrading/0.17.html">the dedicated release notes</a> to understand the scope and impact of the changes</li>
<li><a href="https://docs.funkwhale.audio/upgrading/0.17.html#migration-path">Upgrade your instance</a> as explained</li>
<li>Report issues about the upgrade process on <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/542">the dedicated page</a></li>
</ol>
<p>If you are a Funkwhale user, those are the things you can do to battle-test this release:</p>
<ol>
<li>Read <a href="https://docs.funkwhale.audio/upgrading/0.17.html">the dedicated release notes</a> to understand the scope and impact of the changes</li>
<li>Use the service as you usually do</li>
<li>Report any regression or bugs you encounter on <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/issues/542">the dedicated page</a></li>
</ol>
<p>As usual, you are also welcome on <a href="https://matrix.to/#/#funkwhale:matrix.org">#funkwhale:matrix.org</a> to discuss :)</p>
<p>Thank you so much for your help, let's build a great release together!</p>
<p>That's really nice to hear</p>Help Funkwhale grow: support the project financially on Open Collective!2018-09-11T17:41:00+02:002018-09-11T17:41:00+02:00Funkwhaletag:blog.funkwhale.audio,2018-09-11:/help-funkwhale-grow-support-the-project-financially-on-open-collective.html<p>From January to July 2018, we've been receiving donations on Liberapay. However, in July, Liberapay had some troubles with their payment provider, and we had to look into other options to fund our project.</p><p>From January to July 2018, we've been receiving donations on <a href="https://liberapay.com/funkwhale">Liberapay</a>. However, in July, Liberapay had some troubles with their payment provider, and we had to look into other options to fund our project.</p>
<p>Lots of people have been complaining that we hadn't any donation system available, and I have the pleasure to announce those days are over ;)</p>
<p>If you're only interested in giving money to the project, you can jump straight to our donation page : <a href="https://opencollective.com/funkwhale">https://opencollective.com/funkwhale</a></p>
<h2 id="introducing-open-collective"><a class="toclink" href="#introducing-open-collective">Introducing Open Collective</a></h2>
<p><a href="https://opencollective.com">Open Collective</a> is a donation management platform with an interesting model and design. Basically, collectives (think: foundation, informal projects without backing structure, etc.) can join the service and describe a budget. Bakers can then visit those collectives pages and give money to them. Not really original, is it?</p>
<p>The differences lies in the way you can withdraw this money. With systems such as Liberapay or Patreon, the page owner usually provide a bank account (or any other payout mean) and receives their money. On Open Collective, you can only withdraw money if you submit proof of expenses. Typically, if you have 100€ on your collective's balance, and spend 50€ to buy drinks and food in the organization of an event, you would submit the receipt for this purchase, and get reimbursed.</p>
<p>The main reasons to prefer this model are accountability and transparency: expenses and proofs are displayed publicly on your collective's page, meaning backers can scrutinize your accounts and understand how their money is actually spend. This force collectives to think about their expenses upfront, and ensure money is used properly.</p>
<p>I'm really interested in that design, as I think it will be really helpful to help Funkwhale transition from a small, personal project, to something that is more community maintained.</p>
<p>On a sidenote, <a href="https://github.com/opencollective/">Open Collective itself is open-source</a>, if you want to have a look at the code ;)</p>
<h2 id="open-collective-features"><a class="toclink" href="#open-collective-features">Open Collective features</a></h2>
<p>Apart from that, as a backer, you get pretty much the same features from Open Collective than you would expect from other donation systems:</p>
<ul>
<li>Recurring and one time donations, with flexible amounts</li>
<li>Each collective gets a dedicated page with updates, a transaction log, etc.</li>
<li>Summary of your expenses as a backer at the end of the month</li>
</ul>
<p>It's worth noting the fees are higher than with Liberapay (and possibly other) systems, between 10 and 15%:</p>
<ul>
<li>5% goes to Open Collective</li>
<li>5% goes to the payment provider (Stripe)</li>
<li>In case there is not legal entity behind the collective (which is currently the case for Funkwhale), the entity that receives the funds will take a commission as well, which is roughly ~5% in our case</li>
</ul>
<p>This commission is deduced from the amount received: if you are donating 10€, Funkwhale's collective will receive ~8.5€. If we create a legal entity for Funkwhale in the future, we'll be able to reduce those commissions.</p>
<h2 id="our-goals"><a class="toclink" href="#our-goals">Our goals</a></h2>
<p>You can visit <a href="https://opencollective.com/funkwhale">the collective page</a> to have an up-to-date vision of our milestones, as well as our current account balance.</p>
<p>We have two milestone at the moment:</p>
<ol>
<li>1000€/year to pay for domain name and servers needed to host our various developement tools, websites and community spaces</li>
<li>24000€/year to fund my work on the project. This translates to 2000€/month which I consider a sustainable target</li>
</ol>
<p>Milestone #1 will be easy to deal with: I have bills and receipts for most of those expenses, and I can upload them on Open Collective to get reimbursed.</p>
<p>Milestone #2 will be more challenging, because I need to think about the legal structure for my work. Should I use my own enterprise and make invoices for my time working on Funkwhale? Or work on a foundation to back the project, and get hired by it?</p>
<p>I'd like to add a milestone to fund external contributions (translation, moderation, code, etc.) as well, because there is no reason I'm the only one to benefiting from all the work. Those are the things we need to figure as a community, and I'm confident we will work this out together.</p>
<h2 id="lets-do-this-together"><a class="toclink" href="#lets-do-this-together">Let's do this together!</a></h2>
<p>I'm really happy to finally have this set up! Funkwhale's website and Liberapay page have been updated to reflect those changes, so there's nothing else blocking to start receiving donations on this new platform. There are plenty of ways to contribute to the project, and if you don't have financial resources for that, check out our <a href="https://contribute.funkwhale.audio/">Contribute page</a> to get some ideas!</p>
<p>I'd love to get some feedback about Open Collective, from a backer perspective, so let me know what you think about it!</p>
<h2 id="a-note-on-liberapay"><a class="toclink" href="#a-note-on-liberapay">A note on Liberapay</a></h2>
<p>I realize this blog post can send a wrong message and I want it to be crystal clear: we were really happy with Liberapay until July. It worked very well for our needs, be it the fees, payout delays, community, and the software itself. We started to look for an alternative when we heard <a href="https://medium.com/liberapay-blog/liberapay-is-in-trouble-b58b40714d82">Liberapay was in trouble</a>.</p>
<p>Ultimately, the decision to switch was motivated by the "transparency-by-design" feature of Open Collective, which may not be suited for every use case. If you're happy with Liberapay, you should definitely stick with it.</p>
<p>Many thanks to Liberapay for hosting our donation page, and for all the people who backed Funkwhale on this platform!</p>Funkwhale: past, present... and future?2018-09-03T22:26:00+02:002018-09-03T22:26:00+02:00Funkwhaletag:blog.funkwhale.audio,2018-09-03:/funkwhale-past-present-and-future.html<p>Funkwhale started as a personal project three years ago, in response to Grooveshark being shut down. As of today, new instances are popping up every week, the project is getting traction and attracting external contributions. What should you expect for the future of the project?</p><p>Funkwhale started as a personal project three years ago, in response to Grooveshark being shut down. As of today, new instances are popping up every week, the project is getting traction and attracting external contributions. What should you expect for the future of the project?</p>
<h2 id="past"><a class="toclink" href="#past">Past</a></h2>
<p>In the beginning, in 2015, there was only me, Agate, working on my free-time on this "thing", in reaction to Grooveshark disappearance. At that time, Funkwhale had no logo, no documentation, no website, the UI was clunky, buggy, and the only deployment was mine. It kinda worked, and it was satisfying to be independent from big streaming platforms, but the amount of effort was really not worth it, especially since the interface was not so good.</p>
<p>However, in 2017 (or was it 2016?), I discovered a great new technology, called <a href="http://vuejs.org/">VueJS</a>, which I used to rebuild the project front-end, from scratch. Suddenly, everything became both easier and more satisfying from a user <em>and</em> a developer perspective, and I felt confident enough to show the project to some close friends and family. Using their feedback, I could improve the project and progressively add new features.</p>
<p>The first time I mentioned it publicly, it was probably in July 2017. But the real kickoff of the project was with a toot, where I invited people on my own instance for a closed beta, at the end of february 2018.</p>
<p>This attracted a few dozens of strangers, eager to try (and break) the app. Here again, their feedback helped me <em>a lot</em>, and the project owes a lot to their contributions. Overall, I'd say the feedback was really positive, and for me it was one of those moment in life when you are fueled with energy and ideas!</p>
<p>From March to this very day, things accelerated. A lot:</p>
<ul>
<li><a href="https://twitter.com/deadsuperhero">Sean Tilley</a> wrote <a href="https://medium.com/we-distribute/funkwhale-an-open-source-grooveshark-alternative-begins-activitypub-implementation-cbc10a412b20">a great article</a> on the project, attracting more people</li>
<li>Other people started to host Funkwhale instances. @Gled, especially, started the first public instance: <code>https://funkwhale.mastodon.host</code></li>
<li>External contributions where submitted to the codebase and the documentation <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/graphs/develop">by no less than 20 people</a></li>
<li>People started to give money to the project on Liberapay and Duniter</li>
<li>I opened a dedicated Mastodon account for the project: <https://fosstodon.org/@funkwhale</li>
<li>I opened <a href="https://matrix.to/#/#funkwhale:matrix.org">matrix rooms</a> to gather members of the community, discuss about the development, welcome newcomers, and have fun together</li>
<li>Basic federation of music libraries was implemented</li>
<li>I was interviewed by Narf, from Framasoft, and <a href="https://www.nextinpact.com/news/106896-funkwhale-defis-dune-version-libre-et-federee-grooveshark.htm">Guénaël Pépin, from NextINpact</a> about the project</li>
<li>I presented ActivityPub and Funkwhale's implementation at the RMLL in Strasbourg, in July</li>
<li>Funkwhale was internationalized and <a href="https://translate.funkwhale.audio/stats/">handsome contributors</a> translated it in <a href="https://translate.funkwhale.audio/projects/funkwhale/front/">more than 10 languages</a></li>
<li>Jibec created and maintained <a href="https://github.com/YunoHost-Apps/funkwhale_ynh">a YunoHost package</a> for the project</li>
<li>I spend a week in July with other developers, designers and contributors to federated projects during the "fédérathon", organized by <a href="https://mastodon.tetaneutral.net/@roipoussiere">Nathanaël</a>. Users tests were made against Funkwhale's UI, and lot of feedback was gathered</li>
<li>We went from the <a href="https://dev.funkwhale.audio/funkwhale/funkwhale/tags">0.6 release to the 0.16</a>, with literally dozens of bugfixes, new features, enhancements, etc.</li>
<li><a href="https://mastodon.art/@Curator">Curator</a> started <a href="http://open.audio/">Open.audio</a>, an open instance for creators wanting to share their content on Funkwhale</li>
<li>All the other things I forgot</li>
</ul>
<p>I'm not saying that to be pretentious or get credit. Actually, a lot of those achievements and milestones involved other people than me, and even if I'm still the main developer and code contributor, the project in its current state goes far beyond of what I could do by myself.</p>
<p>So thank you, to all the people who helped, brought fun, ideas, feedback, design, translations, who talked about the project and improved it. Funkwhale feels more real now than it was a year ago, and it's because of you!</p>
<h2 id="present"><a class="toclink" href="#present">Present</a></h2>
<p>So, here we are, the summer is over, and we have to talk about what will happen next. Because all the good things that happened also had a price and, unfortunately, things cannot continue like that forever.</p>
<p>As a project maintainer and main contributor, I still have a lot of things to do:</p>
<ul>
<li>Gathering feedback</li>
<li>Assisting user and instance owners with installation or usage issues</li>
<li>Maintain the documentation up-to-date and improve it</li>
<li>Welcome new people in the community, and answer questions about the project</li>
<li>Answer questions about the project, its roadmap, features, etc.</li>
<li>Manage the issue tracker: answer new issues, comments, prioritize them across releases</li>
<li>Review code contributions: check that suggested changes work and meet the guidelines, help their author finalize them</li>
<li>Discuss new features with users</li>
<li>Implement new features / fix bugs</li>
<li>Etc.</li>
</ul>
<p>As you have probably guessed, this takes a lot of time, and all of this has to happen on my free time, since I'm working full-time. At this point, you probably don't want to know how much week-ends and evenings I've spent working on Funkwhale ;)</p>
<p>I'm not implying I'm burned-out: this is not the case. However, on the long term, persisting in this way is a recipe for disaster. You may have noticed the development of Funkwhale has slowed down during summer, well, that's partly because of that: I had to stake a step back and enjoy some real free time.</p>
<p>Now, what can I do about that on the long term?</p>
<h2 id="future"><a class="toclink" href="#future">Future</a></h2>
<p>Today, I can announce it, since the negotiations with my employer are over:</p>
<p><strong>I'm leaving my job at PeopleDoc to work on Funkwhale. Starting on December 1st, I'll be able to work full-time on the project and give it the attention it deserves.</strong></p>
<p>I'd like to thank my employer and my colleagues, as they are very supporting and agreed to let me go!</p>
<p>I'm really excited to get started with this new chapter in the life of the project and I'm confident this will help me figure out a lot of solutions to current challenges we're facing:</p>
<ul>
<li>make the project more accessible to users and contributors</li>
<li>simplify the installation / maintenance / upgrade processes</li>
<li>enable financial and non-financial support to content creators that publish their work on Funkwhale</li>
<li>set up a proper structure around Funkwhale to receive donations, pay contributors (as myself), manage the community spaces, etc.</li>
<li>work on bigger features</li>
</ul>
<p>Thank you for reading, let's do awesome things together!</p>
<p>PS: you may have noticed this is a new blog. We're not going to stop publishing <a href="https://fosstodon.org/@funkwhale">on Mastodon</a>, but a blog is better suited for long posts and announcements, and will also bring more visibility for the project.</p>
<p>You can follow this blog <a href="https://blog.funkwhale.audio/feeds/announcement.atom.xml">using RSS / Atom</a>.</p>