Version bump and changelog for 0.21
This commit is contained in:
parent
de22fb79c6
commit
c0cbda9451
258
CHANGELOG
258
CHANGELOG
|
@ -10,6 +10,264 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.
|
||||||
|
|
||||||
.. towncrier
|
.. towncrier
|
||||||
|
|
||||||
|
0.21-rc1 (2020-04-09)
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Upgrade instructions are available at
|
||||||
|
https://docs.funkwhale.audio/index.html, there are also additional operations you need to execute, listed in the changelog below (search "Manual action").
|
||||||
|
|
||||||
|
|
||||||
|
Channels and podcasts
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Funkwhale 0.21 includes a brand new feature: Channels!
|
||||||
|
|
||||||
|
Channels can be used as a replacement to public libraries,
|
||||||
|
to publish audio content, both musical and non-musical. They federate with other Funkwhale pods, but also other
|
||||||
|
fediverse software, in particular Mastodon, Pleroma, Friendica and Reel2Bits, meaning people can subscribe to your channel
|
||||||
|
from any of these software. To get started with publication, simply visit your profile and create a channel from there.
|
||||||
|
|
||||||
|
Each Funkwhale channel also comes with RSS feed that is compatible with existing podcasting applications, like AntennaPod
|
||||||
|
on Android and, within Funkwhale, you can also subscribe to any podcast from its RSS feed!
|
||||||
|
|
||||||
|
Many, many thanks to the numerous people who helped with the feature design, development and testing, and in particular
|
||||||
|
to the members of the working group who met every week for months in order to get this done, and the members of other third-party
|
||||||
|
projects who took the time to work with us to ensure compatibility.
|
||||||
|
|
||||||
|
Redesigned navigation, player and queue
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This release includes a full redesign of our navigation, player and queue. Overall, it should provide
|
||||||
|
a better, less confusing experience, especially on mobile devices. This redesign was suggested
|
||||||
|
14 months ago, and took a while, but thanks to the involvement and feedback of many people, we got it done!
|
||||||
|
|
||||||
|
Improved search bar for searching remote objects
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The search bar now support fetching arbitrary objects using a URL. In particular, you can use this to quickly:
|
||||||
|
|
||||||
|
- Subscribe to a remote library via its URL
|
||||||
|
- Listen a public track from another pod
|
||||||
|
- Subscribe to a channel
|
||||||
|
|
||||||
|
Screening for sign-ups and custom sign-up form
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Instance admins can now configure their pod so that registrations required manual approval from a moderator. This
|
||||||
|
is especially useful on private or semi-private pods where you don't want to close registrations completely,
|
||||||
|
but don't want spam or unwanted users to join your pod.
|
||||||
|
|
||||||
|
When this is enabled and a new user register, their request is put in a moderation queue, and moderators
|
||||||
|
are notified by email. When the request is approved or refused, the user is also notified by email.
|
||||||
|
|
||||||
|
In addition, it's also possible to customize the sign-up form by:
|
||||||
|
|
||||||
|
- Providing a custom help text, in markdown format
|
||||||
|
- Including additional fields in the form, for instance to ask the user why they want to join. Data collected through these fields is included in the sign-up request and viewable by the mods
|
||||||
|
|
||||||
|
Federated reports
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
It's now possible to send a copy of a report to the server hosting the reported object, in order to make moderation easier and more distributed.
|
||||||
|
|
||||||
|
This feature is inspired by Mastodon's current design, and should work with at least Funkwhale and Mastodon servers.
|
||||||
|
|
||||||
|
Improved search performance
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Our search engine went through a full rewrite to make it faster. This new engine is enabled
|
||||||
|
by default when using the search bar, or when searching for artists, albums and tracks. It leverages
|
||||||
|
PostgreSQL full-text search capabilities.
|
||||||
|
|
||||||
|
During our tests, we observed huge performance improvements after the switch, by an order of
|
||||||
|
magnitude. This should be especially perceptible on pods with large databases, more modest hardware
|
||||||
|
or hard drives.
|
||||||
|
|
||||||
|
We plan to remove the old engine in an upcoming release. In the meantime, if anything goes wrong,
|
||||||
|
you can switch back by setting ``USE_FULL_TEXT_SEARCH=false`` in your ``.env`` file.
|
||||||
|
|
||||||
|
Enforced email verification
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The brand new ``ACCOUNT_EMAIL_VERIFICATION_ENFORCE`` setting can be used to make email verification
|
||||||
|
mandatory for your users. It defaults to ``false``, and doesn't apply to superuser accounts created through
|
||||||
|
the CLI.
|
||||||
|
|
||||||
|
If you enable this, ensure you have a SMTP server configured too.
|
||||||
|
|
||||||
|
User management through the server CLI
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
We now support user creation (incl. non-admin accounts), update and removal directly
|
||||||
|
from the server CLI. Typical use cases include:
|
||||||
|
|
||||||
|
- Changing a user password from the command line
|
||||||
|
- Creating or updating users from deployments scripts or playbooks
|
||||||
|
- Removing or granting permissions or upload quota to multiple users at once
|
||||||
|
- Marking multiple users as inactive
|
||||||
|
|
||||||
|
All user-related commands are available under the ``python manage.py fw users`` namespace.
|
||||||
|
Please refer to the `Admin documentation <https://docs.funkwhale.audio/admin/commands.html#user-management>`_ for
|
||||||
|
more information and instructions.
|
||||||
|
|
||||||
|
Progressive web app [Manual action suggested, non-docker only]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
We've made Funkwhale's Web UI a Progressive Web Application (PWA), in order to improve the user experience
|
||||||
|
during offline use, and on mobile devices.
|
||||||
|
|
||||||
|
In order to fully benefit from this change, if your pod isn't deployed using Docker, ensure
|
||||||
|
the following instruction is present in your nginx configuration::
|
||||||
|
|
||||||
|
location /front/ {
|
||||||
|
# Add the following line in the /front/ location
|
||||||
|
add_header Service-Worker-Allowed "/";
|
||||||
|
}
|
||||||
|
|
||||||
|
Postgres docker changed environment variable [manual action required, docker multi-container only]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
If you're running with docker and our multi-container setup, there was a breaking change starting in the 11.7 postgres image (https://github.com/docker-library/postgres/pull/658)
|
||||||
|
|
||||||
|
You need to add this to your .env file: ``POSTGRES_HOST_AUTH_METHOD=trust``
|
||||||
|
|
||||||
|
Newer deployments aren't affected.
|
||||||
|
|
||||||
|
Upgrade from Postgres 10 to 11 [manual action required, docker all-in-one only]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
With our upgrade to Alpine 3.10, the ``funkwhale/all-in-one`` image now includes PostgreSQL 11.
|
||||||
|
|
||||||
|
In order to update to Funkwhale 0.21, you will first need to uprade Funkwhale's PostgreSQL database, following the steps below::
|
||||||
|
|
||||||
|
# open a shell as the Funkwhale user
|
||||||
|
sudo -u funkwhale -H bash
|
||||||
|
|
||||||
|
# move to the funkwhale data directory
|
||||||
|
# (replace this with your own if you used a different path)
|
||||||
|
cd /srv/funkwhale/data
|
||||||
|
|
||||||
|
# stop the funkwhale container
|
||||||
|
docker stop funkwhale
|
||||||
|
|
||||||
|
# backup the database files
|
||||||
|
cp -r data/ ../postgres.bak
|
||||||
|
|
||||||
|
# Upgrade the database
|
||||||
|
docker run --rm \
|
||||||
|
-v $(pwd)/data:/var/lib/postgresql/10/data \
|
||||||
|
-v $(pwd)/upgraded-postgresql:/var/lib/postgresql/11/data \
|
||||||
|
-e PGUSER=funkwhale \
|
||||||
|
-e POSTGRES_INITDB_ARGS="-U funkwhale --locale C --encoding UTF8" \
|
||||||
|
tianon/postgres-upgrade:10-to-11
|
||||||
|
|
||||||
|
# replace the Postgres 10 files with Postgres 11 files
|
||||||
|
mv data/ postgres-10
|
||||||
|
mv upgraded-postgresql/ data
|
||||||
|
|
||||||
|
Once you have completed the Funkwhale upgrade with our regular instructions and everything works properly,
|
||||||
|
you can remove the backups/old files::
|
||||||
|
|
||||||
|
sudo -u funkwhale -H bash
|
||||||
|
cd /srv/funkwhale/data
|
||||||
|
rm -rf ../postgres.bak
|
||||||
|
rm -rf postgres-10
|
||||||
|
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
- Support for publishing and subscribing to podcasts (#170)
|
||||||
|
- Brand new navigation, queue and player redesign (#594)
|
||||||
|
- Can now browse a library content through the UI (#926)
|
||||||
|
- Federated reports (#1038)
|
||||||
|
- Screening for sign-ups (#1040)
|
||||||
|
- Make it possible to enforce email verification (#1039)
|
||||||
|
- Added a new radio based on another user listenings (#1060)
|
||||||
|
- User management through the server CLI
|
||||||
|
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
|
||||||
|
- Added ability to reject library follows from notifications screen (#859)
|
||||||
|
- Added periodic background task and CLI command to associate genre tags to artists and albums based on identical tags found on corresponding tracks (#988)
|
||||||
|
- Added support for CELERYD_CONCURRENCY env var to control the number of worker processes (#997)
|
||||||
|
- Added the ability to sort albums by release date (#1013)
|
||||||
|
- Added two new radios to play your own content or a given library tracks
|
||||||
|
- Advertise list of known nodes on /api/v1/federation/domains and in nodeinfo if stats sharing is enabled
|
||||||
|
- Changed footer to use instance name if available, and append ellipses if instance URL/Name is too long (#1012)
|
||||||
|
- Favor local uploads when playing a track with multiple uploads (#1036)
|
||||||
|
- Include only local content in nodeinfo stats, added downloads count
|
||||||
|
- Make media and static files serving more reliable when reverse proxy X_FORWARDED_* headers are incorrect (#947)
|
||||||
|
- Order the playlist columns by modification date in the Browse tab (#775)
|
||||||
|
- Reduced size of funkwhale/funkwhale docker images thanks to multi-stage builds (!1042)
|
||||||
|
- Remember display settings in Album, Artist, Radio and Playlist views (#391)
|
||||||
|
- Removed unnecessary "Federation music needs approval" setting (#959)
|
||||||
|
- Replaced our slow research logic by PostgreSQL full-text search (#994)
|
||||||
|
- Support autoplay when loading embed frame from Mastodon and third-party websites (#1041)
|
||||||
|
- Support filtering playlist by name and several additional UX improvements in playlists modal (#974)
|
||||||
|
- Support modifying album cover art through the web UI (#588)
|
||||||
|
- Use a dedicated scope for throttling subsonic to avoid intrusive rate-limiting
|
||||||
|
- Use same markdown widget for all content fields (rules, description, reports, notes, etc.)
|
||||||
|
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
|
||||||
|
- Added missing manuallyApprovesFollowers entry in JSON-LD contexts (#961)
|
||||||
|
- Fix issue with browser shortcuts such as search and focus URL not being recognised (#340, #985)
|
||||||
|
- Fixed admin dropdown not showing after login (#1042)
|
||||||
|
- Fixed an issue with celerybeat container failing to restart (#1004)
|
||||||
|
- Fixed invalid displayed number of tracks in playlist (#986)
|
||||||
|
- Fixed issue with recent results not being loaded from the API (#948)
|
||||||
|
- Fixed issue with sorting by album name not working (#960)
|
||||||
|
- Fixed short audio glitch when switching switching to another track with player paused (#970)
|
||||||
|
- Improved deduplication logic to prevent skipped files during import (#348, #474, #557, #740, #928)
|
||||||
|
- More resilient tag parsing with empty release date or album artist (#1037)
|
||||||
|
- More robust importer against malformed dates (#966)
|
||||||
|
- Removed "nodeinfo disabled" setting, as nodeinfo is required for the UI to work (#982)
|
||||||
|
- Replaced PDF icon by List icon in playlist placeholder (#943)
|
||||||
|
- Resolve an issue where disc numbers were not taken into consideration when playing an album from the album card (#1006)
|
||||||
|
- Set correct size for album covers in playlist cards (#680)
|
||||||
|
|
||||||
|
Contributors to this release (translation, development, documentation, reviews, design, testing, third-party projects):
|
||||||
|
|
||||||
|
- annando
|
||||||
|
- Anton Strömkvist
|
||||||
|
- Audrey
|
||||||
|
- ButterflyOfFire
|
||||||
|
- Ciarán Ainsworth
|
||||||
|
- dashie
|
||||||
|
- Eliot Berriot
|
||||||
|
- Eloisa
|
||||||
|
- eorn
|
||||||
|
- Francesc Galí
|
||||||
|
- GinnyMcQueen
|
||||||
|
- guillermau
|
||||||
|
- Haelwenn
|
||||||
|
- jinxx
|
||||||
|
- Jonathan Aylard
|
||||||
|
- Keunes
|
||||||
|
- M.G
|
||||||
|
- marzzzello
|
||||||
|
- Mathé Grievink
|
||||||
|
- Mélanie Chauvel
|
||||||
|
- Mjourdan
|
||||||
|
- Morgan Kesler
|
||||||
|
- Noureddine HADDAG
|
||||||
|
- Noe Gaumont
|
||||||
|
- Ollie
|
||||||
|
- Peter Wickenberg
|
||||||
|
- Renon
|
||||||
|
- Satsuki Yanagi
|
||||||
|
- Shlee
|
||||||
|
- techknowlogick
|
||||||
|
- ThibG
|
||||||
|
- Tony Wasserka
|
||||||
|
- unklebonehead
|
||||||
|
- wakest
|
||||||
|
- wxcafé
|
||||||
|
- Xosé M
|
||||||
|
|
||||||
|
|
||||||
0.20.1 (2019-10-28)
|
0.20.1 (2019-10-28)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
|
|
@ -721,3 +721,48 @@ The latter is especially useful when you are debugging failing tests.
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
The front-end test suite coverage is still pretty low
|
The front-end test suite coverage is still pretty low
|
||||||
|
|
||||||
|
|
||||||
|
Making a release
|
||||||
|
----------------
|
||||||
|
|
||||||
|
To make a new 3.4 release::
|
||||||
|
|
||||||
|
# setup
|
||||||
|
export NEXT_RELEASE=3.4 # replace with the next release number
|
||||||
|
export PREVIOUS_RELEASE=3.3 # replace with the previous release number
|
||||||
|
|
||||||
|
# ensure you have an up-to-date repo
|
||||||
|
git checkout develop # use master if you're doing a hotfix release
|
||||||
|
git pull
|
||||||
|
|
||||||
|
# compile changelog
|
||||||
|
towncrier --version $NEXT_RELEASE --yes
|
||||||
|
|
||||||
|
# polish changelog
|
||||||
|
# - update the date
|
||||||
|
# - look for typos
|
||||||
|
# - add list of contributors via `python3 scripts/get-contributions-stats.py develop $PREVIOUS_RELEASE`
|
||||||
|
nano CHANGELOG
|
||||||
|
|
||||||
|
# Set the `__version__` variable to $NEXT_RELEASE
|
||||||
|
nano nano api/funkwhale_api/__init__.py
|
||||||
|
|
||||||
|
# commit
|
||||||
|
git add .
|
||||||
|
git commit -m "Version bump and changelog for $NEXT_RELEASE"
|
||||||
|
|
||||||
|
# tag
|
||||||
|
git tag $NEXT_RELEASE
|
||||||
|
|
||||||
|
# publish
|
||||||
|
git push --tags && git push
|
||||||
|
|
||||||
|
# if you're doing a hotfix release from master
|
||||||
|
git checkout develop && git merge master && git push
|
||||||
|
|
||||||
|
# if you're doing a non-hotfix release, and a real release (not a real release) from develop
|
||||||
|
git checkout master && git merge develop && git push
|
||||||
|
|
||||||
|
Then, visit https://dev.funkwhale.audio/funkwhale/funkwhale/-/tags, copy-paste the changelog on the corresponding
|
||||||
|
tag, and announce the good news ;)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
__version__ = "0.20.1"
|
__version__ = "0.21-rc1"
|
||||||
__version_info__ = tuple(
|
__version_info__ = tuple(
|
||||||
[
|
[
|
||||||
int(num) if num.isdigit() else num
|
int(num) if num.isdigit() else num
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed an issue with celerybeat container failing to restart (#1004)
|
|
|
@ -1 +0,0 @@
|
||||||
Resolve an issue where disc numbers were not taken into consideration when playing an album from the album card (#1006)
|
|
|
@ -1 +0,0 @@
|
||||||
Changed footer to use instance name if available, and append ellipses if instance URL/Name is too long (#1012)
|
|
|
@ -1 +0,0 @@
|
||||||
Added the ability to sort albums by release date (#1013)
|
|
|
@ -1 +0,0 @@
|
||||||
Favor local uploads when playing a track with multiple uploads (#1036)
|
|
|
@ -1 +0,0 @@
|
||||||
More resilient tag parsing with empty release date or album artist (#1037)
|
|
|
@ -1 +0,0 @@
|
||||||
Federated reports (#1038)
|
|
|
@ -1 +0,0 @@
|
||||||
Make it possible to enforce email verification (#1039)
|
|
|
@ -1 +0,0 @@
|
||||||
Screening for sign-ups (#1040)
|
|
|
@ -1 +0,0 @@
|
||||||
Support autoplay when loading embed frame from Mastodon and third-party websites (#1041)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed admin dropdown not showing after login (#1042)
|
|
|
@ -1 +0,0 @@
|
||||||
Added a new radio based on another user listenings (#1060)
|
|
|
@ -1 +0,0 @@
|
||||||
Support for publishing and subscribing to podcasts (#170)
|
|
|
@ -1 +0,0 @@
|
||||||
Fix issue with browser shortcuts such as search and focus URL not being recognised (#340, #985)
|
|
|
@ -1 +0,0 @@
|
||||||
Improved deduplication logic to prevent skipped files during import (#348, #474, #557, #740, #928)
|
|
|
@ -1 +0,0 @@
|
||||||
Remember display settings in Album, Artist, Radio and Playlist views (#391)
|
|
|
@ -1 +0,0 @@
|
||||||
Support modifying album cover art through the web UI (#588)
|
|
|
@ -1 +0,0 @@
|
||||||
Brand new navigation, queue and player redesign (#594)
|
|
|
@ -1 +0,0 @@
|
||||||
Set correct size for album covers in playlist cards (#680)
|
|
|
@ -1 +0,0 @@
|
||||||
Order the playlist columns by modification date in the Browse tab (#775)
|
|
|
@ -1 +0,0 @@
|
||||||
Added ability to reject library follows from notifications screen (#859)
|
|
|
@ -1 +0,0 @@
|
||||||
Use same markdown widget for all content fields (rules, description, reports, notes, etc.)
|
|
|
@ -1 +0,0 @@
|
||||||
Can now browse a library content through the UI (#926)
|
|
|
@ -1 +0,0 @@
|
||||||
Replaced PDF icon by List icon in playlist placeholder (#943)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed issue with recent results not being loaded from the API (#948)
|
|
|
@ -1 +0,0 @@
|
||||||
Removed unnecessary "Federation music needs approval" setting (#959)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed issue with sorting by album name not working (#960)
|
|
|
@ -1 +0,0 @@
|
||||||
Added missing manuallyApprovesFollowers entry in JSON-LD contexts (#961)
|
|
|
@ -1 +0,0 @@
|
||||||
More robust importer against malformed dates (#966)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed short audio glitch when switching switching to another track with player paused (#970)
|
|
|
@ -1 +0,0 @@
|
||||||
Support filtering playlist by name and several additional UX improvements in playlists modal (#974)
|
|
|
@ -1 +0,0 @@
|
||||||
Removed "nodeinfo disabled" setting, as nodeinfo is required for the UI to work (#982)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed invalid displayed number of tracks in playlist (#986)
|
|
|
@ -1 +0,0 @@
|
||||||
Added periodic background task and CLI command to associate genre tags to artists and albums based on identical tags found on corresponding tracks (#988)
|
|
|
@ -1 +0,0 @@
|
||||||
Replaced our slow research logic by PostgreSQL full-text search (#994)
|
|
|
@ -1 +0,0 @@
|
||||||
Added support for CELERYD_CONCURRENCY env var to control the number of worker processes (#997)
|
|
|
@ -1 +0,0 @@
|
||||||
Reduced size of funkwhale/funkwhale docker images thanks to multi-stage builds (!1042)
|
|
|
@ -1 +0,0 @@
|
||||||
Advertise list of known nodes on /api/v1/federation/domains and in nodeinfo if stats sharing is enabled
|
|
|
@ -1 +0,0 @@
|
||||||
Make media and static files serving more reliable when reverse proxy X_FORWARDED_* headers are incorrect (#947)
|
|
|
@ -1 +0,0 @@
|
||||||
Include only local content in nodeinfo stats, added downloads count
|
|
|
@ -1 +0,0 @@
|
||||||
Added two new radios to play your own content or a given library tracks
|
|
|
@ -1 +0,0 @@
|
||||||
User management through the server CLI
|
|
|
@ -1 +0,0 @@
|
||||||
Use a dedicated scope for throttling subsonic to avoid intrusive rate-limiting
|
|
|
@ -5,158 +5,3 @@ Next release notes
|
||||||
|
|
||||||
Those release notes refer to the current development branch and are reset
|
Those release notes refer to the current development branch and are reset
|
||||||
after each release.
|
after each release.
|
||||||
|
|
||||||
Channels and podcasts
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Funkwhale 0.21 includes a brand new feature: Channels!
|
|
||||||
|
|
||||||
Channels can be used as a replacement to public libraries,
|
|
||||||
to publish audio content, both musical and non-musical. They federate with other Funkwhale pods, but also other
|
|
||||||
fediverse software, in particular Mastodon, Pleroma, Friendica and Reel2Bits, meaning people can subscribe to your channel
|
|
||||||
from any of these software. To get started with publication, simply visit your profile and create a channel from there.
|
|
||||||
|
|
||||||
Each Funkwhale channel also comes with RSS feed that is compatible with existing podcasting applications, like AntennaPod
|
|
||||||
on Android and, within Funkwhale, you can also subscribe to any podcast from its RSS feed!
|
|
||||||
|
|
||||||
Many, many thanks to the numerous people who helped with the feature design, development and testing, and in particular
|
|
||||||
to the members of the working group who met every week for months in order to get this done.
|
|
||||||
|
|
||||||
Redesigned navigation, player and queue
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
This release includes a full redesign of our navigation, player and queue. Overall, it should provide
|
|
||||||
a better, less confusing experience, especially on mobile devices. This redesign was suggested
|
|
||||||
14 months ago, and took a while, but thanks to the involvement and feedback of many people, we got it done!
|
|
||||||
|
|
||||||
Improved search bar for searching remote objects
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The search bar now support fetching arbitrary objects using a URL. In particular, you can use this to quickly:
|
|
||||||
|
|
||||||
- Subscribe to a remote library via its URL
|
|
||||||
- Listen a public track from another pod
|
|
||||||
- Subscribe to a channel
|
|
||||||
|
|
||||||
Screening for sign-ups and custom sign-up form
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Instance admins can now configure their pod so that registrations required manual approval from a moderator. This
|
|
||||||
is especially useful on private or semi-private pods where you don't want to close registrations completely,
|
|
||||||
but don't want spam or unwanted users to join your pod.
|
|
||||||
|
|
||||||
When this is enabled and a new user register, their request is put in a moderation queue, and moderators
|
|
||||||
are notified by email. When the request is approved or refused, the user is also notified by email.
|
|
||||||
|
|
||||||
In addition, it's also possible to customize the sign-up form by:
|
|
||||||
|
|
||||||
- Providing a custom help text, in markdown format
|
|
||||||
- Including additional fields in the form, for instance to ask the user why they want to join. Data collected through these fields is included in the sign-up request and viewable by the mods
|
|
||||||
|
|
||||||
Federated reports
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
It's now possible to send a copy of a report to the server hosting the reported object, in order to make moderation easier and more distributed.
|
|
||||||
|
|
||||||
This feature is inspired by Mastodon's current design, and should work with at least Funkwhale and Mastodon servers.
|
|
||||||
|
|
||||||
Improved search performance
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Our search engine went through a full rewrite to make it faster. This new engine is enabled
|
|
||||||
by default when using the search bar, or when searching for artists, albums and tracks. It leverages
|
|
||||||
PostgreSQL full-text search capabilities.
|
|
||||||
|
|
||||||
During our tests, we observed huge performance improvements after the switch, by an order of
|
|
||||||
magnitude. This should be especially perceptible on pods with large databases, more modest hardware
|
|
||||||
or hard drives.
|
|
||||||
|
|
||||||
We plan to remove the old engine in an upcoming release. In the meantime, if anything goes wrong,
|
|
||||||
you can switch back by setting ``USE_FULL_TEXT_SEARCH=false`` in your ``.env`` file.
|
|
||||||
|
|
||||||
Enforced email verification
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The brand new ``ACCOUNT_EMAIL_VERIFICATION_ENFORCE`` setting can be used to make email verification
|
|
||||||
mandatory for your users. It defaults to ``false``, and doesn't apply to superuser accounts created through
|
|
||||||
the CLI.
|
|
||||||
|
|
||||||
If you enable this, ensure you have a SMTP server configured too.
|
|
||||||
|
|
||||||
User management through the server CLI
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
We now support user creation (incl. non-admin accounts), update and removal directly
|
|
||||||
from the server CLI. Typical use cases include:
|
|
||||||
|
|
||||||
- Changing a user password from the command line
|
|
||||||
- Creating or updating users from deployments scripts or playbooks
|
|
||||||
- Removing or granting permissions or upload quota to multiple users at once
|
|
||||||
- Marking multiple users as inactive
|
|
||||||
|
|
||||||
All user-related commands are available under the ``python manage.py fw users`` namespace.
|
|
||||||
Please refer to the `Admin documentation <https://docs.funkwhale.audio/admin/commands.html#user-management>`_ for
|
|
||||||
more information and instructions.
|
|
||||||
|
|
||||||
Progressive web app [Manual change suggested, non-docker only]
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
We've made Funkwhale's Web UI a Progressive Web Application (PWA), in order to improve the user experience
|
|
||||||
during offline use, and on mobile devices.
|
|
||||||
|
|
||||||
In order to fully benefit from this change, if your pod isn't deployed using Docker, ensure
|
|
||||||
the following instruction is present in your nginx configuration::
|
|
||||||
|
|
||||||
location /front/ {
|
|
||||||
# Add the following line in the /front/ location
|
|
||||||
add_header Service-Worker-Allowed "/";
|
|
||||||
}
|
|
||||||
|
|
||||||
Postgres docker changed environment variable [manual action required, docker multi-container only]
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
If you're running with docker and our multi-container setup, there was a breaking change starting in the 11.7 postgres image (https://github.com/docker-library/postgres/pull/658)
|
|
||||||
|
|
||||||
You need to add this to your .env file: ``POSTGRES_HOST_AUTH_METHOD=trust``
|
|
||||||
|
|
||||||
Newer deployments aren't affected.
|
|
||||||
|
|
||||||
Upgrade from Postgres 10 to 11 [manual action required, docker all-in-one only]
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
With our upgrade to Alpine 3.10, the ``funkwhale/all-in-one`` image now includes PostgreSQL 11.
|
|
||||||
|
|
||||||
In order to update to Funkwhale 0.21, you will first need to uprade Funkwhale's PostgreSQL database, following the steps below::
|
|
||||||
|
|
||||||
# open a shell as the Funkwhale user
|
|
||||||
sudo -u funkwhale -H bash
|
|
||||||
|
|
||||||
# move to the funkwhale data directory
|
|
||||||
# (replace this with your own if you used a different path)
|
|
||||||
cd /srv/funkwhale/data
|
|
||||||
|
|
||||||
# stop the funkwhale container
|
|
||||||
docker stop funkwhale
|
|
||||||
|
|
||||||
# backup the database files
|
|
||||||
cp -r data/ ../postgres.bak
|
|
||||||
|
|
||||||
# Upgrade the database
|
|
||||||
docker run --rm \
|
|
||||||
-v $(pwd)/data:/var/lib/postgresql/10/data \
|
|
||||||
-v $(pwd)/upgraded-postgresql:/var/lib/postgresql/11/data \
|
|
||||||
-e PGUSER=funkwhale \
|
|
||||||
-e POSTGRES_INITDB_ARGS="-U funkwhale --locale C --encoding UTF8" \
|
|
||||||
tianon/postgres-upgrade:10-to-11
|
|
||||||
|
|
||||||
# replace the Postgres 10 files with Postgres 11 files
|
|
||||||
mv data/ postgres-10
|
|
||||||
mv upgraded-postgresql/ data
|
|
||||||
|
|
||||||
Once you have completed the Funkwhale upgrade with our regular instructions and everything works properly,
|
|
||||||
you can remove the backups/old files::
|
|
||||||
|
|
||||||
sudo -u funkwhale -H bash
|
|
||||||
cd /srv/funkwhale/data
|
|
||||||
rm -rf ../postgres.bak
|
|
||||||
rm -rf postgres-10
|
|
||||||
|
|
Loading…
Reference in New Issue