Version bump and changelog
This commit is contained in:
parent
af2b4965cd
commit
f44d2b0694
291
CHANGELOG
291
CHANGELOG
|
@ -10,6 +10,297 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.
|
||||||
|
|
||||||
.. towncrier
|
.. towncrier
|
||||||
|
|
||||||
|
0.18 "Naomi" (2019-01-22)
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
This release is dedicated to Naomi, an early contributor and beta tester of Funkwhale.
|
||||||
|
Her positivity, love and support have been incredibly helpful and helped shape the project
|
||||||
|
as you can enjoy it today. Thank you so much Naomi <3
|
||||||
|
|
||||||
|
Upgrade instructions are available at
|
||||||
|
https://docs.funkwhale.audio/index.html, ensure you also execute the intructions
|
||||||
|
marked with ``[manual action required]`` and ``[manual action suggested]``.
|
||||||
|
|
||||||
|
See ``Full changelog`` below for an exhaustive list of changes!
|
||||||
|
|
||||||
|
Audio transcoding is back!
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
After removal of our first, buggy transcoding implementation, we're proud to announce
|
||||||
|
that this feature is back. It is enabled by default, and can be configured/disabled
|
||||||
|
in your instance settings!
|
||||||
|
|
||||||
|
This feature works in the browser, with federated/non-federated tracks and using Subsonic clients.
|
||||||
|
Transcoded tracks are generated on the fly, and cached for a configurable amount of time,
|
||||||
|
to reduce the load on the server.
|
||||||
|
|
||||||
|
|
||||||
|
Licensing and copyright information
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Funkwhale is now able to parse copyright and license data from file and store
|
||||||
|
this information. Apart from displaying it on each track detail page,
|
||||||
|
no additional behaviour is currently implemented to use this new data, but this
|
||||||
|
will change in future releases.
|
||||||
|
|
||||||
|
License and copyright data is also broadcasted over federation.
|
||||||
|
|
||||||
|
License matching is done on the content of the ``License`` tag in the files,
|
||||||
|
with a fallback on the ``Copyright`` tag.
|
||||||
|
|
||||||
|
Funkwhale will successfully extract licensing data for the following licenses:
|
||||||
|
|
||||||
|
- Creative Commons 0 (Public Domain)
|
||||||
|
- Creative Commons 1.0 (All declinations)
|
||||||
|
- Creative Commons 2.0 (All declinations)
|
||||||
|
- Creative Commons 2.5 (All declinations and countries)
|
||||||
|
- Creative Commons 3.0 (All declinations and countries)
|
||||||
|
- Creative Commons 4.0 (All declinations)
|
||||||
|
|
||||||
|
Support for other licenses such as Art Libre or WTFPL will be added in future releases.
|
||||||
|
|
||||||
|
|
||||||
|
Instance-level moderation tools
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
This release includes a first set of moderation tools that will give more control
|
||||||
|
to admins about the way their instance federate with other instance and accounts on the network.
|
||||||
|
Using these tools, it's now possible to:
|
||||||
|
|
||||||
|
- Browse known accounts and domains, and associated data (storage size, software version, etc.)
|
||||||
|
- Purge data belonging to given accounts and domains
|
||||||
|
- Block or partially restrict interactions with any account or domain
|
||||||
|
|
||||||
|
All those features are usable using a brand new "moderation" permission, meaning
|
||||||
|
you can appoints one or nultiple moderators to help with this task.
|
||||||
|
|
||||||
|
I'd like to thank all Mastodon contributors, because some of the these tools are heavily
|
||||||
|
inspired from what's being done in Mastodon. Thank you so much!
|
||||||
|
|
||||||
|
|
||||||
|
Iframe widget to embed public tracks and albums [manual action required]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Funkwhale now support embedding a lightweight audio player on external websites
|
||||||
|
for album and tracks that are available in public libraries. Important pages,
|
||||||
|
such as artist, album and track pages also include OpenGraph tags that will
|
||||||
|
enable previews on compatible apps (like sharing a Funkwhale track link on Mastodon
|
||||||
|
or Twitter).
|
||||||
|
|
||||||
|
To achieve that, we had to tweak the way Funkwhale front-end is served. You'll have
|
||||||
|
to modify your nginx configuration when upgrading to keep your instance working.
|
||||||
|
|
||||||
|
**On docker setups**, edit your ``/srv/funkwhale/nginx/funkwhale.template`` and replace
|
||||||
|
the ``location /api/`` and `location /` blocks by the following snippets::
|
||||||
|
|
||||||
|
location / {
|
||||||
|
include /etc/nginx/funkwhale_proxy.conf;
|
||||||
|
# this is needed if you have file import via upload enabled
|
||||||
|
client_max_body_size ${NGINX_MAX_BODY_SIZE};
|
||||||
|
proxy_pass http://funkwhale-api/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /front/ {
|
||||||
|
alias /frontend/;
|
||||||
|
}
|
||||||
|
|
||||||
|
The change of configuration will be picked when restarting your nginx container.
|
||||||
|
|
||||||
|
**On non-docker setups**, edit your ``/etc/nginx/sites-available/funkwhale.conf`` file,
|
||||||
|
and replace the ``location /api/`` and `location /` blocks by the following snippets::
|
||||||
|
|
||||||
|
|
||||||
|
location / {
|
||||||
|
include /etc/nginx/funkwhale_proxy.conf;
|
||||||
|
# this is needed if you have file import via upload enabled
|
||||||
|
client_max_body_size ${NGINX_MAX_BODY_SIZE};
|
||||||
|
proxy_pass http://funkwhale-api/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /front/ {
|
||||||
|
alias ${FUNKWHALE_FRONTEND_PATH}/;
|
||||||
|
}
|
||||||
|
|
||||||
|
Replace ``${FUNKWHALE_FRONTEND_PATH}`` by the corresponding variable from your .env file,
|
||||||
|
which should be ``/srv/funkwhale/front/dist`` by default, then reload your nginx process with
|
||||||
|
``sudo systemctl reload nginx``.
|
||||||
|
|
||||||
|
|
||||||
|
Alternative docker deployment method
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Thanks to the awesome done by @thetarkus at https://github.com/thetarkus/docker-funkwhale,
|
||||||
|
we're now able to provide an alternative and easier Docker deployment method!
|
||||||
|
|
||||||
|
In contrast with our current, multi-container offer, this method integrates
|
||||||
|
all Funkwhale processes and services (database, redis, etc.) into a single, easier to deploy container.
|
||||||
|
|
||||||
|
Both method will coexist in parallel, as each one has pros and cons. You can learn more
|
||||||
|
about this exciting new deployment option by visiting https://docs.funkwhale.audio/installation/docker.html!
|
||||||
|
|
||||||
|
Automatically load .env file
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
On non-docker deployments, earlier versions required you to source
|
||||||
|
the config/.env file before launching any Funkwhale command, with ``export $(cat config/.env | grep -v ^# | xargs)``
|
||||||
|
This led to more complex and error prode deployment / setup.
|
||||||
|
|
||||||
|
This is not the case anymore, and Funkwhale will automatically load this file if it's available.
|
||||||
|
|
||||||
|
|
||||||
|
Delete pre 0.17 federated tracks [manual action suggested]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
If you were using Funkwhale before the 0.17 release and federated with other instances,
|
||||||
|
it's possible that you still have some unplayable federated files in the database.
|
||||||
|
|
||||||
|
To purge the database of those entries, you can run the following command:
|
||||||
|
|
||||||
|
On docker setups::
|
||||||
|
|
||||||
|
docker-compose run --rm api python manage.py script delete_pre_017_federated_uploads --no-input
|
||||||
|
|
||||||
|
On non-docker setups::
|
||||||
|
|
||||||
|
python manage.py script delete_pre_017_federated_uploads --no-input
|
||||||
|
|
||||||
|
|
||||||
|
Enable gzip compression [manual action suggested]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Gzip compression will be enabled on new instances by default
|
||||||
|
and will reduce the amount of bandwidth consumed by your instance.
|
||||||
|
|
||||||
|
If you with to benefit from gzip compression on your instance,
|
||||||
|
edit your reverse proxy virtualhost file (located at ``/etc/nginx/sites-available/funkwhale.conf``) and add the following snippet
|
||||||
|
in the server block, then reload your nginx server::
|
||||||
|
|
||||||
|
server {
|
||||||
|
# ... exiting configuration
|
||||||
|
|
||||||
|
# compression settings
|
||||||
|
gzip on;
|
||||||
|
gzip_comp_level 5;
|
||||||
|
gzip_min_length 256;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_vary on;
|
||||||
|
|
||||||
|
gzip_types
|
||||||
|
application/atom+xml
|
||||||
|
application/javascript
|
||||||
|
application/json
|
||||||
|
application/ld+json
|
||||||
|
application/activity+json
|
||||||
|
application/manifest+json
|
||||||
|
application/rss+xml
|
||||||
|
application/vnd.geo+json
|
||||||
|
application/vnd.ms-fontobject
|
||||||
|
application/x-font-ttf
|
||||||
|
application/x-web-app-manifest+json
|
||||||
|
application/xhtml+xml
|
||||||
|
application/xml
|
||||||
|
font/opentype
|
||||||
|
image/bmp
|
||||||
|
image/svg+xml
|
||||||
|
image/x-icon
|
||||||
|
text/cache-manifest
|
||||||
|
text/css
|
||||||
|
text/plain
|
||||||
|
text/vcard
|
||||||
|
text/vnd.rim.location.xloc
|
||||||
|
text/vtt
|
||||||
|
text/x-component
|
||||||
|
text/x-cross-domain-policy;
|
||||||
|
# end of compression settings
|
||||||
|
}
|
||||||
|
|
||||||
|
Full changelog
|
||||||
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
- Allow embedding of albums and tracks available in public libraries via an <iframe> (#578)
|
||||||
|
- Audio transcoding is back! (#272)
|
||||||
|
- First set of instance level moderation tools (#580, !521)
|
||||||
|
- Store licensing and copyright information from file metadata, if available (#308)
|
||||||
|
|
||||||
|
|
||||||
|
Enhancements:
|
||||||
|
|
||||||
|
- Add UI elements for multi-disc albums (#631)
|
||||||
|
- Added alternative funkwhale/all-in-one docker image (#614)
|
||||||
|
- Broadcast library updates (name, description, visibility) over federation
|
||||||
|
- Based Docker image on alpine to have a smaller (and faster to build) image
|
||||||
|
- Improved front-end performance by stripping unused dependencies, reducing bundle size
|
||||||
|
and enabling gzip compression
|
||||||
|
- Improved accessibility by using main/section/nav tags and aria-labels in most critical places (#612)
|
||||||
|
- The progress bar in the player now display loading state / buffer loading (#586)
|
||||||
|
- Added "type: funkwhale" and "funkwhale-version" in Subsonic responses (#573)
|
||||||
|
- Documented keyboard shortcuts, list is now available by pressing "h" or in the footer (#611)
|
||||||
|
- Documented which Subsonic endpoints are implemented (#575)
|
||||||
|
- Hide invitation code field during signup when it's not required (#410)
|
||||||
|
- Importer will now pick embedded images in files with OTHER type if no COVER_FRONT is present
|
||||||
|
- Improved keyboard accessibility on player, queue and various controls (#576)
|
||||||
|
- Improved performance when listing playable tracks, albums and artists
|
||||||
|
- Increased default upload limit from 30 to 100MB (#654)
|
||||||
|
- Load env file in config/.env automatically to avoid sourcing it by hand (#626)
|
||||||
|
- More resilient date parsing during audio import, will not crash anymore on
|
||||||
|
invalid dates (#622)
|
||||||
|
- Now start radios immediatly, skipping any existing tracks in queue (#585)
|
||||||
|
- Officially support connecting to a password protected redis server, with
|
||||||
|
the redis://:password@localhost:6379/0 scheme (#640)
|
||||||
|
- Performance improvement when fetching favorites, down to a single, small http request
|
||||||
|
- Removed "Activity" page, since all the data is available on the "Browse" page (#600)
|
||||||
|
- Removed the need to specify the DJANGO_ALLOWED_HOSTS variable
|
||||||
|
- Restructured the footer, added useful links and removed unused content
|
||||||
|
- Show short entries first in search results to improve UX
|
||||||
|
- Store disc number and order tracks by disc number / position) (#507)
|
||||||
|
- Strip EXIF metadata from uploaded avatars to avoid leaking private data (#374)
|
||||||
|
- Support blind key rotation in HTTP Signatures (#658)
|
||||||
|
- Support setting a server URL in settings.json (#650)
|
||||||
|
- Updated default docker postgres version from 9.4 to 11 (#656)
|
||||||
|
- Updated lots of dependencies (especially django 2.0->2.1), and removed unused dependencies (#657)
|
||||||
|
- Improved test suite speed by reducing / disabling expensive operations (#648)
|
||||||
|
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
|
||||||
|
- Fixed parsing of embedded file cover for ogg files tagged with MusicBrainz (#469)
|
||||||
|
- Upgraded core dependencies to fix websocket/messaging issues and possible memory leaks (#643)
|
||||||
|
- Fix ".None" extension when downloading Flac file (#473)
|
||||||
|
- Fixed None extension when downloading an in-place imported file (#621)
|
||||||
|
- Added a script to prune pre 0.17 federated tracks (#564)
|
||||||
|
- Advertise public libraries properly in ActivityPub representations (#553)
|
||||||
|
- Allow opus file upload (#598)
|
||||||
|
- Do not display "view on MusicBrainz" button if we miss the mbid (#422)
|
||||||
|
- Do not try to create unaccent extension if it's already present (#663)
|
||||||
|
- Ensure admin links in sidebar are displayed for users with relavant permissions, and only them (#597)
|
||||||
|
- Fix broken websocket connexion under Chrome browser (#589)
|
||||||
|
- Fix play button not starting playback with empty queue (#632)
|
||||||
|
- Fixed a styling inconsistency on about page when instance description was missing (#659)
|
||||||
|
- Fixed a UI discrepency in playlist tracks count (#647)
|
||||||
|
- Fixed greyed tracks in radio builder and detail page (#637)
|
||||||
|
- Fixed inconsistencies in subsonic error responses (#616)
|
||||||
|
- Fixed incorrect icon for "next track" in player control (#613)
|
||||||
|
- Fixed malformed search string when redirecting to LyricsWiki (#608)
|
||||||
|
- Fixed missing track count on various library cards (#581)
|
||||||
|
- Fixed skipped track when appending multiple tracks to the queue under certain conditions (#209)
|
||||||
|
- Fixed wrong album/track count on artist page (#599)
|
||||||
|
- Hide unplayable/emtpy playlists in "Browse playlist" pages (#424)
|
||||||
|
- Initial UI render using correct language from browser (#644)
|
||||||
|
- Invalid URI for reverse proxy websocket with apache (#617)
|
||||||
|
- Properly encode Wikipedia and lyrics search urls (#470)
|
||||||
|
- Refresh profile after user settings update to avoid cache issues (#606)
|
||||||
|
- Use role=button instead of empty links for player controls (#610)
|
||||||
|
|
||||||
|
|
||||||
|
Documentation:
|
||||||
|
|
||||||
|
- Deploy documentation from the master branch instead of the develop branch to avoid inconsistencies (#642)
|
||||||
|
- Document how to find and use library id when importing files in CLI (#562)
|
||||||
|
- Fix documentation typos (#645)
|
||||||
|
|
||||||
|
|
||||||
0.17 (2018-10-07)
|
0.17 (2018-10-07)
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
__version__ = "0.18-dev"
|
__version__ = "0.18"
|
||||||
__version_info__ = tuple(
|
__version_info__ = tuple(
|
||||||
[
|
[
|
||||||
int(num) if num.isdigit() else num
|
int(num) if num.isdigit() else num
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed skipped track when appending multiple tracks to the queue under certain conditions (#209)
|
|
|
@ -1 +0,0 @@
|
||||||
Audio transcoding is back! (#272)
|
|
|
@ -1 +0,0 @@
|
||||||
Store licensing and copyright information from file metadata, if available (#308)
|
|
|
@ -1 +0,0 @@
|
||||||
Strip EXIF metadata from uploaded avatars to avoid leaking private data (#374)
|
|
|
@ -1 +0,0 @@
|
||||||
Hide invitation code field during signup when it's not required (#410)
|
|
|
@ -1 +0,0 @@
|
||||||
Do not display "view on MusicBrainz" button if we miss the mbid (#422)
|
|
|
@ -1 +0,0 @@
|
||||||
Hide unplayable/emtpy playlists in "Browse playlist" pages (#424)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed parsing of embedded file cover for ogg files tagged with MusicBrainz (#469)
|
|
|
@ -1 +0,0 @@
|
||||||
Properly encode Wikipedia and lyrics search urls (#470)
|
|
|
@ -1 +0,0 @@
|
||||||
Fix ".None" extension when downloading Flac file (#473)
|
|
|
@ -1 +0,0 @@
|
||||||
Store disc number and order tracks by disc number / position) (#507)
|
|
|
@ -1 +0,0 @@
|
||||||
Advertise public libraries properly in ActivityPub representations (#553)
|
|
|
@ -1 +0,0 @@
|
||||||
Document how to find and use library id when importing files in CLI (#562)
|
|
|
@ -1 +0,0 @@
|
||||||
Added a script to prune pre 0.17 federated tracks (#564)
|
|
|
@ -1 +0,0 @@
|
||||||
Added "type: funkwhale" and "funkwhale-version" in Subsonic responses (#573)
|
|
|
@ -1 +0,0 @@
|
||||||
Documented which Subsonic endpoints are implemented (#575)
|
|
|
@ -1 +0,0 @@
|
||||||
Improved keyboard accessibility on player, queue and various controls (#576)
|
|
|
@ -1 +0,0 @@
|
||||||
Allow embedding of albums and tracks available in public libraries via an <iframe> (#578)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed missing track count on various library cards (#581)
|
|
|
@ -1 +0,0 @@
|
||||||
Now start radios immediatly, skipping any existing tracks in queue (#585)
|
|
|
@ -1 +0,0 @@
|
||||||
The progress bar in the player now display loading state / buffer loading (#586)
|
|
|
@ -1 +0,0 @@
|
||||||
Fix broken websocket connexion under Chrome browser (#589)
|
|
|
@ -1 +0,0 @@
|
||||||
Ensure admin links in sidebar are displayed for users with relavant permissions, and only them (#597)
|
|
|
@ -1 +0,0 @@
|
||||||
Allow opus file upload (#598)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed wrong album/track count on artist page (#599)
|
|
|
@ -1 +0,0 @@
|
||||||
Removed "Activity" page, since all the data is available on the "Browse" page (#600)
|
|
|
@ -1 +0,0 @@
|
||||||
Refresh profile after user settings update to avoid cache issues (#606)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed malformed search string when redirecting to LyricsWiki (#608)
|
|
|
@ -1 +0,0 @@
|
||||||
Use role=button instead of empty links for player controls (#610)
|
|
|
@ -1 +0,0 @@
|
||||||
Documented keyboard shortcuts, list is now available by pressing "h" or in the footer (#611)
|
|
|
@ -1 +0,0 @@
|
||||||
Improved accessibility by using main/section/nav tags and aria-labels in most critical places (#612)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed incorrect icon for "next track" in player control (#613)
|
|
|
@ -1 +0,0 @@
|
||||||
Added alternative funkwhale/all-in-one docker image (#614)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed inconsistencies in subsonic error responses (#616)
|
|
|
@ -1 +0,0 @@
|
||||||
Invalid URI for reverse proxy websocket with apache (#617)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed None extension when downloading an in-place imported file (#621)
|
|
|
@ -1,2 +0,0 @@
|
||||||
More resilient date parsing during audio import, will not crash anymore on
|
|
||||||
invalid dates (#622)
|
|
|
@ -1 +0,0 @@
|
||||||
Load env file in config/.env automatically to avoid sourcing it by hand (#626)
|
|
|
@ -1 +0,0 @@
|
||||||
Add UI elements for multi-disc albums (#631)
|
|
|
@ -1 +0,0 @@
|
||||||
Fix play button not starting playback with empty queue (#632)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed greyed tracks in radio builder and detail page (#637)
|
|
|
@ -1,2 +0,0 @@
|
||||||
Officially support connecting to a password protected redis server, with
|
|
||||||
the redis://:password@localhost:6379/0 scheme (#640)
|
|
|
@ -1 +0,0 @@
|
||||||
Deploy documentation from the master branch instead of the develop branch to avoid inconsistencies (#642)
|
|
|
@ -1 +0,0 @@
|
||||||
Upgraded core dependencies to fix websocket/messaging issues and possible memory leaks (#643)
|
|
|
@ -1 +0,0 @@
|
||||||
Initial UI render using correct language from browser (#644)
|
|
|
@ -1 +0,0 @@
|
||||||
Fix documentation typos (#645)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed a UI discrepency in playlist tracks count (#647)
|
|
|
@ -1 +0,0 @@
|
||||||
Improved test suite speed by reducing / disabling expensive operations (#648)
|
|
|
@ -1 +0,0 @@
|
||||||
Support setting a server URL in settings.json (#650)
|
|
|
@ -1 +0,0 @@
|
||||||
Increased default upload limit from 30 to 100MB (#654)
|
|
|
@ -1 +0,0 @@
|
||||||
Updated default docker postgres version from 9.4 to 11 (#656)
|
|
|
@ -1 +0,0 @@
|
||||||
Updated rots of dependencies (especially django 2.0->2.1), and removed unused dependencies (#657)
|
|
|
@ -1 +0,0 @@
|
||||||
Support blind key rotation in HTTP Signatures (#658)
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed a styling inconsistency on about page when instance description was missing (#659)
|
|
|
@ -1 +0,0 @@
|
||||||
Do not try to create unaccent extension if it's already present (#663)
|
|
|
@ -1 +0,0 @@
|
||||||
Removed the need to specify the DJANGO_ALLOWED_HOSTS variable
|
|
|
@ -1 +0,0 @@
|
||||||
Based Docker image on alpine to have a smaller (and faster to build) image
|
|
|
@ -1 +0,0 @@
|
||||||
Importer will now pick embedded images in files with OTHER type if no COVER_FRONT is present
|
|
|
@ -1 +0,0 @@
|
||||||
Improved performance when listing playable tracks, albums and artists
|
|
|
@ -1 +0,0 @@
|
||||||
Performance improvement when fetching favorites, down to a single, small http request
|
|
|
@ -1 +0,0 @@
|
||||||
Restructured the footer, added useful links and removed unused content
|
|
|
@ -1,2 +0,0 @@
|
||||||
Improved front-end performance by stripping unused dependencies, reducing bundle size
|
|
||||||
and enabling gzip compression
|
|
|
@ -1 +0,0 @@
|
||||||
Broadcast library updates (name, description, visibility) over federation
|
|
|
@ -1,2 +0,0 @@
|
||||||
|
|
||||||
First set of instance level moderation tools (#580, !521)
|
|
|
@ -1 +0,0 @@
|
||||||
Show short entries first in search results to improve UX
|
|
|
@ -5,195 +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.
|
||||||
|
|
||||||
Audio transcoding is back!
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
After removal of our first, buggy transcoding implementation, we're proud to announce
|
|
||||||
that this feature is back. It is enabled by default, and can be configured/disabled
|
|
||||||
in your instance settings!
|
|
||||||
|
|
||||||
This feature works in the browser, with federated/non-federated tracks and using Subsonic clients.
|
|
||||||
Transcoded tracks are generated on the fly, and cached for a configurable amount of time,
|
|
||||||
to reduce the load on the server.
|
|
||||||
|
|
||||||
|
|
||||||
Automatically load .env file
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
On non-docker deployments, earlier versions required you to source
|
|
||||||
the config/.env file before launching any Funkwhale command, with ``export $(cat config/.env | grep -v ^# | xargs)``
|
|
||||||
This led to more complex and error prode deployment / setup.
|
|
||||||
|
|
||||||
This is not the case anymore, and Funkwhale will automatically load this file if it's available.
|
|
||||||
|
|
||||||
Licensing and copyright information
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Funkwhale is now able to parse copyright and license data from file and store
|
|
||||||
this information. Apart from displaying it on each track detail page,
|
|
||||||
no additional behaviour is currently implemented to use this new data, but this
|
|
||||||
will change in future releases.
|
|
||||||
|
|
||||||
License and copyright data is also broadcasted over federation.
|
|
||||||
|
|
||||||
License matching is done on the content of the ``License`` tag in the files,
|
|
||||||
with a fallback on the ``Copyright`` tag.
|
|
||||||
|
|
||||||
Funkwhale will successfully extract licensing data for the following licenses:
|
|
||||||
|
|
||||||
- Creative Commons 0 (Public Domain)
|
|
||||||
- Creative Commons 1.0 (All declinations)
|
|
||||||
- Creative Commons 2.0 (All declinations)
|
|
||||||
- Creative Commons 2.5 (All declinations and countries)
|
|
||||||
- Creative Commons 3.0 (All declinations and countries)
|
|
||||||
- Creative Commons 4.0 (All declinations)
|
|
||||||
|
|
||||||
Support for other licenses such as Art Libre or WTFPL will be added in future releases.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Delete pre 0.17 federated tracks [manual action suggested]
|
|
||||||
----------------------------------------------------------
|
|
||||||
|
|
||||||
If you were using Funkwhale before the 0.17 release and federated with other instances,
|
|
||||||
it's possible that you still have some unplayable federated files in the database.
|
|
||||||
|
|
||||||
To purge the database of those entries, you can run the following command:
|
|
||||||
|
|
||||||
On docker setups::
|
|
||||||
|
|
||||||
docker-compose run --rm api python manage.py script delete_pre_017_federated_uploads --no-input
|
|
||||||
|
|
||||||
On non-docker setups::
|
|
||||||
|
|
||||||
python manage.py script delete_pre_017_federated_uploads --no-input
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Enable gzip compression [manual action suggested]
|
|
||||||
-------------------------------------------------
|
|
||||||
|
|
||||||
Gzip compression will be enabled on new instances by default
|
|
||||||
and will reduce the amount of bandwidth consumed by your instance.
|
|
||||||
|
|
||||||
If you with to benefit from gzip compression on your instance,
|
|
||||||
edit your reverse proxy virtualhost file (located at ``/etc/nginx/sites-available/funkwhale.conf``) and add the following snippet
|
|
||||||
in the server block, then reload your nginx server::
|
|
||||||
|
|
||||||
server {
|
|
||||||
# ... exiting configuration
|
|
||||||
|
|
||||||
# compression settings
|
|
||||||
gzip on;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/ld+json
|
|
||||||
application/activity+json
|
|
||||||
application/manifest+json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.geo+json
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/bmp
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/cache-manifest
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/vcard
|
|
||||||
text/vnd.rim.location.xloc
|
|
||||||
text/vtt
|
|
||||||
text/x-component
|
|
||||||
text/x-cross-domain-policy;
|
|
||||||
# end of compression settings
|
|
||||||
}
|
|
||||||
|
|
||||||
Instance-level moderation tools
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
This release includes a first set of moderation tools that will give more control
|
|
||||||
to admins about the way their instance federate with other instance and accounts on the network.
|
|
||||||
Using these tools, it's now possible to:
|
|
||||||
|
|
||||||
- Browse known accounts and domains, and associated data (storage size, software version, etc.)
|
|
||||||
- Purge data belonging to given accounts and domains
|
|
||||||
- Block or partially restrict interactions with any account or domain
|
|
||||||
|
|
||||||
All those features are usable using a brand new "moderation" permission, meaning
|
|
||||||
you can appoints one or nultiple moderators to help with this task.
|
|
||||||
|
|
||||||
I'd like to thank all Mastodon contributors, because some of the these tools are heavily
|
|
||||||
inspired from what's being done in Mastodon. Thank you so much!
|
|
||||||
|
|
||||||
|
|
||||||
Iframe widget to embed public tracks and albums [manual action required]
|
|
||||||
------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Funkwhale now support embedding a lightweight audio player on external websites
|
|
||||||
for album and tracks that are available in public libraries. Important pages,
|
|
||||||
such as artist, album and track pages also include OpenGraph tags that will
|
|
||||||
enable previews on compatible apps (like sharing a Funkwhale track link on Mastodon
|
|
||||||
or Twitter).
|
|
||||||
|
|
||||||
To achieve that, we had to tweak the way Funkwhale front-end is served. You'll have
|
|
||||||
to modify your nginx configuration when upgrading to keep your instance working.
|
|
||||||
|
|
||||||
**On docker setups**, edit your ``/srv/funkwhale/nginx/funkwhale.template`` and replace
|
|
||||||
the ``location /api/`` and `location /` blocks by the following snippets::
|
|
||||||
|
|
||||||
location / {
|
|
||||||
include /etc/nginx/funkwhale_proxy.conf;
|
|
||||||
# this is needed if you have file import via upload enabled
|
|
||||||
client_max_body_size ${NGINX_MAX_BODY_SIZE};
|
|
||||||
proxy_pass http://funkwhale-api/;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /front/ {
|
|
||||||
alias /frontend/;
|
|
||||||
}
|
|
||||||
|
|
||||||
The change of configuration will be picked when restarting your nginx container.
|
|
||||||
|
|
||||||
**On non-docker setups**, edit your ``/etc/nginx/sites-available/funkwhale.conf`` file,
|
|
||||||
and replace the ``location /api/`` and `location /` blocks by the following snippets::
|
|
||||||
|
|
||||||
|
|
||||||
location / {
|
|
||||||
include /etc/nginx/funkwhale_proxy.conf;
|
|
||||||
# this is needed if you have file import via upload enabled
|
|
||||||
client_max_body_size ${NGINX_MAX_BODY_SIZE};
|
|
||||||
proxy_pass http://funkwhale-api/;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /front/ {
|
|
||||||
alias ${FUNKWHALE_FRONTEND_PATH}/;
|
|
||||||
}
|
|
||||||
|
|
||||||
Replace ``${FUNKWHALE_FRONTEND_PATH}`` by the corresponding variable from your .env file,
|
|
||||||
which should be ``/srv/funkwhale/front/dist`` by default, then reload your nginx process with
|
|
||||||
``sudo systemctl reload nginx``.
|
|
||||||
|
|
||||||
|
|
||||||
Alternative docker deployment method
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Thanks to the awesome done by @thetarkus at https://github.com/thetarkus/docker-funkwhale,
|
|
||||||
we're now able to provide an alternative and easier Docker deployment method!
|
|
||||||
|
|
||||||
In contrast with our current, multi-container offer, this method integrates
|
|
||||||
all Funkwhale processes and services (database, redis, etc.) into a single, easier to deploy container.
|
|
||||||
|
|
||||||
Both method will coexist in parallel, as each one has pros and cons. You can learn more
|
|
||||||
about this exciting new deployment option by visiting https://docs.funkwhale.audio/installation/docker.html!
|
|
||||||
|
|
Loading…
Reference in New Issue