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 0076719303..bff6dff2d1 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 5319b3c325..7ad37d53d6 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 736c8a24a3..0000000000
--- 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 822e5a7c6a..0000000000
--- 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 1cc36b4766..0000000000
--- 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 b1a717c36c..0000000000
--- 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 ae81a1d097..0000000000
--- 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 0b541d7c02..0000000000
--- 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 aa93ec351e..0000000000
--- 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 9ba0e1a205..0000000000
--- 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 87b4b3f3e0..0000000000
--- 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 cac26750e8..0000000000
--- 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 f297b4ce77..0000000000
--- 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 6579fd59cc..0000000000
--- 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 75deb476d6..0000000000
--- 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 21c7cd0bd3..0000000000
--- 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 3cd146d29f..0000000000
--- 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 ccde155401..0000000000
--- 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 f7bdad1308..0000000000
--- 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 9b5c20c727..0000000000
--- 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 a98dc80b2c..0000000000
--- 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 267dba9f73..0000000000
--- 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 306020d446..0000000000
--- 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 71eac47137..0000000000
--- a/changes/changelog.d/mr-template.misc
+++ /dev/null
@@ -1 +0,0 @@
-Added a merge request template and more documentation about the changelog
-- 
GitLab