1. 04 Aug, 2018 1 commit
  2. 31 Jul, 2018 2 commits
  3. 30 Jul, 2018 2 commits
  4. 29 Jul, 2018 3 commits
  5. 27 Jul, 2018 9 commits
  6. 26 Jul, 2018 2 commits
  7. 25 Jul, 2018 4 commits
  8. 24 Jul, 2018 9 commits
  9. 23 Jul, 2018 4 commits
  10. 22 Jul, 2018 4 commits
    • Eliot Berriot's avatar
      Fixed wrong title level in changelog · 3862034d
      Eliot Berriot authored
      3862034d
    • Eliot Berriot's avatar
      Added missing date in changelog · 6260ac64
      Eliot Berriot authored
      6260ac64
    • Eliot Berriot's avatar
      Merge tag '0.16' into develop · 6e9f40e3
      Eliot Berriot authored
      0.16 (unreleased)
      -----------------
      
      Upgrade instructions are available at
      https://docs.funkwhale.audio/upgrading.html
      
      Features:
      
      - Complete redesign of the library home and playlist pages (#284)
      - Expose ActivityPub actors for users (#317)
      - Implemented a basic but functionnal Github-like search on federated tracks
        list (#344)
      - Internationalized interface as well as translations for Arabic, French,
        Esperanto, Italian, Occitan, Polish, Portuguese and Swedish (#161, #167)
      - Users can now upload an avatar in their settings page (#257)
      
      Enhancements:
      
      - Added feedback when creating/updating radio (#302)
      - Apply restrictions to username characters during signup
      - Autoselect best language based on browser configuration (#386)
      - Can now order tracks on federated track list (#326)
      - Can now relaunch pending import jobs from the web interface (#323)
      - Ensure we do not display pagination on single pages (#334)
      - Ensure we have sane defaults for MEDIA_ROOT, STATIC_ROOT and
        MUSIC_DIRECTORY_PATH in the deployment .env file (#350)
      - Make some space for the volume slider to allow precise control (#318)
      - Removed django-cacheops dependency
      - Store track artist and album artist separately (#237) Better handling of
        tracks with a different artist than the album artist
      - The navigation bar of Library is now fixed (#375)
      - Use thumbnails for avatars and covers to reduce bandwidth
      
      Bugfixes:
      
      - Ensure 750 permissions on CI artifacts (#332)
      - Ensure images are not cropped in queue (#337)
      - Ensure we do not import artists with empty names (#351)
      - Fix notifications not closing when clicking on the cross (#366)
      - Fix the most annoying offset in the whole fediverse (#369)
      - Fixed persistent message in playlist modal (#304)
      - Fixed unfiltered results in favorites API (#384)
      - Raise a warning instead of crashing when getting a broken path in file import
        (#138)
      - Remove parallelization of uploads during import to avoid crashing small
        servers (#382)
      - Subsonic API login is now case insensitive (#339)
      - Validate Date header in HTTP Signatures (#328)
      
      Documentation:
      
      - Added troubleshotting and technical overview documentation (#256)
      - Arch Linux installation steps
      - Document that users can use Ultrasonic on Android (#316)
      - Fixed a couple of typos
      - Some cosmetic improvements to the doc
      
      i18n:
      
      - Arabic translation (!302)
      - Polish translation (!304)
      
      Library home and playlist page overhaul
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      The library home page have been completely redesigned to include:
      
      - other users activity (listenings, playlists and favorites)
      - recently imported albums
      
      We think this new version showcases more music in a more useful way, let us know
      what you think about it!
      
      The playlist page have been updated as well.
      
      Internationalized interface
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      After months of work, we're proud to announce our interface is now ready
      for internationalization.
      
      Translators have already started the work of translating Funkwhale in 8 different languages,
      and we're ready to add more as needed.
      
      You can easily get involved at https://translate.funkwhale.audio/engage/funkwhale/
      
      Better handling of tracks with a different artist than the album artist
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      Some tracks involve a different artist than the album artist (e.g. a featuring)
      and Funkwhale has been known to do weird things when importing such tracks, resulting
      in albums that contained a single track, for instance.
      
      The situation should be improved with this release, as Funkwhale is now able to
      store separately the track and album artist, and display it properly in the interface.
      
      Users now have an ActivityPub Actor [Manual action required]
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      In the process of implementing federation for user activity such as listening
      history, we are now making user profiles (a.k.a. ActivityPub actors) available through federation.
      
      This does not means the federation is working, but this is a needed step to implement it.
      
      Those profiles will be created automatically for new users, but you have to run a command
      to create them for existing users.
      
      On docker setups::
      
          docker-compose run --rm api python manage.py script create_actors --no-input
      
      On non-docker setups::
      
          python manage.py script create_actors --no-input
      
      This should only take a few seconds to run. It is safe to interrupt the process or rerun it multiple times.
      
      Image thumbnails [Manual action required]
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      To reduce bandwidth usage on slow or limited connexions and improve performance
      in general, we now use smaller images in the front-end. For instance, if you have
      an album cover with a 1000x1000 pixel size, we will create smaller
      versions of this image (50x50, 200x200, 400x400) and reference those resized version
      when we don't actually need the original image.
      
      Thumbnail will be created automatically for new objects, however, you have
      to launch a manual command to deal with existing ones.
      
      On docker setups::
      
          docker-compose run --rm api python manage.py script create_image_variations --no-input
      
      On non-docker setups::
      
          python manage.py script create_image_variations --no-input
      
      This should be quite fast but may take up to a few minutes depending on the number
      of albums you have in database. It is safe to interrupt the process or rerun it multiple times.
      
      Improved search on federated tracks list
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      Having a powerful but easy-to-use search is important but difficult to achieve, especially
      if you do not want to have a real complex search interface.
      
      Github does a pretty good job with that, using a structured but simple query system
      (See https://help.github.com/articles/searching-issues-and-pull-requests/#search-only-issues-or-pull-requests).
      
      This release implements a limited but working subset of this query system. You can use it only on the federated
      tracks list (/manage/federation/tracks) at the moment, but depending on feedback it will be rolled-out on other pages as well.
      
      This is the type of query you can run:
      
      - ``hello world``: search for "hello" and "world" in all the available fields
      - ``hello in:artist`` search for results where artist name is "hello"
      - ``spring in:artist,album`` search for results where artist name or album title contain "spring"
      - ``artist:hello`` search for results where artist name equals "hello"
      - ``artist:"System of a Down" domain:instance.funkwhale`` search for results where artist name equals "System of a Down" and inside "instance.funkwhale" library
      
      Ensure MEDIA_ROOT, STATIC_ROOT and MUSIC_DIRECTORY_* are set explicitely [Manual action required]
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      In our default .env file, MEDIA_ROOT and STATIC_ROOT were commented by default, causing
      some deployment issues on non-docker setups when people forgot to uncomment them.
      
      From now on, those variables are uncommented, and will also be used on docker setups
      to mount the volumes automatically in the docker-compose.yml file. This has been a source
      of headache as well in some deployments, where you had to update both the .env file and
      the compose file.
      
      This also applies to in-place paths (MUSIC_DIRECTORY_PATH and MUSIC_DIRECTORY_SERVE_PATH),
      whose values are now used directly to set up the proper Docker volumes.
      
      This will only affect new deployments though. If you want to benefit from this on an
      existing instance, do a backup of your ``.env`` and ``docker-compose.yml`` files and apply the following changes:
      
      - Ensure ``MEDIA_ROOT`` is uncommented in your .env file and match the absolute path where media files are stored
        on your host (``/srv/funkwhale/data/media`` by default)
      - Ensure ``STATIC_ROOT`` is uncommented in your .env file and match the absolute path where static files are stored
        on your host (``/srv/funkwhale/data/static`` by default)
      - If you use in-place import:
          - Ensure MUSIC_DIRECTORY_PATH is uncommented and set to ``/music``
          - Ensure MUSIC_DIRECTORY_SERVE_PATH is uncommented and set to the absolute path on your host were your music files
            are stored (``/srv/funkwhale/data/music`` by default)
      - Edit your docker-compose.yml file to reflect the changes:
          - Search for volumes (there should be two occurences) that contains ``/app/funkwhale_api/media`` on the right side, and
            replace the whole line with ``- "${MEDIA_ROOT}:${MEDIA_ROOT}"``
          - Search for a volume that contains ``/app/staticfiles`` on the right side, and
            replace the whole line with ``- "${STATIC_ROOT}:${STATIC_ROOT}"``
          - If you use in-place import, search for volumes (there should be two occurences) that contains ``/music:ro`` on the right side, and
            replace the whole line with ``- "${MUSIC_DIRECTORY_SERVE_PATH}:${MUSIC_DIRECTORY_PATH}:ro"``
      
      In the end, the ``volumes`` directives of your containers should look like that::
      
          ...
          celeryworker
            volumes:
              - "${MUSIC_DIRECTORY_SERVE_PATH}:${MUSIC_DIRECTORY_PATH}:ro"
              - "${MEDIA_ROOT}:${MEDIA_ROOT}"
          ...
          api:
            volumes:
              - "${MUSIC_DIRECTORY_SERVE_PATH}:${MUSIC_DIRECTORY_PATH}:ro"
              - "${MEDIA_ROOT}:${MEDIA_ROOT}"
              - "${STATIC_ROOT}:${STATIC_ROOT}"
              - ./front/dist:/frontend
          ...
      
      Removed Cacheops dependency
      ---------------------------
      
      We removed one of our dependency named django-cacheops. It was unly used in a few places,
      and not playing nice with other dependencies.
      
      You can safely remove this dependency in your environment with ``pip uninstall django-cacheops`` if you're
      not using docker.
      
      You can also safely remove any ``CACHEOPS_ENABLED`` setting from your environment file.
      6e9f40e3
    • Eliot Berriot's avatar
      Merge branch 'release/0.16' · f3ce4f44
      Eliot Berriot authored
      f3ce4f44