From dc1e4fb0c709842dc2d5a2a60ab721a229daea4f Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Sun, 7 Oct 2018 11:53:09 +0200 Subject: [PATCH] Version bump and release for 0.17 --- CHANGELOG | 194 ++++++++++++++++++++++++++ api/funkwhale_api/__init__.py | 2 +- changes/changelog.d/194.feature | 14 -- changes/changelog.d/346.bugfix | 1 - changes/changelog.d/358.enhancement | 128 ----------------- changes/changelog.d/380.documentation | 1 - changes/changelog.d/406.enhancement | 1 - changes/changelog.d/408.enhancement | 1 - changes/changelog.d/435.bugfix | 1 - changes/changelog.d/436.bugfix | 1 - changes/changelog.d/463.feature | 9 -- changes/changelog.d/464.bugfix | 2 - changes/changelog.d/471.enhancement | 1 - changes/changelog.d/514.bugfix | 1 - changes/changelog.d/515.bugfix | 1 - changes/changelog.d/517.bugfix | 1 - changes/changelog.d/520.bugfix | 1 - changes/changelog.d/530.bugfix | 1 - changes/changelog.d/537.doc | 1 - changes/changelog.d/546.enhancement | 1 - changes/changelog.d/549.documentation | 1 - changes/changelog.d/551.enhancement | 1 - changes/changelog.d/559.bugfix | 1 - changes/changelog.d/mr-template.misc | 1 - 24 files changed, 195 insertions(+), 172 deletions(-) delete mode 100644 changes/changelog.d/194.feature delete mode 100644 changes/changelog.d/346.bugfix delete mode 100644 changes/changelog.d/358.enhancement delete mode 100644 changes/changelog.d/380.documentation delete mode 100644 changes/changelog.d/406.enhancement delete mode 100644 changes/changelog.d/408.enhancement delete mode 100644 changes/changelog.d/435.bugfix delete mode 100644 changes/changelog.d/436.bugfix delete mode 100644 changes/changelog.d/463.feature delete mode 100644 changes/changelog.d/464.bugfix delete mode 100644 changes/changelog.d/471.enhancement delete mode 100644 changes/changelog.d/514.bugfix delete mode 100644 changes/changelog.d/515.bugfix delete mode 100644 changes/changelog.d/517.bugfix delete mode 100644 changes/changelog.d/520.bugfix delete mode 100644 changes/changelog.d/530.bugfix delete mode 100644 changes/changelog.d/537.doc delete mode 100644 changes/changelog.d/546.enhancement delete mode 100644 changes/changelog.d/549.documentation delete mode 100644 changes/changelog.d/551.enhancement delete mode 100644 changes/changelog.d/559.bugfix delete mode 100644 changes/changelog.d/mr-template.misc diff --git a/CHANGELOG b/CHANGELOG index 00767193..bff6dff2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,200 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog. .. towncrier +0.17 (2018-10-07) +----------------- + +Per user libraries +^^^^^^^^^^^^^^^^^^ + +This release contains a big change in music management. This has a lot of impact +on how Funkwhale behaves, and you should have a look at +https://docs.funkwhale.audio/upgrading/0.17.html for information +about what changed and how to migrate. + + +Features: + +- Per user libraries (#463, also fixes #160 and #147) +- Authentication using a LDAP directory (#194) + + +Enhancements: + +- Add configuration option to set Musicbrainz hostname +- Add sign up link in the sidebar (#408) +- Added a library widget to display libraries associated with a track, album + and artist (#551) +- Ensure from_activity field is not required in django's admin (#546) +- Move setting link from profile page to the sidebar (#406) +- Simplified and less error-prone nginx setup (#358) + +Bugfixes: + +- Do not restart current song when rordering queue, deleting tracks from queue + or adding tracks to queue (#464) +- Fix broken icons in playlist editor (#515) +- Fixed a few untranslated strings (#559) +- Fixed splitted album when importing from federation (#346) +- Fixed toggle mute in volume bar does not restore previous volume level (#514) +- Fixed wrong env file URL and display bugs in deployment documentation (#520) +- Fixed wrong title in PlayButton (#435) +- Remove transparency on artist page button (#517) +- Set sane width default for ui cards and center play button (#530) +- Updated wrong icon and copy in play button dropdown (#436) + + +Documentation: + +- Fixed wrong URLs for docker / nginx files in documentation (#537) + + +Other: + +- Added a merge request template and more documentation about the changelog + + +Using a LDAP directory to authenticate to your Funkwhale instance +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Funkwhale now support LDAP as an authentication source: you can configure +your instance to delegate login to a LDAP directory, which is especially +useful when you have an existing directory and don't want to manage users +manually. + +You can use this authentication backend side by side with the classic one. + +Have a look at https://docs.funkwhale.audio/installation/ldap.html +for detailed instructions on how to set this up. + + +Simplified nginx setup [Docker: Manual action required] +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We've received a lot of user feedback regarding our installation process, +and it seems the proxy part is the one which is the most confusing and difficult. +Unfortunately, this is also the one where errors and mistakes can completely break +the application. + +To make things easier for everyone, we now offer a simplified deployment +process for the reverse proxy part. This will make upgrade of the proxy configuration +significantly easier on docker deployments. + +On non-docker instances, you have nothing to do. + +If you have a dockerized instance, here is the upgrade path. + +First, tweak your .env file:: + + # remove the FUNKWHALE_URL variable + # and add the next variables + FUNKWHALE_HOSTNAME=yourdomain.funkwhale + FUNKWHALE_PROTOCOL=https + + # add the following variable, matching the path your app is deployed + # leaving the default should work fine if you deployed using the same + # paths as the documentation + FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist + +Then, add the following block at the end of your docker-compose.yml file:: + + # existing services + api: + ... + celeryworker: + ... + + # new service + nginx: + image: nginx + env_file: + - .env + environment: + # Override those variables in your .env file if needed + - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-30M}" + volumes: + - "./nginx/funkwhale.template:/etc/nginx/conf.d/funkwhale.template:ro" + - "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro" + - "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:ro" + - "${MEDIA_ROOT}:${MEDIA_ROOT}:ro" + - "${STATIC_ROOT}:${STATIC_ROOT}:ro" + - "${FUNKWHALE_FRONTEND_PATH}:/frontend:ro" + ports: + # override those variables in your .env file if needed + - "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80" + command: > + sh -c "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\" + < /etc/nginx/conf.d/funkwhale.template + > /etc/nginx/conf.d/default.conf + && cat /etc/nginx/conf.d/default.conf + && nginx -g 'daemon off;'" + links: + - api + +By doing that, you'll enable a dockerized nginx that will automatically be +configured to serve your Funkwhale instance. + +Download the required configuration files for the nginx container: + +.. parsed-literal:: + + cd /srv/funkwhale + mkdir nginx + curl -L -o nginx/funkwhale.template "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/docker.nginx.template" + curl -L -o nginx/funkwhale_proxy.conf "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf" + +Update the funkwhale.conf configuration of your server's reverse-proxy:: + + # the file should match something like that, upgrade all variables + # between ${} to match the ones in your .env file, + # and your SSL configuration if you're not using let's encrypt + # The important thing is that you only have a single location block + # that proxies everything to your dockerized nginx. + + sudo nano /etc/nginx/sites-enabled/funkwhale.conf + upstream fw { + # depending on your setup, you may want to update this + server ${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}; + } + map $http_upgrade $connection_upgrade { + default upgrade; + '' close; + } + + server { + listen 80; + listen [::]:80; + server_name ${FUNKWHALE_HOSTNAME}; + location / { return 301 https://$host$request_uri; } + } + server { + listen 443 ssl; + listen [::]:443 ssl; + server_name ${FUNKWHALE_HOSTNAME}; + + # TLS + ssl_protocols TLSv1.2; + ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:10m; + ssl_certificate /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/privkey.pem; + + # HSTS + add_header Strict-Transport-Security "max-age=31536000"; + + location / { + include /etc/nginx/funkwhale_proxy.conf; + proxy_pass http://fw/; + } + } + +Check that your configuration is valid then reload: + + sudo nginx -t + sudo systemctl reload nginx + + 0.16.3 (2018-08-21) ------------------- diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py index 5319b3c3..7ad37d53 100644 --- a/api/funkwhale_api/__init__.py +++ b/api/funkwhale_api/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -__version__ = "0.16.3" +__version__ = "0.17" __version_info__ = tuple( [ int(num) if num.isdigit() else num diff --git a/changes/changelog.d/194.feature b/changes/changelog.d/194.feature deleted file mode 100644 index 736c8a24..00000000 --- a/changes/changelog.d/194.feature +++ /dev/null @@ -1,14 +0,0 @@ -Authentication using a LDAP directory (#194) - -Using a LDAP directory to authenticate to your Funkwhale instance -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Funkwhale now support LDAP as an authentication source: you can configure -your instance to delegate login to a LDAP directory, which is especially -useful when you have an existing directory and don't want to manage users -manually. - -You can use this authentication backend side by side with the classic one. - -Have a look at https://docs.funkwhale.audio/installation/ldap.html -for detailed instructions on how to set this up. diff --git a/changes/changelog.d/346.bugfix b/changes/changelog.d/346.bugfix deleted file mode 100644 index 822e5a7c..00000000 --- a/changes/changelog.d/346.bugfix +++ /dev/null @@ -1 +0,0 @@ -- Fixed splitted album when importing from federation (#346) diff --git a/changes/changelog.d/358.enhancement b/changes/changelog.d/358.enhancement deleted file mode 100644 index 1cc36b47..00000000 --- a/changes/changelog.d/358.enhancement +++ /dev/null @@ -1,128 +0,0 @@ -Simplified and less error-prone nginx setup (#358) - - -Simplified nginx setup [Docker: Manual action required] -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -We've received a lot of user feedback regarding our installation process, -and it seems the proxy part is the one which is the most confusing and difficult. -Unfortunately, this is also the one where errors and mistakes can completely break -the application. - -To make things easier for everyone, we now offer a simplified deployment -process for the reverse proxy part. This will make upgrade of the proxy configuration -significantly easier on docker deployments. - -On non-docker instances, you have nothing to do. - -If you have a dockerized instance, here is the upgrade path. - -First, tweak your .env file:: - - # remove the FUNKWHALE_URL variable - # and add the next variables - FUNKWHALE_HOSTNAME=yourdomain.funkwhale - FUNKWHALE_PROTOCOL=https - - # add the following variable, matching the path your app is deployed - # leaving the default should work fine if you deployed using the same - # paths as the documentation - FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/front/dist - -Then, add the following block at the end of your docker-compose.yml file:: - - # existing services - api: - ... - celeryworker: - ... - - # new service - nginx: - image: nginx - env_file: - - .env - environment: - # Override those variables in your .env file if needed - - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE-30M}" - volumes: - - "./nginx/funkwhale.template:/etc/nginx/conf.d/funkwhale.template:ro" - - "./nginx/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro" - - "${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:${MUSIC_DIRECTORY_SERVE_PATH-/srv/funkwhale/data/music}:ro" - - "${MEDIA_ROOT}:${MEDIA_ROOT}:ro" - - "${STATIC_ROOT}:${STATIC_ROOT}:ro" - - "${FUNKWHALE_FRONTEND_PATH}:/frontend:ro" - ports: - # override those variables in your .env file if needed - - "${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}:80" - command: > - sh -c "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\" - < /etc/nginx/conf.d/funkwhale.template - > /etc/nginx/conf.d/default.conf - && cat /etc/nginx/conf.d/default.conf - && nginx -g 'daemon off;'" - links: - - api - -By doing that, you'll enable a dockerized nginx that will automatically be -configured to serve your Funkwhale instance. - -Download the required configuration files for the nginx container: - -.. parsed-literal:: - - cd /srv/funkwhale - mkdir nginx - curl -L -o nginx/funkwhale.template "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/docker.nginx.template" - curl -L -o nginx/funkwhale_proxy.conf "https://code.eliotberriot.com/funkwhale/funkwhale/raw/|version|/deploy/funkwhale_proxy.conf" - -Update the funkwhale.conf configuration of your server's reverse-proxy:: - - # the file should match something like that, upgrade all variables - # between ${} to match the ones in your .env file, - # and your SSL configuration if you're not using let's encrypt - # The important thing is that you only have a single location block - # that proxies everything to your dockerized nginx. - - sudo nano /etc/nginx/sites-enabled/funkwhale.conf - upstream fw { - # depending on your setup, you may want to update this - server ${FUNKWHALE_API_IP}:${FUNKWHALE_API_PORT}; - } - map $http_upgrade $connection_upgrade { - default upgrade; - '' close; - } - - server { - listen 80; - listen [::]:80; - server_name ${FUNKWHALE_HOSTNAME}; - location / { return 301 https://$host$request_uri; } - } - server { - listen 443 ssl; - listen [::]:443 ssl; - server_name ${FUNKWHALE_HOSTNAME}; - - # TLS - ssl_protocols TLSv1.2; - ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA; - ssl_prefer_server_ciphers on; - ssl_session_cache shared:SSL:10m; - ssl_certificate /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/${FUNKWHALE_HOSTNAME}/privkey.pem; - - # HSTS - add_header Strict-Transport-Security "max-age=31536000"; - - location / { - include /etc/nginx/funkwhale_proxy.conf; - proxy_pass http://fw/; - } - } - -Check that your configuration is valid then reload: - - sudo nginx -t - sudo systemctl reload nginx diff --git a/changes/changelog.d/380.documentation b/changes/changelog.d/380.documentation deleted file mode 100644 index b1a717c3..00000000 --- a/changes/changelog.d/380.documentation +++ /dev/null @@ -1 +0,0 @@ -Document that server clock needs to be synced via NTP to avoid federation issues (#380) diff --git a/changes/changelog.d/406.enhancement b/changes/changelog.d/406.enhancement deleted file mode 100644 index ae81a1d0..00000000 --- a/changes/changelog.d/406.enhancement +++ /dev/null @@ -1 +0,0 @@ -Move setting link from profile page to the sidebar (#406) diff --git a/changes/changelog.d/408.enhancement b/changes/changelog.d/408.enhancement deleted file mode 100644 index 0b541d7c..00000000 --- a/changes/changelog.d/408.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add sign up link in the sidebar (#408) diff --git a/changes/changelog.d/435.bugfix b/changes/changelog.d/435.bugfix deleted file mode 100644 index aa93ec35..00000000 --- a/changes/changelog.d/435.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed wrong title in PlayButton (#435) diff --git a/changes/changelog.d/436.bugfix b/changes/changelog.d/436.bugfix deleted file mode 100644 index 9ba0e1a2..00000000 --- a/changes/changelog.d/436.bugfix +++ /dev/null @@ -1 +0,0 @@ -Updated wrong icon and copy in play button dropdown (#436) diff --git a/changes/changelog.d/463.feature b/changes/changelog.d/463.feature deleted file mode 100644 index 87b4b3f3..00000000 --- a/changes/changelog.d/463.feature +++ /dev/null @@ -1,9 +0,0 @@ -- Per user libraries (#463, also fixes #160 and #147) - -Per user libraries -^^^^^^^^^^^^^^^^^^ - -This release contains a big change in music management. This has a lot of impact -on how Funkwhale behaves, and you should have a look at -https://docs.funkwhale.audio/upgrading/0.17.html for information -about what changed and how to migrate. diff --git a/changes/changelog.d/464.bugfix b/changes/changelog.d/464.bugfix deleted file mode 100644 index cac26750..00000000 --- a/changes/changelog.d/464.bugfix +++ /dev/null @@ -1,2 +0,0 @@ -Do not restart current song when rordering queue, deleting tracks from queue or -adding tracks to queue (#464) diff --git a/changes/changelog.d/471.enhancement b/changes/changelog.d/471.enhancement deleted file mode 100644 index f297b4ce..00000000 --- a/changes/changelog.d/471.enhancement +++ /dev/null @@ -1 +0,0 @@ -Add configuration option to set Musicbrainz hostname diff --git a/changes/changelog.d/514.bugfix b/changes/changelog.d/514.bugfix deleted file mode 100644 index 6579fd59..00000000 --- a/changes/changelog.d/514.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed toggle mute in volume bar does not restore previous volume level (#514) diff --git a/changes/changelog.d/515.bugfix b/changes/changelog.d/515.bugfix deleted file mode 100644 index 75deb476..00000000 --- a/changes/changelog.d/515.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix broken icons in playlist editor (#515) diff --git a/changes/changelog.d/517.bugfix b/changes/changelog.d/517.bugfix deleted file mode 100644 index 21c7cd0b..00000000 --- a/changes/changelog.d/517.bugfix +++ /dev/null @@ -1 +0,0 @@ -Remove transparency on artist page button (#517) diff --git a/changes/changelog.d/520.bugfix b/changes/changelog.d/520.bugfix deleted file mode 100644 index 3cd146d2..00000000 --- a/changes/changelog.d/520.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed wrong env file URL and display bugs in deployment documentation (#520) diff --git a/changes/changelog.d/530.bugfix b/changes/changelog.d/530.bugfix deleted file mode 100644 index ccde1554..00000000 --- a/changes/changelog.d/530.bugfix +++ /dev/null @@ -1 +0,0 @@ -Set sane width default for ui cards and center play button (#530) diff --git a/changes/changelog.d/537.doc b/changes/changelog.d/537.doc deleted file mode 100644 index f7bdad13..00000000 --- a/changes/changelog.d/537.doc +++ /dev/null @@ -1 +0,0 @@ -Fixed wrong URLs for docker / nginx files in documentation (#537) diff --git a/changes/changelog.d/546.enhancement b/changes/changelog.d/546.enhancement deleted file mode 100644 index 9b5c20c7..00000000 --- a/changes/changelog.d/546.enhancement +++ /dev/null @@ -1 +0,0 @@ -Ensure from_activity field is not required in django's admin (#546) diff --git a/changes/changelog.d/549.documentation b/changes/changelog.d/549.documentation deleted file mode 100644 index a98dc80b..00000000 --- a/changes/changelog.d/549.documentation +++ /dev/null @@ -1 +0,0 @@ -Technical documentation of music federation (#549) diff --git a/changes/changelog.d/551.enhancement b/changes/changelog.d/551.enhancement deleted file mode 100644 index 267dba9f..00000000 --- a/changes/changelog.d/551.enhancement +++ /dev/null @@ -1 +0,0 @@ -Added a library widget to display libraries associated with a track, album and artist (#551) diff --git a/changes/changelog.d/559.bugfix b/changes/changelog.d/559.bugfix deleted file mode 100644 index 306020d4..00000000 --- a/changes/changelog.d/559.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed a few untranslated strings (#559) diff --git a/changes/changelog.d/mr-template.misc b/changes/changelog.d/mr-template.misc deleted file mode 100644 index 71eac471..00000000 --- a/changes/changelog.d/mr-template.misc +++ /dev/null @@ -1 +0,0 @@ -Added a merge request template and more documentation about the changelog -- GitLab