347 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			347 lines
		
	
	
		
			9.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
Changelog
 | 
						||
=========
 | 
						||
 | 
						||
.. towncrier
 | 
						||
 | 
						||
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)
 | 
						||
------------------
 | 
						||
 | 
						||
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
 | 
						||
 | 
						||
 | 
						||
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.
 | 
						||
 | 
						||
 | 
						||
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)
 | 
						||
 | 
						||
 | 
						||
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
 | 
						||
 | 
						||
 | 
						||
0.5.2 (2018-02-26)
 | 
						||
------------------
 | 
						||
 | 
						||
- Fixed broken file import due to wrong url (#73)
 | 
						||
- More accurate mimetype detection
 | 
						||
- Fixed really small size on small screens
 | 
						||
- Added masonry layout for artists, requests and radios (#68)
 | 
						||
- We now have a favicon!
 | 
						||
- Fixed truncated play icon (#65)
 | 
						||
 | 
						||
 | 
						||
0.5.1 (2018-02-24)
 | 
						||
------------------
 | 
						||
 | 
						||
- Front: Fixed broken ajax call on radio builder (#69)
 | 
						||
- Front: Shuffle now restart next track from beginning (#70)
 | 
						||
- Front: volume slider should now have the same style everywhere (#72)
 | 
						||
 | 
						||
 | 
						||
0.5 (2018-02-24)
 | 
						||
----------------
 | 
						||
 | 
						||
- Front: Now reset player colors when track has no cover (#46)
 | 
						||
- Front: play button now disabled for unplayable tracks
 | 
						||
- API: You can now enable or disable registration on the fly, via a preference (#58)
 | 
						||
- 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
 | 
						||
 | 
						||
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/).
 | 
						||
 | 
						||
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.
 | 
						||
 | 
						||
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.
 | 
						||
 | 
						||
0.4 (2018-02-18)
 | 
						||
----------------
 | 
						||
 | 
						||
- Front: ambiant colors in player based on current track cover (#59)
 | 
						||
- Front: simplified front dev setup thanks to webpack proxy (#59)
 | 
						||
- Front: added some unittests for the store (#55)
 | 
						||
- Front: fixed broken login redirection when 401
 | 
						||
- Front: Removed autoplay on page reload
 | 
						||
- 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)
 | 
						||
 | 
						||
 | 
						||
0.3.5 (2018-01-07)
 | 
						||
------------------
 | 
						||
 | 
						||
- Smarter BACKEND_URL in frontend
 | 
						||
 | 
						||
 | 
						||
0.3.4 (2018-01-07)
 | 
						||
------------------
 | 
						||
 | 
						||
- Fixed wrong URL construction in ajax call
 | 
						||
 | 
						||
 | 
						||
0.3.3 (2018-01-07)
 | 
						||
------------------
 | 
						||
 | 
						||
- Users can now create their own dynamic radios (#51)
 | 
						||
 | 
						||
 | 
						||
0.3.2
 | 
						||
------------------
 | 
						||
 | 
						||
- Fixed an issue in the main dockerfile
 | 
						||
 | 
						||
 | 
						||
0.3.1
 | 
						||
------------------
 | 
						||
 | 
						||
- 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
 | 
						||
------------------
 | 
						||
 | 
						||
- 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)
 | 
						||
- Player: Added looping controls and shortcuts (#52)
 | 
						||
- Player: Added shuffling controls and shortcuts (#52)
 | 
						||
- Favorites: can now modify the ordering of track list (#50)
 | 
						||
- Library: can now search/reorder results on artist browsing view (#50)
 | 
						||
- 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
 | 
						||
 | 
						||
 | 
						||
0.2.6 (2017-12-15)
 | 
						||
------------------
 | 
						||
 | 
						||
- Fixed broken Dockerfile
 | 
						||
 | 
						||
 | 
						||
0.2.5 (2017-12-15)
 | 
						||
------------------
 | 
						||
 | 
						||
Features:
 | 
						||
 | 
						||
- Import: can now specify search template when querying import sources (#45)
 | 
						||
- Login form: now redirect to previous page after login (#2)
 | 
						||
- 404: a decent 404 template, at least (#48)
 | 
						||
 | 
						||
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)
 | 
						||
 | 
						||
Tech:
 | 
						||
 | 
						||
- Django 2 compatibility, lot of packages upgrades (#47)
 | 
						||
 | 
						||
 | 
						||
0.2.4 (2017-12-14)
 | 
						||
------------------
 | 
						||
 | 
						||
Features:
 | 
						||
 | 
						||
- Models: now store relese group mbid on Album model (#7)
 | 
						||
- Models: now bind import job to track files (#44)
 | 
						||
 | 
						||
Bugfixes:
 | 
						||
 | 
						||
- Library: fixen broken "play all albums" button on artist cards in Artist browsing view (#43)
 |