Verified Commit 5836166d authored by Jeff's avatar Jeff
Browse files

merged upstream

parents 9b611df1 0f397f0e
Pipeline #19552 passed with stages
in 58 minutes and 30 seconds
......@@ -8,16 +8,16 @@ variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/pip-cache"
PYTHONDONTWRITEBYTECODE: "true"
REVIEW_DOMAIN: preview.funkwhale.audio
REVIEW_INSTANCE_URL: https://demo.funkwhale.audio
REVIEW_INSTANCE_URL: https://funkwhale.juniorjpdj.pl
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
BUILD_PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7
stages:
- build
- review
- lint
- build
- test
- deploy
- deps
......@@ -25,13 +25,14 @@ stages:
review_front:
interruptible: true
stage: review
image: node:12-buster
image: node:16-buster
when: manual
allow_failure: true
variables:
BASE_URL: /-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/front-review/
VUE_APP_ROUTER_BASE_URL: /-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/front-review/
VUE_APP_INSTANCE_URL: $REVIEW_INSTANCE_URL
NODE_ENV: review
before_script:
- curl -L -o /usr/local/bin/jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64
- chmod +x /usr/local/bin/jq
......@@ -40,10 +41,9 @@ review_front:
- cd front
script:
- yarn install
- yarn run i18n-compile
# this is to ensure we don't have any errors in the output,
# cf https://dev.funkwhale.audio/funkwhale/funkwhale/issues/169
- yarn run build | tee /dev/stderr | (! grep -i 'ERROR in')
- yarn run build --base ./ | tee /dev/stderr | (! grep -i 'ERROR in')
- cp -r dist/* ../front-review
artifacts:
expire_in: 2 weeks
......@@ -76,7 +76,7 @@ review_docs:
- cd docs
- apt-get update
- apt-get install -y graphviz
- pip install sphinx sphinx_rtd_theme django-environ django
- pip install sphinx sphinx_rtd_theme django-environ django myst-parser sphinx-panels
script:
- ./build_docs.sh
cache:
......@@ -95,6 +95,23 @@ review_docs:
name: review/docs/$CI_COMMIT_REF_NAME
url: http://$CI_PROJECT_NAMESPACE.pages.funkwhale.audio/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/docs-review/index.html
changelog_snippet:
interruptible: true
image: alpine:3.15
stage: lint
before_script:
- apk add git
- git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
script:
- git diff --name-only FETCH_HEAD | grep "changes/changelog.d/*"
rules:
- if: $CI_COMMIT_AUTHOR == 'Renovate Bot <bot@dev.funkwhale.audio>'
when: never
- if: $CI_MERGE_REQUEST_TITLE =~ /NOCHANGELOG/
when: never
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
black:
interruptible: true
image: python:3.6
......@@ -102,12 +119,9 @@ black:
variables:
GIT_STRATEGY: fetch
before_script:
- pip install black==19.10b0
- pip install black
script:
- black --check --diff api/
only:
changes:
- api/**/*
- black --check --diff .
flake8:
interruptible: true
......@@ -123,38 +137,28 @@ flake8:
key: "$CI_PROJECT_ID__flake8_pip_cache"
paths:
- "$PIP_CACHE_DIR"
only:
changes:
- api/**/*
eslint:
interruptible: true
image: node:12-buster
image: node:16-buster
stage: lint
allow_failure: true
before_script:
- cd front
- yarn install
script:
# We search for all files ending with .vue or .js in src which changed in relation to develop
# and lint them. This way we focus on some errors instead of checking the hole repository
- export changedFiles=$(git diff --relative --name-only --diff-filter=d origin/develop -- src/ | grep -E "\.(vue|js)$")
- yarn run eslint --quiet -f table $(echo $changedFiles | tr '\n' ' ')
- yarn lint --max-warnings 0
cache:
key: "$CI_PROJECT_ID__eslint_npm_cache"
paths:
- front/node_modules
only:
changes:
- front/**/*
test_api:
interruptible: true
services:
- postgres:11
- redis:5
- postgres:14
- redis:6
stage: test
image: $CI_REGISTRY/funkwhale/backend-test-docker:latest
retry: 1
cache:
key: "$CI_PROJECT_ID__pip_cache"
paths:
......@@ -168,15 +172,11 @@ test_api:
only:
refs:
- branches
changes:
- api/**/*
before_script:
- cd api
- pip3 install -r requirements/base.txt
- pip3 install -r requirements/local.txt
- pip3 install -r requirements/test.txt
- poetry install --no-root
script:
- pytest --cov-report xml --cov-report term-missing:skip-covered --cov=funkwhale_api --junitxml=report.xml tests/
- poetry run pytest --cov-report xml --cov-report term-missing:skip-covered --cov=funkwhale_api --junitxml=report.xml tests/
tags:
- docker
artifacts:
......@@ -184,18 +184,20 @@ test_api:
reports:
junit: api/report.xml
cobertura: api/coverage.xml
parallel:
matrix:
- PY_VER: ["3.7", "3.8", "3.9", "3.10"]
image: $CI_REGISTRY/funkwhale/backend-test-docker:$PY_VER
test_front:
interruptible: true
stage: test
image: node:12-buster
image: node:16-buster
before_script:
- cd front
only:
refs:
- branches
changes:
- front/**/*
script:
- yarn install --check-files
- yarn test:unit
......@@ -213,9 +215,38 @@ test_front:
tags:
- docker
build_docs:
stage: build
image: $CI_REGISTRY/funkwhale/backend-test-docker:latest
services:
- postgres:14
- redis:6
cache:
key: "$CI_PROJECT_ID__pip_cache"
paths:
- "$PIP_CACHE_DIR"
variables:
DATABASE_URL: "postgresql://postgres@postgres/postgres"
FUNKWHALE_URL: "https://funkwhale.ci"
DJANGO_SETTINGS_MODULE: config.settings.local
POSTGRES_HOST_AUTH_METHOD: trust
CACHE_URL: "redis://redis:6379/0"
before_script:
- cd api
- pip3 install poetry
- poetry install
- poetry run python manage.py migrate
script:
- poetry run python manage.py spectacular --file ../docs/schema.yml
tags:
- docker
artifacts:
paths:
- docs/schema.yml
build_front:
stage: build
image: node:12-buster
image: node:16-buster
before_script:
- curl -L -o /usr/local/bin/jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64
- chmod +x /usr/local/bin/jq
......@@ -225,7 +256,7 @@ build_front:
- yarn run i18n-compile
# this is to ensure we don't have any errors in the output,
# cf https://dev.funkwhale.audio/funkwhale/funkwhale/issues/169
- yarn build | tee /dev/stderr | (! grep -i 'ERROR in')
- yarn run build:deployment | tee /dev/stderr | (! grep -i 'ERROR in')
- chmod -R 755 dist
artifacts:
name: "front_${CI_COMMIT_REF_NAME}"
......@@ -248,7 +279,7 @@ pages:
- cd docs
- apt-get update
- apt-get install -y graphviz
- pip install sphinx sphinx_rtd_theme django-environ django
- pip install sphinx sphinx_rtd_theme django-environ django myst-parser sphinx-panels
script:
- ./build_docs.sh
cache:
......@@ -284,11 +315,11 @@ docker_publish_stable_release:
script:
# Check if this is the latest release
- ./docs/get-releases-json.py | scripts/is-docker-latest.py $CI_COMMIT_TAG - && export DOCKER_LATEST_TAG="-t $IMAGE_LATEST" || export DOCKER_LATEST_TAG=;
- export major="$(echo $CI_COMMIT_REF_NAME | cut -d '.' -f 1)"
- export minor="$(echo $CI_COMMIT_REF_NAME | cut -d '.' -f 1,2)"; fi
- export major="$(echo $CI_COMMIT_REF_NAME | cut -d '.' -f 1)"
- export minor="$(echo $CI_COMMIT_REF_NAME | cut -d '.' -f 1,2)"
- cd api
- docker buildx create --use --name A$CI_COMMIT_SHORT_SHA
- docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE -t $DOCKER_LATEST_TAG -t $IMAGE_NAME:$major -t $IMAGE_NAME:$minor .
- docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE $DOCKER_LATEST_TAG -t $IMAGE_NAME:$major -t $IMAGE_NAME:$minor .
docker_publish_unstable_release:
# Publish a docker image for releases
......@@ -316,6 +347,7 @@ docker_published_non-release:
docker_all_in_one_release:
stage: deploy
image: egon0/docker-with-buildx-and-git:bash
allow_failure: true
services:
- docker:20-dind
variables:
......@@ -361,29 +393,3 @@ build_api:
- master@funkwhale/funkwhale
- stable@funkwhale/funkwhale
- develop@funkwhale/funkwhale
check_api_dependencies:
interruptible: true
stage: deps
image: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
cache:
key: "$CI_PROJECT_ID__pip_cache"
paths:
- "$PIP_CACHE_DIR"
variables:
DJANGO_SETTINGS_MODULE: config.settings.local
POSTGRES_HOST_AUTH_METHOD: trust
only:
- branches
before_script:
- apk add make git gcc python3-dev musl-dev
- apk add postgresql-dev py3-psycopg2 libldap libffi-dev make zlib-dev jpeg-dev openldap-dev
- cd api
- pip3 install -r requirements/base.txt
- pip3 install -r requirements/local.txt
- pip3 install -r requirements/test.txt
script:
- $CI_PROJECT_DIR/scripts/check-api-deps.sh
tags:
- docker
allow_failure: true
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"prConcurrentLimit": 1,
"ignoreDeps": ["$CI_REGISTRY/funkwhale/backend-test-docker"],
"rangeStrategy": "pin",
"lockFileMaintenance": { "enabled": true },
"dependencyDashboard": true,
"baseBranches": ["stable", "develop"],
"semanticCommits": "disabled",
"packageRules": [
{
"matchUpdateTypes": ["major", "minor"],
"matchBaseBranches": ["stable"],
"enabled": false
},
{
"matchDepTypes": ["devDependencies"],
"matchBaseBranches": ["stable"],
"enabled": false
},
{
"matchUpdateTypes": ["patch", "pin", "digest"],
"matchBaseBranches": ["develop"],
"automerge": true
}
]
}
......@@ -3,13 +3,305 @@ Changelog
You can subscribe to release announcements by:
- Following `funkwhale@mastodon.eliotberriot.com <https://mastodon.eliotberriot.com/@funkwhale>`_ on Mastodon
- Following `@funkwhale@fosstodon.org <https://fosstodon.org/@funkwhale>`_ on Mastodon
- Subscribing to the following Atom feed: https://dev.funkwhale.audio/funkwhale/funkwhale/commits/develop?format=atom&search=Merge+tag
This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.html.
.. towncrier
1.2.2 (2022-02-04)
------------------
Upgrade instructions are available at
https://docs.funkwhale.audio/admin/upgrading.html
Bugfixes:
- Fix an issue where the tracks tab in a library doesn't show any tracks (#1683)
- Fix an issue with the embedded player not showing any content (#1675)
- Fix broken instance description if it contains a line break #1673
Dependency Updates:
Update dependency vue-template-compiler to 2.6.14
Update dependency vue to ^2.6.14
Update dependency vuex-persistedstate to ^2.7.1
Update dependency vuedraggable to ^2.24.3
Update dependency vue-lazyload to ^1.3.3
Update dependency vue-plyr to ^5.1.3
Update dependency vue-upload-component to ^2.8.22
Update dependency vue-gettext to ^2.1.12
Update dependency showdown to ^1.9.1
Update dependency js-logger to ^1.6.1
Update dependency register-service-worker to ^1.7.2
Update dependency howler to ^2.2.3
Update dependency fomantic-ui-css to ^2.8.8
Update dependency diff to ^4.0.2
Update dependency axios-auth-refresh to ^2.2.8
Contributors to our Issues:
- Ciarán Ainsworth
- Georg Krause
- JuniorJPDJ
- Marcos Peña
- Mathieu Jourdan
- Micha Gläß-Stöcker
- Ricardo
- petitminion
Contributors to our Merge Requests:
- Ciarán Ainsworth
- Georg Krause
- JuniorJPDJ
- Marcos Peña
Committers
- Ciarán Ainsworth
- Georg Krause
- JuniorJPDJ
- Keunes
- Marcos Peña
1.2.1 (2022-01-06)
------------------
Upgrade instructions are available at
https://docs.funkwhale.audio/admin/upgrading.html
Bugfixes:
- Fix Pipeline for stable release builds (#1652)
- Fix remote content page (#1655)
Contributors to our Issues:
Ciarán Ainsworth
Georg Krause
Jakob Schürz
Mathieu Jourdan
Micha Gläß-Stöcker
petitminion
Contributors to our Merge Requests:
Georg Krause
Committers:
Dignified Silence
Georg Krause
JuniorJPDJ
nztvar
1.2.0 (2021-12-27)
------------------
Upgrade instructions are available at
https://docs.funkwhale.audio/admin/upgrading.html
Due to a bug in our CI Pipeline frontend artifacts are not available at
https://dev.funkwhale.audio/funkwhale/funkwhale/builds/artifacts/1.2.0/download?job=build_front as they would usually.
Please use this URL to get your frontend build: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/81069/artifacts/download
If you are running the All-in-One-Container since a longer time, you probably need to manually migrate your database information. If thats the case, you will get a message like this:
`DETAIL: The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 13.5.`
Make sure the Funkwhale version is set to `1.1.4` in `docker-compose.yml`. Now you can run this command to dump the database into a file:
`docker-compose exec -T funkwhale pg_dump -c -U funkwhale > "db.dump"`
Now you can update the Funkwhale version in `docker-compose.yml` to `1.2.0`. Additionally you should save your `data` directory, eg by running `mv data data.bak && mkdir data`. Stop Funkwhale and start it again with the new version, by using `docker-compose down && docker-compose up -d`. This will initialize a fresh DB and applies all migrations. Now you can restore your database with the following command: `cat db.dump | docker-compose exec -T funkwhale psql -U funkwhale`. Thats it, enjoy!
Features:
- Implemented awesome recently added radio (part of #1390)
- Rework the instance about page (#1376)
- Made changes to the track table to make it more visibly pleasing
Enhancements:
- Add linting for Frontend code (#1602)
- Add xmlns:content to feed schemas fixes #1535
- Add a Maloja plugin to submit listenings
- Add artist cover art in subsonic API response (#1528)
- Allow listen activities privacy level to be set public
- Allow running multi-container setup on non-root user inside docker (!1375) (fixes #1334)
- Change volume dynamic range from 60dB to 40dB (fixes #1544)
- Change Start Radio to Play Radio (#1400)
- Display toast when subsonic password is copied (#1496)
- Expose more metadata in Subsonic's getAlbumList endpoint (#623)
- ListenBrainz: Submit media player and submission client information
- Make "play in list" the default when interacting with individual tracks (#1274)
- Prevent an uncontrolled exception when uploading a file without tags, and prints user friendly message (1275)
- Remove deprecated JWT Authentication (#1108) (1108)
- Remove Raven SDK to report errors to Sentry (#1425) (1425)
- Replace psycopg2-binary with psycopg2 (#1513)
Bugfixes:
- Add worker-src to nginx header to prevent issues (#1489)
- Enable stepless adjustment of the volume slider (!1294)
- Fix an error in a Subsonic methods that return lists of numbers/strings like getUser
- Fix showing too long radio descriptions (#1556)
- Fix X-Frame-Options HTTP header for embed and force it to SAMEORIGIN value for other pages (fix #1022)
- Fix before last track starts playing when last track removed (#1485)
- Fix delete account button is not disalbed when missing password (#1591)
- Fix omputed properties already defined in components data (#1649)
- Fix the all in one docker image building process, related to #1503
- Fix crash in album moderation interface when missing cover (#1474)
- Fix subsonic scrobble not triggering plugin hook (#1416)
- Improve formatting of RSS episode descriptions (#1405)
- Only suggest typed tag once if it already exists
- Partially fixed playing two tracks at same time (#1213)
- Revert changes that break mobile browser playback (#1509)
- Sanitize remote tracks' saving locations with slashes on their names (#1435)
- Show embed option for channel tracks (#1278)
- Store volume in logarithmic scale and convert when setting it to audio (fixes #1543)
- Use global Howler volume instead of setting it separatly for each track (fixes #1542)
Documentation:
- Add email configuration to the documentation (#1481)
- Add server uninstallation documentation (\!1314)
- Document location of cli env file on macOS (\!1354)
- Fix broken backup documentation (#1345)
- Refactore installation documentation and other small documentation adjustments (\!1314)
- Add User documentation for built-in plugins
Other:
- Create stable branch, master is now deprecated and will be removed in 1.3 (#1476)
Committers:
Alexandra Parker
Alyssa Ross
appzer0
Arthur Brugière
Asier Iturralde Sarasola
bittin
Blopware
Brian McMillen
Christoph Pomaska
Ciaran Ainsworth
Ciarán Ainsworth
Classified
Connor Hay
Damian Szetela
David Marzal
Deleted User
Dignified Silence
Dominik Danelski
egon0
Erik Präntare
Georg Abenthung
Georgios B
Georgios Brellas
Georg Krause
ghose
greengekota
heyarne
ian Vatega
Janek
jovuit
JuniorJPDJ
Konstantinos G
manuelviens
Manuel Viens
Marcos
Marcos Peña
Martin Giger
Matthew J
Micha Gläß-Stöcker
petitminion
Petitminion
Philipp Wolfer
Porrumentzio
Quentin PAGÈS
Raphael Lullis
Riccardo Sacchetto
Romain Failliot
Rubén Cabrera
Ryan Harg
Sergio Varela
SpcCw
Stefano Pigozzi
Thomas
Tony Simoes
Tony Wasserka
vachan-maker
Virgile Robles
Contributors to our Issues:
AMoonRabbit
Agate
Antoine POPINEAU
Arthur Brugière
Ciarán Ainsworth
Connor Hay
Creak
David Marzal
Georg Krause
Gerhard Beck
Greg Poole
JuniorJPDJ
Kuba Orlik
Lunar Control
Marcos Peña
Mateusz Korzeniewski
Mathieu Jourdan
Micha Gläß-Stöcker
Philipp Wolfer
Porrumentzio
Thomas
Tony Wasserka
Ville Ranki
arkhi
heyarne
interfect
jovuit
mal
petitminion
vachan-maker
Contributors to our Merge Requests:
Agate
Arthur Brugière
Ciarán Ainsworth
Connor Hay
David Marzal
Distopico
Fanyx
Georg Abenthung
Georg Krause
Janek
JuniorJPDJ
Kasper Seweryn
Marcos Peña
Mathieu Jourdan
Matthew J.
Micha Gläß-Stöcker
Philipp Wolfer
Thomas
Tony Wasserka
heyarne
jovuit
petitminion
thanksd
1.1.4 (2021-08-02)
------------------
......
......@@ -76,6 +76,11 @@ This is already cover in the relevant documentations:
- https://docs.docker.com/install/
- https://docs.docker.com/compose/install/
.. note::
If you are on Fedora, know that you can't use `podman` or `moby-engine` to set up the development environment.
Stick to `docker-ce` and you'll be fine.
Cloning the project
^^^^^^^^^^^^^^^^^^^
......
......@@ -27,7 +27,7 @@ If you found a vulnerability in Funkwhale, please report it on our Gitlab instan
you have checked the ``This issue is confidential and should only be visible to team members with at least Reporter access.
`` box.
This will ensure only maintainers and developpers have access to the vulnerability. Thank you for your help!
This will ensure that only maintainers and developers have access to the vulnerability. Thank you for your help!
Translate
......@@ -38,4 +38,4 @@ Translators willing to help can refer to `TRANSLATORS <TRANSLATORS.rst>`_ for in
Code of Conduct
---------------
`Our Code of Conduct <https://funkwhale.audio/code-of-conduct/>`_ applies to all the community spaces, including our GitLab instance. Please, take a moment to read it.
`Our Code of Conduct <https://funkwhale.audio/en_GB/code-of-conduct/>`_ applies to all the community spaces, including our GitLab instance. Please, take a moment to read it.