From d299964c99960ecc460e808516aed2dbf3a07a6d Mon Sep 17 00:00:00 2001 From: Eliot Berriot Date: Sat, 19 May 2018 11:43:19 +0200 Subject: [PATCH] 0.13: Version bump and changelog --- CHANGELOG | 121 ++++++++++++++++++++++++++++ api/funkwhale_api/__init__.py | 2 +- changes/changelog.d/152.feature | 32 -------- changes/changelog.d/157.feature | 1 - changes/changelog.d/195.feature | 42 ---------- changes/changelog.d/196.bugfix | 1 - changes/changelog.d/197.bugfix | 1 - changes/changelog.d/198.bugfix | 1 - changes/changelog.d/199.bugfix | 1 - changes/changelog.d/200.enhancement | 1 - changes/changelog.d/201.bugfix | 1 - changes/changelog.d/204.bugfix | 1 - changes/changelog.d/205.enhancement | 1 - changes/changelog.d/206.feature | 17 ---- 14 files changed, 122 insertions(+), 101 deletions(-) delete mode 100644 changes/changelog.d/152.feature delete mode 100644 changes/changelog.d/157.feature delete mode 100644 changes/changelog.d/195.feature delete mode 100644 changes/changelog.d/196.bugfix delete mode 100644 changes/changelog.d/197.bugfix delete mode 100644 changes/changelog.d/198.bugfix delete mode 100644 changes/changelog.d/199.bugfix delete mode 100644 changes/changelog.d/200.enhancement delete mode 100644 changes/changelog.d/201.bugfix delete mode 100644 changes/changelog.d/204.bugfix delete mode 100644 changes/changelog.d/205.enhancement delete mode 100644 changes/changelog.d/206.feature diff --git a/CHANGELOG b/CHANGELOG index a8d5d23de..c53714488 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,6 +10,127 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog. .. towncrier +0.13 (2018-05-19) +----------------- + +Upgrade instructions are available at + https://docs.funkwhale.audio/upgrading.html + +Features: + +- Can now import and play flac files (#157) +- Simpler permission system (#152) +- Store file length, size and bitrate (#195) +- We now have a brand new instance settings interface in the front-end (#206) + + +Enhancements: + +- Disabled browsable HTML API in production (#205) +- Instances can now indicate on the nodeinfo endpoint if they want to remain + private (#200) + + +Bugfixes: + +- .well-known/nodeinfo endpoint can now answer to request with Accept: + application/json (#197) +- Fixed escaping issue of track name in playlist modal (#201) +- Fixed missing dot when downloading file (#204) +- In-place imported tracks with non-ascii characters don't break reverse-proxy + serving (#196) +- Removed Python 3.6 dependency (secrets module) (#198) +- Uplayable tracks are now properly disabled in the interface (#199) + + +Instance settings interface +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Prior to this release, the only way to update instance settings (such as +instance description, signup policy, federation configuration, etc.) was using +the admin interface provided by Django (the back-end framework which power the API). + +This interface worked, but was not really-user friendly and intuitive. + +Starting from this release, we now offer a dedicated interface directly +in the front-end. You can view and edit all your instance settings from here, +assuming you have the required permissions. + +This interface is available at ``/manage/settings` and via link in the sidebar. + + +Storage of bitrate, size and length in database +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Starting with this release, when importing files, Funkwhale will store +additional information about audio files: + +- Bitrate +- Size (in bytes) +- Duration + +This change is not retroactive, meaning already imported files will lack those +informations. The interface and API should work as before in such case, however, +we offer a command to deal with legacy files and populate the missing values. + +On docker setups: + +.. code-block:: shell + + docker-compose run --rm api python manage.py fix_track_files + + +On non-docker setups: + +.. code-block:: shell + + # from your activated virtualenv + python manage.py fix_track_files + +.. note:: + + The execution time for this command is proportional to the number of + audio files stored on your instance. This is because we need to read the + files from disk to fetch the data. You can run it in the background + while Funkwhale is up. + + It's also safe to interrupt this command and rerun it at a later point, or run + it multiple times. + + Use the --dry-run flag to check how many files would be impacted. + + +Simpler permission system +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Starting from this release, the permission system is much simpler. Up until now, +we were using Django's built-in permission system, which was working, but also +quite complex to deal with. + +The new implementation relies on simpler logic, which will make integration +on the front-end in upcoming releases faster and easier. + +If you have manually given permissions to users on your instance, +you can migrate those to the new system. + +On docker setups: + +.. code-block:: shell + + docker-compose run --rm api python manage.py script django_permissions_to_user_permissions --no-input + +On non-docker setups: + +.. code-block:: shell + + # in your virtualenv + python api/manage.py script django_permissions_to_user_permissions --no-input + +There is still no dedicated interface to manage user permissions, but you +can use the admin interface at ``/api/admin/users/user/`` for that purpose in +the meantime. + + 0.12 (2018-05-09) ----------------- diff --git a/api/funkwhale_api/__init__.py b/api/funkwhale_api/__init__.py index f8b8af412..b0d7cc517 100644 --- a/api/funkwhale_api/__init__.py +++ b/api/funkwhale_api/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -__version__ = '0.12' +__version__ = '0.13' __version_info__ = tuple([int(num) if num.isdigit() else num for num in __version__.replace('-', '.', 1).split('.')]) diff --git a/changes/changelog.d/152.feature b/changes/changelog.d/152.feature deleted file mode 100644 index a10225288..000000000 --- a/changes/changelog.d/152.feature +++ /dev/null @@ -1,32 +0,0 @@ -Simpler permission system (#152) - - -Simpler permission system -========================= - -Starting from this release, the permission system is much simpler. Up until now, -we were using Django's built-in permission system, which was working, but also -quite complex to deal with. - -The new implementation relies on simpler logic, which will make integration -on the front-end in upcoming releases faster and easier. - -If you have manually given permissions to users on your instance, -you can migrate those to the new system. - -On docker setups: - -.. code-block:: shell - - docker-compose run --rm api python manage.py script django_permissions_to_user_permissions --no-input - -On non-docker setups: - -.. code-block:: shell - - # in your virtualenv - python api/manage.py script django_permissions_to_user_permissions --no-input - -There is still no dedicated interface to manage user permissions, but you -can use the admin interface at ``/api/admin/users/user/`` for that purpose in -the meantime. diff --git a/changes/changelog.d/157.feature b/changes/changelog.d/157.feature deleted file mode 100644 index 0560541b5..000000000 --- a/changes/changelog.d/157.feature +++ /dev/null @@ -1 +0,0 @@ -Can now import and play flac files (#157) diff --git a/changes/changelog.d/195.feature b/changes/changelog.d/195.feature deleted file mode 100644 index 62411d8ef..000000000 --- a/changes/changelog.d/195.feature +++ /dev/null @@ -1,42 +0,0 @@ -Store file length, size and bitrate (#195) - - -Storage of bitrate, size and length in database -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Starting with this release, when importing files, Funkwhale will store -additional information about audio files: - -- Bitrate -- Size (in bytes) -- Duration - -This change is not retroactive, meaning already imported files will lack those -informations. The interface and API should work as before in such case, however, -we offer a command to deal with legacy files and populate the missing values. - -On docker setups: - -.. code-block:: shell - - docker-compose run --rm api python manage.py fix_track_files - - -On non-docker setups: - -.. code-block:: shell - - # from your activated virtualenv - python manage.py fix_track_files - -.. note:: - - The execution time for this command is proportional to the number of - audio files stored on your instance. This is because we need to read the - files from disk to fetch the data. You can run it in the background - while Funkwhale is up. - - It's also safe to interrupt this command and rerun it at a later point, or run - it multiple times. - - Use the --dry-run flag to check how many files would be impacted. diff --git a/changes/changelog.d/196.bugfix b/changes/changelog.d/196.bugfix deleted file mode 100644 index 655df7d79..000000000 --- a/changes/changelog.d/196.bugfix +++ /dev/null @@ -1 +0,0 @@ -In-place imported tracks non-ascii characters don't break reverse-proxy serving (#196) diff --git a/changes/changelog.d/197.bugfix b/changes/changelog.d/197.bugfix deleted file mode 100644 index d40182f54..000000000 --- a/changes/changelog.d/197.bugfix +++ /dev/null @@ -1 +0,0 @@ -.well-known/nodeinfo endpoint can now answer to request with Accept: application/json (#197) diff --git a/changes/changelog.d/198.bugfix b/changes/changelog.d/198.bugfix deleted file mode 100644 index dd2f4e8fc..000000000 --- a/changes/changelog.d/198.bugfix +++ /dev/null @@ -1 +0,0 @@ -Removed Python 3.6 dependency (secrets module) (#198) diff --git a/changes/changelog.d/199.bugfix b/changes/changelog.d/199.bugfix deleted file mode 100644 index 0dff4f9fe..000000000 --- a/changes/changelog.d/199.bugfix +++ /dev/null @@ -1 +0,0 @@ -Uplayable tracks are now properly disabled in the interface (#199) diff --git a/changes/changelog.d/200.enhancement b/changes/changelog.d/200.enhancement deleted file mode 100644 index 1e78b92f7..000000000 --- a/changes/changelog.d/200.enhancement +++ /dev/null @@ -1 +0,0 @@ -Instances can now indicate on the nodeinfo endpoint if they want to remain private (#200) diff --git a/changes/changelog.d/201.bugfix b/changes/changelog.d/201.bugfix deleted file mode 100644 index a0a25aa52..000000000 --- a/changes/changelog.d/201.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed escaping issue of track name in playlist modal (#201) diff --git a/changes/changelog.d/204.bugfix b/changes/changelog.d/204.bugfix deleted file mode 100644 index 370f1d837..000000000 --- a/changes/changelog.d/204.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fixed missing dot when downloading file (#204) diff --git a/changes/changelog.d/205.enhancement b/changes/changelog.d/205.enhancement deleted file mode 100644 index b44375b13..000000000 --- a/changes/changelog.d/205.enhancement +++ /dev/null @@ -1 +0,0 @@ -Disabled browsable HTML API in production (#205) diff --git a/changes/changelog.d/206.feature b/changes/changelog.d/206.feature deleted file mode 100644 index b334554fe..000000000 --- a/changes/changelog.d/206.feature +++ /dev/null @@ -1,17 +0,0 @@ -We now have a brand new instance settings interface in the front-end (#206) - - -Instance settings interface -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Prior to this release, the only way to update instance settings (such as -instance description, signup policy, federation configuration, etc.) was using -the admin interface provided by Django (the back-end framework which power the API). - -This interface worked, but was not really-user friendly and intuitive. - -Starting from this release, we now offer a dedicated interface directly -in the front-end. You can view and edit all your instance settings from here, -assuming you have the required permissions. - -This interface is available at ``/manage/settings` and via link in the sidebar.