2017-12-13 22:36:10 +00:00
|
|
|
|
Changelog
|
|
|
|
|
=========
|
|
|
|
|
|
2018-02-27 18:04:50 +00:00
|
|
|
|
.. towncrier
|
2018-02-27 16:51:27 +00:00
|
|
|
|
|
2018-03-21 20:05:03 +00:00
|
|
|
|
0.7 (2018-03-21)
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Can now filter artists and albums with no listenable tracks (#114)
|
|
|
|
|
- Improve the style of the sidebar to make it easier to understand which tab is
|
|
|
|
|
selected (#118)
|
|
|
|
|
- On artist page, albums are not sorted by release date, if any (#116)
|
|
|
|
|
- Playlists are here \o/ :tada: (#3, #93, #94)
|
|
|
|
|
- Use django-cacheops to cache common ORM requests (#117)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Fixed broken import request admin (#115)
|
|
|
|
|
- Fixed forced redirection to login event with
|
|
|
|
|
API_AUTHENTICATION_REQUIRED=False (#119)
|
|
|
|
|
- Fixed position not being reseted properly when playing the same track
|
|
|
|
|
multiple times in a row
|
|
|
|
|
- Fixed synchronized start/stop radio buttons for all custom radios (#103)
|
|
|
|
|
- Fixed typo and missing icon on homepage (#96)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation:
|
|
|
|
|
|
|
|
|
|
- Up-to-date and complete development and contribution instructions in
|
|
|
|
|
README.rst (#123)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.6.1 (2018-03-06)
|
2018-03-06 20:56:01 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Can now skip acoustid on file import with the --no-acoustid flag (#111)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Added missing batch id in output during import (#112)
|
|
|
|
|
- Added some feedback on the play button (#100)
|
|
|
|
|
- Smarter pagination which takes a fixed size (#84)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other:
|
|
|
|
|
|
|
|
|
|
- Completely removed django-cachalot from the codebase (#110). You can safely
|
|
|
|
|
remove the CACHALOT_ENABLED setting from your .env file
|
|
|
|
|
|
|
|
|
|
|
2018-03-04 14:16:35 +00:00
|
|
|
|
0.6 (2018-03-04)
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Basic activity stream for listening and favorites (#23)
|
|
|
|
|
- Switched to django-channels and daphne for serving HTTP and websocket (#34)
|
|
|
|
|
|
|
|
|
|
Upgrades notes
|
|
|
|
|
**************
|
|
|
|
|
|
|
|
|
|
This version contains breaking changes in the way funkwhale is deployed,
|
|
|
|
|
please read the notes carefully.
|
|
|
|
|
|
|
|
|
|
Instance timeline
|
|
|
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
A new "Activity" page is now available from the sidebar, where you can
|
|
|
|
|
browse your instance activity. At the moment, this includes other users
|
|
|
|
|
favorites and listening, but more activity types will be implemented in the
|
|
|
|
|
future.
|
|
|
|
|
|
|
|
|
|
Internally, we implemented those events by following the Activity Stream
|
|
|
|
|
specification, which will help us to be compatible with other networks
|
|
|
|
|
in the long-term.
|
|
|
|
|
|
|
|
|
|
A new settings page has been added to control the visibility of your activity.
|
|
|
|
|
By default, your activity will be browsable by anyone on your instance,
|
|
|
|
|
but you can switch to a full private mode where nothing is shared.
|
|
|
|
|
|
|
|
|
|
The setting form is available in your profile.
|
|
|
|
|
|
|
|
|
|
Switch from gunicorn to daphne
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
This release include an important change in the way we serve the HTTP API.
|
|
|
|
|
To prepare for new realtime features and enable websocket support in Funkwhale,
|
|
|
|
|
we are now using django-channels and daphne to serve HTTP and websocket traffic.
|
|
|
|
|
|
|
|
|
|
This replaces gunicorn and the switch should be easy assuming you
|
|
|
|
|
follow the upgrade process described bellow.
|
|
|
|
|
|
|
|
|
|
If you are using docker, please remove the command instruction inside the
|
|
|
|
|
api service, as the up-to-date command is now included directly in the image
|
|
|
|
|
as the default entry point:
|
|
|
|
|
|
|
|
|
|
.. code-block:: yaml
|
|
|
|
|
|
|
|
|
|
api:
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
image: funkwhale/funkwhale:${FUNKWHALE_VERSION:-latest}
|
|
|
|
|
command: ./compose/django/gunicorn.sh # You can remove this line
|
|
|
|
|
|
|
|
|
|
On non docker setups, you'll have to update the [Service] block of your
|
|
|
|
|
funkwhale-server systemd unit file to launch the application server using daphne instead of gunicorn.
|
|
|
|
|
|
|
|
|
|
The new configuration should be similar to this:
|
|
|
|
|
|
|
|
|
|
.. code-block:: ini
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
User=funkwhale
|
|
|
|
|
# adapt this depending on the path of your funkwhale installation
|
|
|
|
|
WorkingDirectory=/srv/funkwhale/api
|
|
|
|
|
EnvironmentFile=/srv/funkwhale/config/.env
|
|
|
|
|
ExecStart=/usr/local/bin/daphne -b ${FUNKWHALE_API_IP} -p ${FUNKWHALE_API_PORT} config.asgi:application
|
|
|
|
|
|
|
|
|
|
Ensure you update funkwhale's dependencies as usual to install the required
|
|
|
|
|
packages.
|
|
|
|
|
|
|
|
|
|
On both docker and non-docker setup, you'll also have to update your nginx
|
|
|
|
|
configuration for websocket support. Ensure you have the following blocks
|
|
|
|
|
included in your virtualhost file:
|
|
|
|
|
|
|
|
|
|
.. code-block:: txt
|
|
|
|
|
|
|
|
|
|
map $http_upgrade $connection_upgrade {
|
|
|
|
|
default upgrade;
|
|
|
|
|
'' close;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
server {
|
|
|
|
|
...
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
|
|
|
proxy_set_header Connection $connection_upgrade;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Remember to reload your nginx server after the edit.
|
|
|
|
|
|
|
|
|
|
|
2018-02-28 18:29:31 +00:00
|
|
|
|
0.5.4 (2018-02-28)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Now stop running radio when clearing queue (#98)
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Fixed queue skipping tracks (#91)
|
|
|
|
|
- Now loop properly on queue when we only have one track (#95)
|
|
|
|
|
|
|
|
|
|
|
2018-02-27 22:10:23 +00:00
|
|
|
|
0.5.3 (2018-02-27)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Added admin interface for radios, track files, favorites and import requests (#80)
|
|
|
|
|
- Added basic instance stats on /about (#82)
|
|
|
|
|
- Search now unaccent letters for queries like "The Dø" or "Björk" yielding more results (#81)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Always use username in sidebar (#89)
|
|
|
|
|
- Click event outside of player icons (#83)
|
|
|
|
|
- Fixed broken import because of missing transaction
|
|
|
|
|
- Now always load next radio track on last queue track ended (#87)
|
|
|
|
|
- Now exclude tracks without file from radio candidates (#88)
|
|
|
|
|
- skip to next track properly on 40X errors (#86)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other:
|
|
|
|
|
|
|
|
|
|
- Switched to towncrier for changelog management and compilation
|
|
|
|
|
|
2018-02-26 20:39:22 +00:00
|
|
|
|
|
|
|
|
|
0.5.2 (2018-02-26)
|
|
|
|
|
------------------
|
|
|
|
|
|
2018-02-26 17:27:41 +00:00
|
|
|
|
- Fixed broken file import due to wrong url (#73)
|
|
|
|
|
- More accurate mimetype detection
|
2018-02-26 19:11:21 +00:00
|
|
|
|
- Fixed really small size on small screens
|
|
|
|
|
- Added masonry layout for artists, requests and radios (#68)
|
2018-02-26 20:20:24 +00:00
|
|
|
|
- We now have a favicon!
|
2018-02-26 20:31:39 +00:00
|
|
|
|
- Fixed truncated play icon (#65)
|
2018-02-26 17:27:41 +00:00
|
|
|
|
|
2018-02-24 17:07:51 +00:00
|
|
|
|
|
|
|
|
|
0.5.1 (2018-02-24)
|
|
|
|
|
------------------
|
|
|
|
|
|
2018-02-24 16:22:40 +00:00
|
|
|
|
- Front: Fixed broken ajax call on radio builder (#69)
|
2018-02-24 16:34:06 +00:00
|
|
|
|
- Front: Shuffle now restart next track from beginning (#70)
|
2018-02-24 16:55:05 +00:00
|
|
|
|
- Front: volume slider should now have the same style everywhere (#72)
|
2017-12-27 22:43:53 +00:00
|
|
|
|
|
2018-02-24 17:07:51 +00:00
|
|
|
|
|
2018-02-24 14:37:22 +00:00
|
|
|
|
0.5 (2018-02-24)
|
2018-02-18 13:48:38 +00:00
|
|
|
|
----------------
|
|
|
|
|
|
2018-02-18 14:08:18 +00:00
|
|
|
|
- Front: Now reset player colors when track has no cover (#46)
|
2018-02-19 20:20:38 +00:00
|
|
|
|
- Front: play button now disabled for unplayable tracks
|
2018-02-24 11:21:56 +00:00
|
|
|
|
- API: You can now enable or disable registration on the fly, via a preference (#58)
|
2018-02-24 13:40:55 +00:00
|
|
|
|
- Front: can now signup via the web interface (#35)
|
|
|
|
|
- Front: Fixed broken redirection on login
|
|
|
|
|
- Front: Fixed broken error handling on settings and login form
|
2018-02-19 20:20:38 +00:00
|
|
|
|
|
2018-02-24 14:30:20 +00:00
|
|
|
|
About page:
|
|
|
|
|
|
|
|
|
|
There is a brand new about page on instances (/about), and instance
|
|
|
|
|
owner can now provide a name, a short and a long description for their instance via the admin (/api/admin/dynamic_preferences/globalpreferencemodel/).
|
|
|
|
|
|
2018-02-19 20:20:38 +00:00
|
|
|
|
Transcoding:
|
|
|
|
|
|
|
|
|
|
Basic transcoding is now available to/from the following formats : ogg and mp3.
|
|
|
|
|
|
|
|
|
|
*This is still an alpha feature at the moment, please report any bug.*
|
|
|
|
|
|
|
|
|
|
This relies internally on FFMPEG and can put some load on your server.
|
|
|
|
|
It's definitely recommended you setup some caching for the transcoded files
|
|
|
|
|
at your webserver level. Check the the exemple nginx file at deploy/nginx.conf
|
|
|
|
|
for an implementation.
|
|
|
|
|
|
|
|
|
|
On the frontend, usage of transcoding should be transparent in the player.
|
2018-02-18 13:48:38 +00:00
|
|
|
|
|
2018-02-24 14:37:22 +00:00
|
|
|
|
Music Requests:
|
|
|
|
|
|
|
|
|
|
This release includes a new feature, music requests, which allows users
|
|
|
|
|
to request music they'd like to see imported.
|
|
|
|
|
Admins can browse those requests and mark them as completed when
|
|
|
|
|
an import is made.
|
|
|
|
|
|
2018-02-18 13:48:38 +00:00
|
|
|
|
0.4 (2018-02-18)
|
|
|
|
|
----------------
|
2018-01-07 21:27:34 +00:00
|
|
|
|
|
2018-02-18 13:37:33 +00:00
|
|
|
|
- Front: ambiant colors in player based on current track cover (#59)
|
|
|
|
|
- Front: simplified front dev setup thanks to webpack proxy (#59)
|
2018-02-15 18:59:55 +00:00
|
|
|
|
- Front: added some unittests for the store (#55)
|
|
|
|
|
- Front: fixed broken login redirection when 401
|
2018-02-17 16:30:21 +00:00
|
|
|
|
- Front: Removed autoplay on page reload
|
2018-02-17 20:30:04 +00:00
|
|
|
|
- API: Added a /instance/settings endpoint
|
|
|
|
|
- Front: load /instance/settings on page load
|
|
|
|
|
- Added settings to report JS and Python error to a Sentry instance
|
|
|
|
|
This is disabled by default, but feel free to enable it if you want
|
|
|
|
|
to help us by sending your error reports :) (#8)
|
2018-02-15 18:59:55 +00:00
|
|
|
|
|
2018-01-07 21:27:34 +00:00
|
|
|
|
|
2018-01-07 22:07:41 +00:00
|
|
|
|
0.3.5 (2018-01-07)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Smarter BACKEND_URL in frontend
|
|
|
|
|
|
|
|
|
|
|
2018-01-07 21:51:08 +00:00
|
|
|
|
0.3.4 (2018-01-07)
|
2018-01-07 21:49:20 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Fixed wrong URL construction in ajax call
|
2018-01-07 21:27:34 +00:00
|
|
|
|
|
|
|
|
|
|
2018-01-07 21:51:08 +00:00
|
|
|
|
0.3.3 (2018-01-07)
|
2017-12-27 22:36:42 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2018-01-07 21:15:02 +00:00
|
|
|
|
- Users can now create their own dynamic radios (#51)
|
|
|
|
|
|
2017-12-13 22:36:10 +00:00
|
|
|
|
|
2017-12-27 22:43:53 +00:00
|
|
|
|
0.3.2
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Fixed an issue in the main dockerfile
|
|
|
|
|
|
|
|
|
|
|
2017-12-27 22:36:42 +00:00
|
|
|
|
0.3.1
|
2017-12-27 22:32:02 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Revamped all import logic, everything is more tested and consistend
|
|
|
|
|
- Can now use Acoustid in file imports to automatically grab metadata from musicbrainz
|
|
|
|
|
- Brand new file import wizard
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2.7
|
2017-12-16 15:15:33 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2017-12-17 14:38:40 +00:00
|
|
|
|
- Shortcuts: can now use the ``f`` shortcut to toggle the currently playing track
|
|
|
|
|
as a favorite (#53)
|
|
|
|
|
- Shortcuts: avoid collisions between shortcuts by using the exact modifier (#53)
|
2017-12-17 16:07:15 +00:00
|
|
|
|
- Player: Added looping controls and shortcuts (#52)
|
2017-12-17 16:23:29 +00:00
|
|
|
|
- Player: Added shuffling controls and shortcuts (#52)
|
2017-12-17 19:08:49 +00:00
|
|
|
|
- Favorites: can now modify the ordering of track list (#50)
|
|
|
|
|
- Library: can now search/reorder results on artist browsing view (#50)
|
2017-12-26 20:28:56 +00:00
|
|
|
|
- Upgraded celery to 4.1, added endpoint logic for fingerprinting audio files
|
|
|
|
|
- Fixed #56: invalidate tokens on password change, also added change password form
|
|
|
|
|
- Fixed #57: now refresh jwt token on page refresh
|
|
|
|
|
- removed ugly dividers in batch import list
|
|
|
|
|
- Fixed a few padding issues
|
|
|
|
|
- Now persist/restore queue/radio/player state automatically
|
|
|
|
|
- Removed old broken imports
|
|
|
|
|
- Now force tests paths
|
|
|
|
|
- Fixed #54: Now use pytest everywhere \o/
|
|
|
|
|
- Now use vuex to manage state for favorites
|
|
|
|
|
- Now use vuex to manage state for authentication
|
|
|
|
|
- Now use vuex to manage state for player/queue/radios
|
2017-12-17 14:38:40 +00:00
|
|
|
|
|
2017-12-16 15:15:33 +00:00
|
|
|
|
|
2017-12-16 15:37:45 +00:00
|
|
|
|
0.2.6 (2017-12-15)
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
- Fixed broken Dockerfile
|
|
|
|
|
|
2017-12-16 15:15:33 +00:00
|
|
|
|
|
|
|
|
|
0.2.5 (2017-12-15)
|
2017-12-14 22:08:41 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2017-12-15 22:10:42 +00:00
|
|
|
|
Features:
|
|
|
|
|
|
2017-12-15 20:45:50 +00:00
|
|
|
|
- Import: can now specify search template when querying import sources (#45)
|
2017-12-15 21:23:56 +00:00
|
|
|
|
- Login form: now redirect to previous page after login (#2)
|
2017-12-15 21:45:33 +00:00
|
|
|
|
- 404: a decent 404 template, at least (#48)
|
2017-12-15 20:45:50 +00:00
|
|
|
|
|
2017-12-15 22:10:42 +00:00
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Player: better handling of errors when fetching the audio file (#46)
|
|
|
|
|
- Csrf: default CSRF_TRUSTED_ORIGINS to ALLOWED_HOSTS to avoid Csrf issues on admin (#49)
|
|
|
|
|
|
2017-12-16 14:24:00 +00:00
|
|
|
|
Tech:
|
|
|
|
|
|
|
|
|
|
- Django 2 compatibility, lot of packages upgrades (#47)
|
|
|
|
|
|
2017-12-14 22:08:41 +00:00
|
|
|
|
|
|
|
|
|
0.2.4 (2017-12-14)
|
2017-12-13 22:36:10 +00:00
|
|
|
|
------------------
|
|
|
|
|
|
2017-12-13 22:46:09 +00:00
|
|
|
|
Features:
|
|
|
|
|
|
|
|
|
|
- Models: now store relese group mbid on Album model (#7)
|
2017-12-14 22:06:21 +00:00
|
|
|
|
- Models: now bind import job to track files (#44)
|
2017-12-13 22:46:09 +00:00
|
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
|
|
|
|
|
|
- Library: fixen broken "play all albums" button on artist cards in Artist browsing view (#43)
|