funkwhale issueshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues2024-02-08T07:32:33Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2269Intermittent Playback Issue - First few seconds of track plays then immediate...2024-02-08T07:32:33ZAMoonRabbitIntermittent Playback Issue - First few seconds of track plays then immediately moves to next song<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue re...<!--
Hi there! You are reporting a bug on this project, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure your bug report is as useful as possible, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## Steps to reproduce
<!--
Describe the steps to reproduce the issue, like:
1. Visit the page at /artists/
2. Type that
3. Submit
-->
1. Queue up an album for playback
2. first song, and sometimes subsequent tracks, will play for a second before moving to the next track
3. Sometimes returning to the previous song will then play it in full
## What happens?
It looks like media fails to buffer correctly resulting in whatever is in the buffer playing and then calling the next track
`[.WebGL-0x10580037a300] GL_INVALID_FRAMEBUFFER_OPERATION: Framebuffer is incomplete: Attachment has zero size.`
Have also had the following events from console
```
useLogger.ts:71
[Sat, 23 Dec 2023 09:38:09 GMT] ERROR /assets/index-53eff6ae.js:34 O="",A=Math.min() >> AUDIO PLAY ERROR DOMException: The play() request was interrupted because the media was removed from the document.
ua
useLogger.ts:71
[Sat, 23 Dec 2023 09:38:09 GMT] ERROR /assets/index-53eff6ae.js:34 O="",A=Math.min() >> AUDIO PLAY ERROR DOMException: The play() request was interrupted because the media was removed from the document.
ua
```
## What is expected?
Track loaded and played in full
## Context
<!--
The version of your instance can be found on the footer : Source code (x.y)
-->
**Funkwhale version(s) affected**: 1.4.0
<!--
If relevant, share additional context here like:
- Browser type and version (for front-end bugs)
- Instance configuration (Docker/non-docker, nginx/apache as proxy, etc.)
- Error messages, screenshots and logs
-->
This is on top of radio track loading being fairly slow on my pod too. Especially when a 30 second track is loaded, the playtime is not enough and finishes before the next track is loaded.https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2268Update upload spec and API spec2024-01-05T04:04:49ZCiarán Ainsworthsporiff@funkwhale.audioUpdate upload spec and API specFollowing discussions with @wvffle, we need to expand on the description of the front <-> backend interaction in the upload process. We've workshopped a process that fits the flow of the new designs and come up with the following:
1. Cr...Following discussions with @wvffle, we need to expand on the description of the front <-> backend interaction in the upload process. We've workshopped a process that fits the flow of the new designs and come up with the following:
1. Create an upload group (e.g. POST `/api/v2/upload-groups`) and receive a `201` with a GUID
2. Upload your content to the upload group (e.g. POST `/api/v2/upload-groups/{guid}`). This should return a `202` to indicate the server still needs to process the content
3. If there is a failure in the frontend, post **partial** data to the endpoint with a status that tells the API that the web app couldn't validate the payload, maybe with an optional note explaining why the upload failed. The server should return a `201` as the entry has been created but there is nothing to process.
Then when you want to request the data:
- GET `/api/v2/upload-groups`: returns a list of upload groups
- GET `/api/v2/upload-groups/{guid}`: returns a list of all uploads in a group
- GET `/api/v2/uploads`: returns a list of all uploads made by the user
As for the retry action, if the server responds with a `guid` when returning the failed upload's metadata, we could send:
- PATCH `/api/v2/uploads/{guid}`
Or something similar.Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2267Test case for concepts: users2023-12-13T06:30:22ZCiarán Ainsworthsporiff@funkwhale.audioTest case for concepts: usersTo test the usefulness of the _concepts_ approach to documentation, create a concept structure for Funkwhale _users_. To include:
* An overview of what a user is an how it's represented on ActivityPub using an `Actor`
* An overview of t...To test the usefulness of the _concepts_ approach to documentation, create a concept structure for Funkwhale _users_. To include:
* An overview of what a user is an how it's represented on ActivityPub using an `Actor`
* An overview of the different _actions_ one might take when interacting with a userCiarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2266Concept documentation2023-12-13T06:28:36ZCiarán Ainsworthsporiff@funkwhale.audioConcept documentationAt the moment, there's no clear way to look up different _concepts_ in Funkwhale. With our new specification approach, we should look at making easily searchable and well structured documentation that groups information by concept. For e...At the moment, there's no clear way to look up different _concepts_ in Funkwhale. With our new specification approach, we should look at making easily searchable and well structured documentation that groups information by concept. For example, you might have a structure like this:
```plaintext
.
└── concepts/
├── artists/
│ └── index.md/
│ ├── create.md
│ ├── delete.md
│ ├── fetch.md
│ └── update.md
└── users/
├── index.md
└── activities/
├── create.md
├── delete.md
├── fetch.md
└── update.md
```
The information would be catalogued like so:
- `index.md`: overview of the feature including:
- What it is and how it appears to end users
- Its ActivityPub representation, if applicable
- `activities/*.md`
* Overview of the action and its effects
* The API endpoint specification for the action
* The ActivityPub behavior, if applicable
Information that currently gets written into _specs_ can be represented in these documents where applicable. Since specs may touch multiple different _concepts_, they should be considered separate.Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2265Dependency Dashboard2024-03-29T08:33:30ZRenovateBotDependency DashboardThis issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more.
## Rate-Limited
These updates are currently rate-limited. Click on a...This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more.
## Rate-Limited
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
- [ ] <!-- unlimit-branch=renovate/stable-api-django-3.x -->chore(api): update dependency django to v3.2.25 (stable)
- [ ] <!-- unlimit-branch=renovate/stable-docs-django-3.x -->chore(docs): update dependency django to v3.2.25 (stable)
- [ ] <!-- unlimit-branch=renovate/stable-front-dompurify-2.x -->chore(front): update dependency dompurify to v2.4.9 (stable)
- [ ] <!-- unlimit-branch=renovate/stable-front-standardized-audio-context-25.x -->chore(front): update dependency standardized-audio-context to v25.3.67 (stable)
- [ ] <!-- unlimit-branch=renovate/stable-front-vue-upload-component-3.x -->chore(front): update dependency vue-upload-component to v3.1.15 (stable)
- [ ] <!-- unlimit-branch=renovate/stable-api-lock-file-maintenance -->chore(api): lock file maintenance (stable)
- [ ] <!-- unlimit-branch=renovate/stable-docs-lock-file-maintenance -->chore(docs): lock file maintenance (stable)
- [ ] <!-- unlimit-branch=renovate/stable-front-lock-file-maintenance -->chore(front): lock file maintenance (stable)
- [ ] <!-- unlimit-branch=renovate/stable-lock-file-maintenance -->chore: lock file maintenance (stable)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-filter-24.x -->chore(api): update dependency django-filter to v24 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-faker-24.x -->chore(api): update dependency faker to v24 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-cov-5.x -->chore(api): update dependency pytest-cov to v5 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-intlify-unplugin-vue-i18n-4.x -->chore(front): update dependency @intlify/unplugin-vue-i18n to v4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-eslint-config-typescript-13.x -->chore(front): update dependency @vue/eslint-config-typescript to v13 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-universal-cookie-7.x -->chore(front): update dependency universal-cookie to v7 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-tsc-2.x -->chore(front): update dependency vue-tsc to v2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-major-workbox-monorepo -->chore(front): update workbox monorepo to v7 (develop) (major) (`workbox-core`, `workbox-precaching`, `workbox-routing`, `workbox-strategies`)
- [ ] <!-- unlimit-branch=renovate/develop-pytest-8.x -->chore: update dependency pytest to v8 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-docker-26.x -->chore: update docker docker tag to v26 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-postgres-16.x -->chore: update postgres docker tag to v16 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-psf-black-24.x -->chore: update pre-commit hook psf/black to v24 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-pycqa-flake8-7.x -->chore: update pre-commit hook pycqa/flake8 to v7 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-arrow-1.x -->chore(api): update dependency arrow to v1.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-black-24.x -->chore(api): update dependency black to v24.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-boto3-1.x -->chore(api): update dependency boto3 to v1.34.73 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-channels -->chore(api): update dependency channels-redis to v4.2.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-debugpy-1.x -->chore(api): update dependency debugpy to v1.8.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-allauth-0.x -->chore(api): update dependency django-allauth to v0.61.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-auth-ldap-4.x -->chore(api): update dependency django-auth-ldap to v4.7.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-cache-memoize-0.x -->chore(api): update dependency django-cache-memoize to v0.2.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-coverage-plugin-3.x -->chore(api): update dependency django-coverage-plugin to v3.1.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-debug-toolbar-4.x -->chore(api): update dependency django-debug-toolbar to v4.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-dynamic-preferences-1.x -->chore(api): update dependency django-dynamic-preferences to v1.16.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-environ-0.x -->chore(api): update dependency django-environ to v0.11.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-oauth-toolkit-2.x -->chore(api): update dependency django-oauth-toolkit to v2.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-redis-5.x -->chore(api): update dependency django-redis to v5.4.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-storages-1.x -->chore(api): update dependency django-storages to v1.14.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-djangorestframework-3.x -->chore(api): update dependency djangorestframework to v3.15.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-drf-spectacular-0.x -->chore(api): update dependency drf-spectacular to v0.27.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-factory-boy-3.x -->chore(api): update dependency factory-boy to v3.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-faker-23.x -->chore(api): update dependency faker to v23.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-ipython-8.x -->chore(api): update dependency ipython to v8.22.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-markdown-3.x -->chore(api): update dependency markdown to v3.6 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-mutagen-1.x -->chore(api): update dependency mutagen to v1.47.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pylint-3.x -->chore(api): update dependency pylint to v3.1.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-8.x -->chore(api): update dependency pytest to v8.1.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-asyncio-0.x -->chore(api): update dependency pytest-asyncio to v0.23.6 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-cov-4.x -->chore(api): update dependency pytest-cov to v4.1.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-django-4.x -->chore(api): update dependency pytest-django to v4.8.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-mock-3.x -->chore(api): update dependency pytest-mock to v3.14.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pytest-randomly-3.x -->chore(api): update dependency pytest-randomly to v3.15.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-requests-mock-1.x -->chore(api): update dependency requests-mock to v1.12.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-sentry-sdk-1.x -->chore(api): update dependency sentry-sdk to v1.44.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-troi-2024.x -->chore(api): update dependency troi to v2024.2.9.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-typesense-0.x -->chore(api): update dependency typesense to v0.19.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-uvicorn-0.x -->chore(api): update dependency uvicorn to v0.29.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-funkwhale-ui-0.x -->chore(front): update dependency @funkwhale/ui to v0.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-typescript-eslint-monorepo -->chore(front): update dependency @typescript-eslint/eslint-plugin to v7.4.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-macros-volar-0.x -->chore(front): update dependency @vue-macros/volar to v0.18.16 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-test-utils-2.x -->chore(front): update dependency @vue/test-utils to v2.4.5 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-axios-1.x -->chore(front): update dependency axios to v1.6.8 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-cypress-13.x -->chore(front): update dependency cypress to v13.7.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-diff-5.x -->chore(front): update dependency diff to v5.2.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-eslint-plugin-vue-9.x -->chore(front): update dependency eslint-plugin-vue to v9.24.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-focus-trap-7.x -->chore(front): update dependency focus-trap to v7.5.4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-moment-2.x -->chore(front): update dependency moment to v2.30.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-rollup-plugin-visualizer-5.x -->chore(front): update dependency rollup-plugin-visualizer to v5.12.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-sass-1.x -->chore(front): update dependency sass to v1.72.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-sinon-15.x -->chore(front): update dependency sinon to v15.2.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-standardized-audio-context-mock-9.x -->chore(front): update dependency standardized-audio-context-mock to v9.7.3 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-typescript-5.x -->chore(front): update dependency typescript to v5.4.3 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-unplugin-vue-macros-2.x -->chore(front): update dependency unplugin-vue-macros to v2.8.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-utility-types-3.x -->chore(front): update dependency utility-types to v3.11.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vite-5.x -->chore(front): update dependency vite to v5.2.7 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vite-plugin-pwa-0.x -->chore(front): update dependency vite-plugin-pwa to v0.19.7 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-i18n-9.x -->chore(front): update dependency vue-i18n to v9.10.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-router-4.x -->chore(front): update dependency vue-router to v4.3.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue3-gettext-2.x -->chore(front): update dependency vue3-gettext to v2.4.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-nginx-1.x -->chore(front): update nginx docker tag to v1.25.4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-sentry-javascript-monorepo -->chore(front): update sentry-javascript monorepo to v7.109.0 (develop) (`@sentry/tracing`, `@sentry/vue`)
- [ ] <!-- unlimit-branch=renovate/develop-front-vitest-monorepo -->chore(front): update vitest monorepo to v1.4.0 (develop) (`@vitest/coverage-v8`, `vitest`)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-monorepo -->chore(front): update vue monorepo to v3.4.21 (develop) (`@vue/compiler-sfc`, `@vue/runtime-core`, `vue`)
- [ ] <!-- unlimit-branch=renovate/develop-front-vueuse -->chore(front): update vueuse to v10.9.0 (develop) (`@vueuse/core`, `@vueuse/integrations`, `@vueuse/math`, `@vueuse/router`)
- [ ] <!-- unlimit-branch=renovate/develop-front-workbox-monorepo -->chore(front): update workbox monorepo to v6.6.0 (develop) (`workbox-core`, `workbox-precaching`, `workbox-routing`, `workbox-strategies`)
- [ ] <!-- unlimit-branch=renovate/develop-cypress-included-13.x -->chore: update cypress/included docker tag to v13.7.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-pytest-7.x -->chore: update dependency pytest to v7.4.4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-asottile-pyupgrade-3.x -->chore: update pre-commit hook asottile/pyupgrade to v3.15.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-pre-commit-mirrors-prettier-3.x -->chore: update pre-commit hook pre-commit/mirrors-prettier to v3.1.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-pre-commit-pre-commit-hooks-4.x -->chore: update pre-commit hook pre-commit/pre-commit-hooks to v4.5.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-psf-black-23.x -->chore: update pre-commit hook psf/black to v23.12.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-pycqa-isort-5.x -->chore: update pre-commit hook pycqa/isort to v5.13.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-python-poetry-poetry-1.x -->chore: update pre-commit hook python-poetry/poetry to v1.8.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-python-3.x -->chore: update python docker tag to v3.12 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-typesense-typesense-0.x -->chore: update typesense/typesense docker tag to v0.25.2 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pin-dependencies -->chore(api): pin dependency poetry-core to ==1.9.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-docs-pin-dependencies -->chore(docs): pin dependency poetry-core to ==1.9.0 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-pin-dependencies -->chore: pin dependencies (develop) (`color-eyre`, `poetry-core`, `serde`, `serde_json`, `tauri`, `tauri-build`)
- [ ] <!-- unlimit-branch=renovate/develop-api-aiohttp-3.x -->chore(api): update dependency aiohttp to v3.9.3 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-coverage-7.x -->chore(api): update dependency coverage to v7.4.4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-django-4.x -->chore(api): update dependency django to v4.2.11 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-feedparser-6.x -->chore(api): update dependency feedparser to v6.0.11 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-kombu-5.x -->chore(api): update dependency kombu to v5.3.6 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-lb-matching-tools-2024.x -->chore(api): update dependency lb-matching-tools to v2024.1.30.1 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-prompt-toolkit-3.x -->chore(api): update dependency prompt-toolkit to v3.0.43 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-pyld-2.x -->chore(api): update dependency pyld to v2.0.4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-redis-5.x -->chore(api): update dependency redis to v5.0.3 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-api-unidecode-1.x -->chore(api): update dependency unidecode to v1.3.8 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-docs-django-3.x -->chore(docs): update dependency django to v3.2.25 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-qs-6.x -->chore(front): update dependency @types/qs to v6.9.14 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vitejs-plugin-vue-5.x -->chore(front): update dependency @vitejs/plugin-vue to v5.0.4 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-dompurify-3.x -->chore(front): update dependency dompurify to v3.0.11 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-msw-2.x -->chore(front): update dependency msw to v2.2.13 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-standardized-audio-context-25.x -->chore(front): update dependency standardized-audio-context to v25.3.67 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-vue-upload-component-3.x -->chore(front): update dependency vue-upload-component to v3.1.15 (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-tauri-monorepo -->chore(front): update tauri monorepo (develop) (`@tauri-apps/api`, `@tauri-apps/cli`)
- [ ] <!-- unlimit-branch=renovate/develop-api-lock-file-maintenance -->chore(api): lock file maintenance (develop)
- [ ] <!-- unlimit-branch=renovate/develop-docs-lock-file-maintenance -->chore(docs): lock file maintenance (develop)
- [ ] <!-- unlimit-branch=renovate/develop-front-lock-file-maintenance -->chore(front): lock file maintenance (develop)
- [ ] <!-- unlimit-branch=renovate/develop-lock-file-maintenance -->chore: lock file maintenance (develop)
- [ ] <!-- create-all-rate-limited-prs -->🔐 **Create all rate-limited MRs at once** 🔐
## Open
These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
- [ ] <!-- rebase-branch=renovate/develop-front-sinon-17.x -->[chore(front): update dependency sinon to v17 (develop)](!2770)
## Ignored or Blocked
These are blocked by an existing closed MR and will not be recreated unless you click a checkbox below.
- [ ] <!-- recreate-branch=renovate/develop-api-cryptography-42.x -->[chore(api): update dependency cryptography to v42 (develop)](!2707)
- [ ] <!-- recreate-branch=renovate/develop-api-django-5.x -->[chore(api): update dependency django to v5 (develop)](!2708)
- [ ] <!-- recreate-branch=renovate/develop-api-flake8-7.x -->[chore(api): update dependency flake8 to v7 (develop)](!2726)
- [ ] <!-- recreate-branch=renovate/develop-docs-django-5.x -->[chore(docs): update dependency django to v5 (develop)](!2738)
## Detected dependencies
<details><summary>Branch stable</summary>
<blockquote>
<details><summary>docker-compose</summary>
<blockquote>
<details><summary>.gitpod/docker-compose.yml</summary>
- `postgres 15-alpine`
- `redis 7-alpine`
</details>
<details><summary>deploy/docker-compose.yml</summary>
- `postgres 15-alpine`
- `redis 7-alpine`
- `typesense/typesense 0.24.0`
</details>
</blockquote>
</details>
<details><summary>dockerfile</summary>
<blockquote>
<details><summary>.gitpod/Dockerfile</summary>
- `gitpod/workspace-full 2023-10-25-20-43-33`
</details>
<details><summary>api/Dockerfile</summary>
- `alpine 3.17`
- `alpine 3.17`
- `alpine 3.17`
</details>
<details><summary>front/Dockerfile</summary>
- `node 18-alpine`
- `nginx 1.23.4-alpine`
</details>
<details><summary>front/Dockerfile.dev</summary>
- `node 18-alpine`
</details>
</blockquote>
</details>
<details><summary>gitlabci</summary>
<blockquote>
<details><summary>.gitlab-ci.yml</summary>
- `python 3.11`
- `postgres 15-alpine`
- `redis 7-alpine`
- `cypress/included 12.14.0`
- `postgres 15-alpine`
- `redis 7-alpine`
- `docker 20-dind`
</details>
</blockquote>
</details>
<details><summary>gitlabci-include</summary>
<blockquote>
<details><summary>.gitlab-ci.yml</summary>
</details>
</blockquote>
</details>
<details><summary>npm</summary>
<blockquote>
<details><summary>front/package.json</summary>
- `@funkwhale/ui 0.2.2`
- `@sentry/tracing 7.47.0`
- `@sentry/vue 7.47.0`
- `@vue/runtime-core 3.3.11`
- `@vueuse/core 10.3.0`
- `@vueuse/integrations 10.3.0`
- `@vueuse/math 10.3.0`
- `@vueuse/router 10.3.0`
- `axios 1.2.3`
- `axios-auth-refresh 3.3.6`
- `butterchurn 3.0.0-beta.4`
- `butterchurn-presets 3.0.0-beta.4`
- `diff 5.1.0`
- `dompurify 2.4.7`
- `focus-trap 7.2.0`
- `fomantic-ui-css 2.9.3`
- `idb-keyval 6.2.1`
- `lodash-es 4.17.21`
- `lru-cache 7.14.1`
- `moment 2.29.4`
- `showdown 2.1.0`
- `stacktrace-js 2.0.2`
- `standardized-audio-context 25.3.64`
- `text-clipper 2.2.0`
- `transliteration 2.3.5`
- `universal-cookie 4.0.4`
- `vue 3.3.11`
- `vue-gettext 2.1.12`
- `vue-i18n 9.3.0-beta.19`
- `vue-router 4.2.5`
- `vue-upload-component 3.1.8`
- `vue-virtual-scroller 2.0.0-beta.8`
- `vue3-gettext 2.3.4`
- `vue3-lazyload 0.3.8`
- `vuedraggable 4.1.0`
- `vuex 4.1.0`
- `vuex-persistedstate 4.1.0`
- `vuex-router-sync 5.0.0`
</details>
</blockquote>
</details>
<details><summary>pep621</summary>
<blockquote>
<details><summary>api/pyproject.toml</summary>
- `poetry-core ==1.8.1`
</details>
<details><summary>docs/pyproject.toml</summary>
- `poetry-core ==1.8.1`
</details>
<details><summary>scripts/pyproject.toml</summary>
- `poetry-core ==1.8.1`
</details>
</blockquote>
</details>
<details><summary>poetry</summary>
<blockquote>
<details><summary>api/pyproject.toml</summary>
- `python ^3.8,<3.12`
- `dj-rest-auth 2.2.8`
- `django ==3.2.24`
- `django-allauth ==0.42.0`
- `django-cache-memoize 0.1.10`
- `django-cacheops ==6.1`
- `django-cleanup ==6.0.0`
- `django-cors-headers ==3.13.0`
- `django-dynamic-preferences ==1.14.0`
- `django-environ ==0.10.0`
- `django-filter ==22.1`
- `django-oauth-toolkit 2.2.0`
- `django-redis ==5.2.0`
- `django-storages ==1.13.2`
- `django-versatileimagefield ==2.2`
- `djangorestframework ==3.14.0`
- `drf-spectacular ==0.26.5`
- `markdown ==3.4.4`
- `persisting-theory ==1.0`
- `psycopg2 ==2.9.9`
- `redis ==4.5.5`
- `django-auth-ldap ==4.1.0`
- `python-ldap ==3.4.4`
- `channels ==4.0.0`
- `channels-redis ==4.1.0`
- `kombu ==5.2.4`
- `celery ==5.2.7`
- `gunicorn ==20.1.0`
- `uvicorn ==0.20.0`
- `aiohttp ==3.8.6`
- `arrow ==1.2.3`
- `backports-zoneinfo ==0.2.1`
- `bleach ==5.0.1`
- `boto3 ==1.26.161`
- `click ==8.1.7`
- `cryptography ==38.0.4`
- `feedparser ==6.0.11`
- `musicbrainzngs ==0.7.1`
- `mutagen ==1.46.0`
- `pillow ==9.3.0`
- `pydub ==0.25.1`
- `pyld ==2.0.4`
- `python-magic ==0.4.27`
- `requests ==2.28.2`
- `requests-http-message-signatures ==0.3.1`
- `sentry-sdk ==1.19.1`
- `watchdog ==2.2.1`
- `unidecode ==1.3.8`
- `pycountry 22.3.5`
- `typesense ==0.15.1`
- `ipython ==7.34.0`
- `pluralizer ==1.2.0`
- `service-identity ==21.1.0`
- `unicode-slugify ==0.1.5`
- `aioresponses ==0.7.6`
- `asynctest ==0.13.0`
- `black ==23.3.0`
- `coverage ==6.5.0`
- `debugpy ==1.6.7.post1`
- `django-coverage-plugin ==3.0.0`
- `django-debug-toolbar ==3.8.1`
- `factory-boy ==3.2.1`
- `faker ==15.3.4`
- `flake8 ==3.9.2`
- `ipdb ==0.13.13`
- `pytest ==7.4.4`
- `pytest-asyncio ==0.21.0`
- `prompt-toolkit ==3.0.43`
- `pytest-cov ==4.0.0`
- `pytest-django ==4.5.2`
- `pytest-env ==0.8.2`
- `pytest-mock ==3.10.0`
- `pytest-randomly ==3.12.0`
- `pytest-sugar ==0.9.7`
- `requests-mock ==1.10.0`
- `pylint ==2.17.7`
- `pylint-django ==2.5.5`
- `django-extensions ==3.2.3`
</details>
<details><summary>docs/pyproject.toml</summary>
- `python ^3.8`
- `sphinx ==5.3.0`
- `sphinx_design ==0.3.0`
- `sphinx-copybutton ==0.5.2`
- `sphinx-intl 2.0.1`
- `sphinx-rtd-theme ==1.1.1`
- `sphinxcontrib-mermaid 0.7.1`
- `myst-parser 1.0.0`
- `django ==3.2.24`
- `django-environ ==0.10.0`
- `sphinx-autobuild 2021.3.14`
</details>
<details><summary>scripts/pyproject.toml</summary>
- `python ^3.8`
- `pytest 7.3.1`
</details>
</blockquote>
</details>
<details><summary>pre-commit</summary>
<blockquote>
<details><summary>.pre-commit-config.yaml</summary>
- `pre-commit/pre-commit-hooks v4.4.0`
- `python-poetry/poetry 1.5.1`
- `asottile/pyupgrade v3.9.0`
- `psf/black 23.7.0`
- `pycqa/isort 5.12.0`
- `pycqa/flake8 6.0.0`
- `pre-commit/mirrors-prettier v3.0.3`
- `codespell-project/codespell v2.2.6`
- `shellcheck-py/shellcheck-py v0.9.0.5`
</details>
</blockquote>
</details>
</blockquote>
</details>
<details><summary>Branch develop</summary>
<blockquote>
<details><summary>cargo</summary>
<blockquote>
<details><summary>front/tauri/Cargo.toml</summary>
- `serde_json 1.0`
- `serde 1.0`
- `tauri 2.0.0-beta`
- `color-eyre 0.6.2`
- `tauri-build 2.0.0-beta`
</details>
</blockquote>
</details>
<details><summary>docker-compose</summary>
<blockquote>
<details><summary>.gitpod/docker-compose.yml</summary>
- `postgres 15-alpine`
- `redis 7-alpine`
</details>
<details><summary>deploy/docker-compose.yml</summary>
- `postgres 15-alpine`
- `redis 7-alpine`
- `typesense/typesense 0.24.0`
</details>
</blockquote>
</details>
<details><summary>dockerfile</summary>
<blockquote>
<details><summary>.gitpod/Dockerfile</summary>
- `gitpod/workspace-full 2023-10-25-20-43-33`
</details>
<details><summary>api/Dockerfile</summary>
- `alpine 3.19`
- `alpine 3.19`
- `alpine 3.19`
</details>
<details><summary>front/Dockerfile</summary>
- `node 18-alpine`
- `nginx 1.23.4-alpine`
</details>
<details><summary>front/Dockerfile.dev</summary>
- `node 18-alpine`
</details>
</blockquote>
</details>
<details><summary>gitlabci</summary>
<blockquote>
<details><summary>.gitlab-ci.yml</summary>
- `python 3.11`
- `postgres 15-alpine`
- `redis 7-alpine`
- `cypress/included 13.6.4`
- `postgres 15-alpine`
- `redis 7-alpine`
- `docker 20-dind`
</details>
</blockquote>
</details>
<details><summary>gitlabci-include</summary>
<blockquote>
<details><summary>.gitlab-ci.yml</summary>
</details>
</blockquote>
</details>
<details><summary>npm</summary>
<blockquote>
<details><summary>front/package.json</summary>
- `@funkwhale/ui 0.2.2`
- `@sentry/tracing 7.47.0`
- `@sentry/vue 7.47.0`
- `@tauri-apps/api 2.0.0-beta.1`
- `@vue/runtime-core 3.3.11`
- `@vueuse/core 10.3.0`
- `@vueuse/integrations 10.3.0`
- `@vueuse/math 10.3.0`
- `@vueuse/router 10.3.0`
- `axios 1.2.3`
- `axios-auth-refresh 3.3.6`
- `butterchurn 3.0.0-beta.4`
- `butterchurn-presets 3.0.0-beta.4`
- `diff 5.1.0`
- `dompurify 3.0.8`
- `focus-trap 7.2.0`
- `fomantic-ui-css 2.9.3`
- `idb-keyval 6.2.1`
- `lodash-es 4.17.21`
- `lru-cache 10.2.0`
- `moment 2.29.4`
- `showdown 2.1.0`
- `stacktrace-js 2.0.2`
- `standardized-audio-context 25.3.60`
- `text-clipper 2.2.0`
- `transliteration 2.3.5`
- `universal-cookie 4.0.4`
- `vite-plugin-pwa 0.14.4`
- `vue 3.3.11`
- `vue-gettext 2.1.12`
- `vue-i18n 9.9.1`
- `vue-router 4.2.5`
- `vue-upload-component 3.1.8`
- `vue-virtual-scroller 2.0.0-beta.8`
- `vue3-gettext 2.3.4`
- `vue3-lazyload 0.3.8`
- `vuedraggable 4.1.0`
- `vuex 4.1.0`
- `vuex-persistedstate 4.1.0`
- `vuex-router-sync 5.0.0`
- `@faker-js/faker 8.4.1`
- `@intlify/eslint-plugin-vue-i18n 2.0.0`
- `@intlify/unplugin-vue-i18n 2.0.0`
- `@tauri-apps/cli 2.0.0-beta.2`
- `@types/diff 5.0.9`
- `@types/dompurify 3.0.5`
- `@types/jquery 3.5.29`
- `@types/lodash-es 4.17.12`
- `@types/moxios 0.4.17`
- `@types/qs 6.9.10`
- `@types/semantic-ui 2.2.9`
- `@types/showdown 2.0.6`
- `@typescript-eslint/eslint-plugin 7.1.0`
- `@vitejs/plugin-vue 5.0.3`
- `@vitest/coverage-v8 1.3.1`
- `@vue-macros/volar 0.13.3`
- `@vue/compiler-sfc 3.3.11`
- `@vue/eslint-config-standard 8.0.1`
- `@vue/eslint-config-typescript 12.0.0`
- `@vue/test-utils 2.2.7`
- `@vue/tsconfig 0.5.1`
- `cypress 13.6.4`
- `eslint 8.57.0`
- `eslint-config-standard 17.1.0`
- `eslint-plugin-html 8.0.0`
- `eslint-plugin-import 2.29.1`
- `eslint-plugin-n 16.6.2`
- `eslint-plugin-node 11.1.0`
- `eslint-plugin-promise 6.1.1`
- `eslint-plugin-vue 9.22.0`
- `jsdom 24.0.0`
- `jsonc-eslint-parser 2.4.0`
- `msw 2.2.1`
- `msw-auto-mock 0.18.0`
- `patch-package 8.0.0`
- `rollup-plugin-visualizer 5.9.0`
- `sass 1.57.1`
- `sinon 15.0.2`
- `standardized-audio-context-mock 9.6.32`
- `typescript 5.3.3`
- `unplugin-vue-macros 2.4.6`
- `utility-types 3.10.0`
- `vite 5.1.3`
- `vitest 1.3.1`
- `vue-tsc 1.8.27`
- `workbox-core 6.5.4`
- `workbox-precaching 6.5.4`
- `workbox-routing 6.5.4`
- `workbox-strategies 6.5.4`
</details>
</blockquote>
</details>
<details><summary>pep621</summary>
<blockquote>
<details><summary>api/pyproject.toml</summary>
- `poetry-core >=1.0.0`
</details>
<details><summary>docs/pyproject.toml</summary>
- `poetry-core >=1.0.0`
</details>
<details><summary>scripts/pyproject.toml</summary>
- `poetry-core >=1.0.0`
</details>
</blockquote>
</details>
<details><summary>poetry</summary>
<blockquote>
<details><summary>api/pyproject.toml</summary>
- `python ^3.8,<3.13`
- `dj-rest-auth 5.0.2`
- `django 4.2.9`
- `django-allauth 0.55.2`
- `django-cache-memoize 0.1.10`
- `django-cacheops ==7.0.2`
- `django-cleanup ==8.1.0`
- `django-cors-headers ==4.3.1`
- `django-dynamic-preferences ==1.14.0`
- `django-environ ==0.10.0`
- `django-filter ==23.5`
- `django-oauth-toolkit 2.2.0`
- `django-redis ==5.2.0`
- `django-storages ==1.13.2`
- `django-versatileimagefield ==3.1`
- `djangorestframework ==3.14.0`
- `drf-spectacular ==0.26.5`
- `markdown ==3.4.4`
- `persisting-theory ==1.0`
- `psycopg2 ==2.9.9`
- `redis ==5.0.1`
- `django-auth-ldap ==4.1.0`
- `python-ldap ==3.4.4`
- `channels ==4.0.0`
- `channels-redis ==4.1.0`
- `kombu 5.3.4`
- `celery 5.3.6`
- `gunicorn ==21.2.0`
- `uvicorn ==0.20.0`
- `aiohttp 3.9.1`
- `arrow ==1.2.3`
- `backports-zoneinfo ==0.2.1`
- `bleach ==6.1.0`
- `boto3 ==1.26.161`
- `click ==8.1.7`
- `cryptography ==41.0.7`
- `feedparser ==6.0.10`
- `liblistenbrainz ==0.5.5`
- `musicbrainzngs ==0.7.1`
- `mutagen ==1.46.0`
- `pillow ==10.2.0`
- `pydub ==0.25.1`
- `pyld ==2.0.3`
- `python-magic ==0.4.27`
- `requests ==2.31.0`
- `requests-http-message-signatures ==0.3.1`
- `sentry-sdk ==1.19.1`
- `watchdog ==4.0.0`
- `troi ==2024.1.26.0`
- `lb-matching-tools ==2024.1.25.0rc1`
- `unidecode ==1.3.7`
- `pycountry 23.12.11`
- `typesense ==0.15.1`
- `ipython ==8.12.3`
- `pluralizer ==1.2.0`
- `service-identity ==24.1.0`
- `unicode-slugify ==0.1.5`
- `aioresponses ==0.7.6`
- `asynctest ==0.13.0`
- `black ==24.1.1`
- `coverage ==7.4.1`
- `debugpy ==1.6.7.post1`
- `django-coverage-plugin ==3.0.0`
- `django-debug-toolbar ==4.2.0`
- `factory-boy ==3.2.1`
- `faker ==23.2.1`
- `flake8 ==3.9.2`
- `ipdb ==0.13.13`
- `pytest ==8.0.0`
- `pytest-asyncio ==0.21.0`
- `prompt-toolkit ==3.0.41`
- `pytest-cov ==4.0.0`
- `pytest-django ==4.5.2`
- `pytest-env ==1.1.3`
- `pytest-mock ==3.10.0`
- `pytest-randomly ==3.12.0`
- `pytest-sugar ==1.0.0`
- `requests-mock ==1.10.0`
- `pylint ==3.0.3`
- `pylint-django ==2.5.5`
- `django-extensions ==3.2.3`
</details>
<details><summary>docs/pyproject.toml</summary>
- `python ^3.9`
- `sphinx 7.2.6`
- `sphinx_design 0.5.0`
- `sphinx-copybutton ==0.5.2`
- `sphinx-intl 2.1.0`
- `sphinx-rtd-theme ==2.0.0`
- `sphinxcontrib-mermaid 0.9.2`
- `myst-parser 2.0.0`
- `django-environ ==0.11.2`
- `django ==3.2.23`
- `sphinx-autobuild 2024.2.4`
</details>
<details><summary>scripts/pyproject.toml</summary>
- `python ^3.8`
- `pytest 7.3.1`
</details>
</blockquote>
</details>
<details><summary>pre-commit</summary>
<blockquote>
<details><summary>.pre-commit-config.yaml</summary>
- `pre-commit/pre-commit-hooks v4.4.0`
- `python-poetry/poetry 1.5.1`
- `asottile/pyupgrade v3.9.0`
- `psf/black 23.7.0`
- `pycqa/isort 5.12.0`
- `pycqa/flake8 6.1.0`
- `pre-commit/mirrors-prettier v3.0.3`
- `codespell-project/codespell v2.2.6`
- `shellcheck-py/shellcheck-py v0.9.0.5`
</details>
</blockquote>
</details>
</blockquote>
</details>https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2264Deprecate armv7 docker images2023-12-12T08:26:58ZGeorg KrauseDeprecate armv7 docker imagesA while back I started a discussion around the deprecation of armv7 docker images [in the forum](https://forum.funkwhale.audio/d/391-docker-armv7-support). The majority of the development group seemed to be in favor of the deprecation, s...A while back I started a discussion around the deprecation of armv7 docker images [in the forum](https://forum.funkwhale.audio/d/391-docker-armv7-support). The majority of the development group seemed to be in favor of the deprecation, so lets schedule this for %"1.5.0".
@funkwhale/communications This probably needs some cautious communications to avoid people getting highly upset, on the other hand the topic is quite complicated to explain to non-technical users. I'd appreciate some input on how to communicate this properly.1.5.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2263Stop building docker images for amv72023-12-12T08:27:49ZGeorg KrauseStop building docker images for amv7<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using ...<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using Funkwhale, try asking in our
[forum's support board](https://forum.funkwhale.audio/support) or our [support
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
Select the **Bug** template in the **Description** dropdown menu. This template contains
helpful tips for creating your report.
* For smaller additions and enhancements, please file a feature request.
Select the **Feature Request** template in the **Description** dropdown
menu. This template contains helpful tips for creating your request.
* If you have ideas for new features or use cases, consider opening a thread in our
[forum](https://forum.funkwhale.audio/t/development). This enables us to
discuss the feature, its use cases, and the development effort it requires.
We always like hearing ideas from our community. If you're still not sure, click
the **Create issue** button and we'll work with you to sort out the issue.
Happy listening! :whale:
-->1.6.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2262Publishing uploaded music on channel does not import meta-data2023-12-11T15:54:36ZTimofej LuitlePublishing uploaded music on channel does not import meta-data<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure yo...<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure we can deal with your idea or request, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## What is the problem you are facing?
When I upload music into my artist channel, the meta-data is not imported alongside the file.
There are multiple situations where music that an artist wants to publish to his funkwhale channel already contains the relevant meta-data. It may have been tagged by Picard already or downloaded from another platform properly tagged.
It would be nice to imports tags on upload not only for third-party content but also for original work.
## What are the possible drawbacks or issues with the requested changes?
None
<!--
Altering the system behaviour is not always a free action, and it can impact
user experience, performance, introduce bugs or complexity, etc..
If you think about anything we should keep in mind while
examining your request, please describe it in this section.
-->
## Context
![image](/uploads/359bb1600fa745dc86b180b7ed23216d/image.png)https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2261Deduplicate translation strings2023-12-09T13:19:16ZGeorg KrauseDeduplicate translation strings# Problem
At the moment, we have several duplicate translation strings in our locale files. This makes it tedious to translate our UI and makes it quite hard to manage the translations.
# Solution
We should make sure each and every tr...# Problem
At the moment, we have several duplicate translation strings in our locale files. This makes it tedious to translate our UI and makes it quite hard to manage the translations.
# Solution
We should make sure each and every translation string is only available once at a single key. This way translations would be way easier.1.5.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2260Add a guide how to manually install Funkwhale from Source2023-12-09T10:14:59ZGeorg KrauseAdd a guide how to manually install Funkwhale from Source# Problem
Currently our installation guides just cover the download and usage of our artifacts. Especially in case of the Frontend, this means its a build provided by us. People might have several reasons not to use our builds, though, ...# Problem
Currently our installation guides just cover the download and usage of our artifacts. Especially in case of the Frontend, this means its a build provided by us. People might have several reasons not to use our builds, though, for example custom changes or they just don't trust our build chain.
# Solution
Our documentation should contain a guide on how to download the source code and build everything required to run Funkwhale. This especially includes:
- Building the Frontend
- Deploying the Backend (probably doesn't make a lot of sense since its just the source anyways?)
- Build the docker containers
# Workflow
@funkwhale/documentation Do you need any more information to get this started?https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2259Multiple Genre Tags: Imports do not parse VorbisComment and ID3v2.4 multiple ...2023-12-09T13:53:48ZTimofej LuitleMultiple Genre Tags: Imports do not parse VorbisComment and ID3v2.4 multiple fields correctly<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure yo...<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure we can deal with your idea or request, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## What is the problem you are facing?
Uploading `.opus` (VorbisComment) and `.mp3` (id3v2.4) tracks with **multiple genre fields** are expected to be parsed into multiple genre tags. Instead, funkwhale `1.3.4` only tags the first genre to the track.
Picard automatically tags `.opus` tracks with multiple fields. Given that Picard is the recommended tagging application, funkwhale should support proper multiple tagging of `.opus` with _VorbisComment_.
Upcoming implementations of multiple artists (#1568) possibly face the same issue.
![image](/uploads/6a5c1396eee3bb3631decaabfb1d16fa/image.png)
<!--
Describe the problem you'd like to solve, and why we need to add or
improve something in the current system to solve that problem.
Be as specific as possible.
-->
## What are the possible drawbacks or issues with the requested changes?
None that I can think of, proper VorbisComment and ID3v2.4 support will certainly benefit the project going forward and its interoperation with Picard.
<!--
Altering the system behaviour is not always a free action, and it can impact
user experience, performance, introduce bugs or complexity, etc..
If you think about anything we should keep in mind while
examining your request, please describe it in this section.
-->
## Context
Possible workaround: Tagging multiple genres in one field by a `,`, `;` or `/` seperator currently makes funkwhale create tags for all of them, but should not be considered the preferred way of tagging multi-valued fields.
![image](/uploads/0fdfc06c30143414aac03385973e3d74/image.png)
<!--
If relevant, share additional context here like:
- Links to existing implementations or examples of the requested feature
- Screenshots
-->petitminionpetitminionhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2250Add schemas for existing v2 feature specs2023-11-18T04:18:53ZCiarán Ainsworthsporiff@funkwhale.audioAdd schemas for existing v2 feature specs<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using ...<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using Funkwhale, try asking in our
[forum's support board](https://forum.funkwhale.audio/support) or our [support
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
Select the **Bug** template in the **Description** dropdown menu. This template contains
helpful tips for creating your report.
* For smaller additions and enhancements, please file a feature request.
Select the **Feature Request** template in the **Description** dropdown
menu. This template contains helpful tips for creating your request.
* If you have ideas for new features or use cases, consider opening a thread in our
[forum](https://forum.funkwhale.audio/t/development). This enables us to
discuss the feature, its use cases, and the development effort it requires.
We always like hearing ideas from our community. If you're still not sure, click
the **Create issue** button and we'll work with you to sort out the issue.
Happy listening! :whale:
-->API v2Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2249Create a new schema file to act as the root file2023-11-18T04:18:54ZCiarán Ainsworthsporiff@funkwhale.audioCreate a new schema file to act as the root file<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using ...<!--
Hello and welcome to our issue tracker! We appreciate you taking the time to help us make Funkwhale even better :smile:
Before you begin, here are some helpful tips for submitting an issue:
* If you need help setting up or using Funkwhale, try asking in our
[forum's support board](https://forum.funkwhale.audio/support) or our [support
chat room](https://riot.im/app/#/room/#funkwhale-support:tchncs.de).
* If you think you've found a bug but aren't sure, you can ask in one of the above channels
first. Once you're confident it's a bug, go ahead and create an issue for us to investigate.
Select the **Bug** template in the **Description** dropdown menu. This template contains
helpful tips for creating your report.
* For smaller additions and enhancements, please file a feature request.
Select the **Feature Request** template in the **Description** dropdown
menu. This template contains helpful tips for creating your request.
* If you have ideas for new features or use cases, consider opening a thread in our
[forum](https://forum.funkwhale.audio/t/development). This enables us to
discuss the feature, its use cases, and the development effort it requires.
We always like hearing ideas from our community. If you're still not sure, click
the **Create issue** button and we'll work with you to sort out the issue.
Happy listening! :whale:
-->API v2Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2245Add a Regex Manager for the used documentation swagger version2023-11-03T04:04:20ZGeorg KrauseAdd a Regex Manager for the used documentation swagger versionThe following discussion from !2348 should be addressed:
- [ ] @jooola started a [discussion](https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2348#note_57870):
> This could use a Renovate Regex Manager :wink:The following discussion from !2348 should be addressed:
- [ ] @jooola started a [discussion](https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2348#note_57870):
> This could use a Renovate Regex Manager :wink:https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2244Migrate docs/user/info/cli.rst to Markdown2023-11-01T20:33:52ZGeorg KrauseMigrate docs/user/info/cli.rst to MarkdownWhen running the documentation Makefile we get the following error:
`[E 231101 20:32:58 server:94] b"/workspace/funkwhale/docs/index.md:7: WARNING: toctree contains reference to nonexisting document 'user/info/cli'\n"`
The reason is th...When running the documentation Makefile we get the following error:
`[E 231101 20:32:58 server:94] b"/workspace/funkwhale/docs/index.md:7: WARNING: toctree contains reference to nonexisting document 'user/info/cli'\n"`
The reason is that `docs/user/info/cli.rst` is not yet migrated to Markdownhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2242Docs for quick start installations: Store media in an object store > Set up y...2023-11-01T10:39:04ZDeborah PickettDocs for quick start installations: Store media in an object store > Set up your reverse proxyThe [instructions for setting up S3-compatible object storage](https://docs.funkwhale.audio/administrator/configuration/object-storage.html) describe how to edit the nginx config to operate in reverse proxy mode. There are instructions f...The [instructions for setting up S3-compatible object storage](https://docs.funkwhale.audio/administrator/configuration/object-storage.html) describe how to edit the nginx config to operate in reverse proxy mode. There are instructions for Debian installations and Docker installations but no instructions for Quick Start (Ansible) installations. I figured them out from reading the source.
1. Edit /srv/funkwhale/ansible/playbook.yml and add the `funkwhale_external_storage_enabled` parameter:
```
- hosts: funkwhale_servers
roles:
- role: funkwhale
...(other parameters)...
funkwhale_external_storage_enabled: true
```
2. Run /srv/funkwhale/ansible/reconfigre. The nginx config will update.https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2241Add artist donations support2023-10-31T17:11:52ZismailghedamsiAdd artist donations support<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure yo...<!--
Hi there! You are about to share feature request or an idea, and we want to thank you!
If it's the first time you post here, please take a moment to read our Code of Conduct
(https://funkwhale.audio/code-of-conduct/) and ensure your issue respect our guidelines.
To ensure we can deal with your idea or request, please try to stick
to the following structure. You can leave the parts text between `<!- ->`
markers untouched, they won't be displayed in your final message.
Please do not edit the following line, it's used for automatic classification
-->
## What is the problem you are facing?
Currently there is no way to support artists financially on the platform. I believe artists should be able to make money with the music they make even though they makes more money with merch
<!--
Describe the problem you'd like to solve, and why we need to add or
improve something in the current system to solve that problem.
Be as specific as possible.
-->
## What are the possible drawbacks or issues with the requested changes?
<!--
Altering the system behaviour is not always a free action, and it can impact
user experience, performance, introduce bugs or complexity, etc..
If you think about anything we should keep in mind while
examining your request, please describe it in this section.
-->
I'm not familiar with funkwhale code.The drawback could be that some normal users could upload music that they didn't make and could get donationshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2240Document development related configurations2023-11-07T08:12:59ZGeorg KrauseDocument development related configurationsWe do have a bunch of configuration options for Funkwhale that is only relevant for development.
This is a list of configuration options I am aware of right not, it might be more though:
* `BROWSABLE_API_ENABLED`
* `DEBUG`
* `PYTHONTRA...We do have a bunch of configuration options for Funkwhale that is only relevant for development.
This is a list of configuration options I am aware of right not, it might be more though:
* `BROWSABLE_API_ENABLED`
* `DEBUG`
* `PYTHONTRACEMALLOC`
@funkwhale/documentation Should this be part of the normal Adminitrator environment variable documentation or should this become a dedicated page in the developer docs?https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2238Federation: Follow of channel by Mastodon instance with AUTHORIZED_FETCH on h...2023-10-31T17:15:26ZDeborah PickettFederation: Follow of channel by Mastodon instance with AUTHORIZED_FETCH on hangs at "requested"As a visible member of a minority, I run with **AUTHORIZED_FETCH** turned on on my Mastodon (actually Hometown) instance, to prevent my posts from being transitively boosted to servers that I have blocked. **AUTHORIZED_FETCH**, also call...As a visible member of a minority, I run with **AUTHORIZED_FETCH** turned on on my Mastodon (actually Hometown) instance, to prevent my posts from being transitively boosted to servers that I have blocked. **AUTHORIZED_FETCH**, also called "Secure Mode", means that all requests to the Mastodon server will be responded to with **401 Unauthorized**, and the requesting instance must resubmit the request with a host signature, which will be checked against the Mastodon server's blocklist.
## Steps to reproduce
1. Create Funkwhale pod F running 1.3.3, create User FU, create Channel C.
2. Create Mastodon instance M, create user MU. Set Mastodon instance to use AUTHORIZED_FETCH.
3. In the web interface for M, attempt to follow FU from MU. Refresh the page to see if the follow has applied.
## What happens?
In the Mastodon web interface, follow is degraded to Requested, and the button changes to "Withdraw follow request".
This seems to be because when a follow request is made, Funkwhale, like all Fediverse servers, needs to make a return request to the server that originated the follow request (to get the user's signature? I'm not totally certain about the workflow). But the server originating the follow request responds with 401 Unauthorized, because the requestor (Funkwhale) has not signed the request as **AUTHORIZED_FETCH** requires. Since Funkwhale never retries this request, the Mastodon user's follow request handshake never completes and hangs at "follow requested".
## What is expected?
The follow completes successfully.
## Workaround
Temporarily disabling **AUTHORIZED_FETCH** on the Mastodon server, then performing the follow, will permit the follow to succeed, and it will persist properly even after re-enabling **AUTHORIZED_FETCH**.
## Context
**Funkwhale version(s) affected**: 1.3.3
**Mastodon version(s) affected**: 4.0, 4.1, 4.2, probably all versions since about 3.5.
Mastodon (old.mermaid.town) nginx log shows:
```
2400:8907::f03c:93ff:fe33:def5 - - [27/Oct/2023:14:49:31 +1100] "GET /users/futzle HTTP/1.1" 401 29 "-" "python-requests (funkwhale/1.3.3; +https://darkside.ofa.dog)"
```
Mastodon (old.mermaid.town) syslog shows:
```
Oct 27 14:49:31 old bundle[3955577]: [629ff5ea-7919-4382-a6e9-ce0eb81fb728] method=GET path=/users/futzle format=json controller=AccountsController action=show status=401 duration=7.51 view=0.54 db=1.07
```
Funkwhale server (darkside.ofa.dog) nginx log shows:
```
2400:8907::f03c:93ff:fe78:43a2 - - [27/Oct/2023:03:46:52 +0000] "POST /federation/actors/serious_futzle/inbox HTTP/1.1" 403 64 "-" "http.rb/5.1.0 (Mastodon/4.0.10+hometown-1.1.1; +https://old.mermaid.town/)"
```
Funkwhale server (darkside.ofa.dog) syslog shows:
```
Oct 27 03:26:45 localhost gunicorn[134469]: 2023-10-27 03:26:45,830 funkwhale_api.federation.authentication INFO Discarding HTTP request from actor/domain https://old.mermaid.town/users/futzle, 401 Client Error: Unauthorized for url: https://old.mermaid.town/users/futzle
Oct 27 03:26:45 localhost gunicorn[134469]: 2023-10-27 03:26:45,842 django.request WARNING Forbidden: /federation/actors/serious_futzle/inbox
```
[Discarding HTTP request](https://dev.funkwhale.audio/funkwhale/funkwhale/-/blob/develop/api/funkwhale_api/federation/authentication.py#L58) seems to be the smoking gun here, that Funkwhale isn't re-attempting the request with a signature.
## Broader Fediverse context
Some Fediverse server software, notably GoToSocial, always runs in Secure Mode. They have an open issue to track following Funkwhale channels [on Github](https://github.com/superseriousbusiness/gotosocial/issues/538).
Write.as has this issue (https://discuss.write.as/t/federation-cant-follow-from-mastodon-with-authorized-fetch-enabled/2063/5).
Bookwyrm had this issue and has applied a [patch](https://github.com/bookwyrm-social/bookwyrm/pull/2613) which might be of particular interest as Bookwyrm is also a Django project.
Pixelfed had this issue and has applied a [patch](https://github.com/pixelfed/pixelfed/pull/4504).https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/2237Library scan error2023-11-01T11:12:26ZppomLibrary scan error## Steps to reproduce
There are two issues.
One may be hard to reproduce.
1. A user on server djembe.babos.land starts a scan on a lib of server music.ppom.me
## What happens?
Scan systematically hangs at the same percentage of scann...## Steps to reproduce
There are two issues.
One may be hard to reproduce.
1. A user on server djembe.babos.land starts a scan on a lib of server music.ppom.me
## What happens?
Scan systematically hangs at the same percentage of scanned tracks.
## Context
Both instances are running 1.3.1.
djembe.babos.land celery-worker logs:
```
[2023-10-24 20:56:19,726: WARNING/ForkPoolWorker-2] [celery] Error during task 1c0b4c1a-9e5b-4548-9dbd-efd711863019: Invalid actor payload: <!DOCTYPE html>
<html lang="en">
... default index.html ...
</html>
[2023-10-24 20:56:19,727: WARNING/ForkPoolWorker-2] Traceback (most recent call last):
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2]
During handling of the above exception, another exception occurred:
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] Traceback (most recent call last):
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/actors.py", line 23, in get_actor_data
return response.json()
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
[2023-10-24 20:56:19,728: WARNING/ForkPoolWorker-2] requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2]
During handling of the above exception, another exception occurred:
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] Traceback (most recent call last):
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 734, in __protected_call__
return self.run(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/celery/app/autoretry.py", line 34, in run
return task._orig_run(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/taskapp/celery.py", line 55, in inner
return function(*args, **kwargs)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/music/tasks.py", line 128, in scan_library_page
upload = item_serializer.save(library=library_scan.library)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/venv/lib/python3.10/site-packages/rest_framework/serializers.py", line 212, in save
self.instance = self.create(validated_data)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/serializers.py", line 1620, in create
).create(validated_data["track"])
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/serializers.py", line 1509, in create
references[url] = actors.get_actor(url)
[2023-10-24 20:56:19,729: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/actors.py", line 40, in get_actor
data = get_actor_data(fid)
[2023-10-24 20:56:19,730: WARNING/ForkPoolWorker-2] File "/app/funkwhale_api/federation/actors.py", line 25, in get_actor_data
raise ValueError(f"Invalid actor payload: {response.text}")
[2023-10-24 20:56:19,730: WARNING/ForkPoolWorker-2] ValueError: Invalid actor payload: <!DOCTYPE html>
<html lang="en">
... default index.html ...
</html>
[2023-10-24 20:56:19,730: ERROR/ForkPoolWorker-2] Task music.scan_library_page[1c0b4c1a-9e5b-4548-9dbd-efd711863019] raised unexpected: ValueError('Invalid actor payload: <!DOCTYPE html>\n<html lang="en">... default index.html ...</html>\n')
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/funkwhale_api/federation/actors.py", line 23, in get_actor_data
return response.json()
File "/venv/lib/python3.10/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
File "/venv/lib/python3.10/site-packages/celery/app/trace.py", line 734, in __protected_call__
return self.run(*args, **kwargs)
File "/venv/lib/python3.10/site-packages/celery/app/autoretry.py", line 34, in run
return task._orig_run(*args, **kwargs)
File "/app/funkwhale_api/taskapp/celery.py", line 55, in inner
return function(*args, **kwargs)
File "/app/funkwhale_api/music/tasks.py", line 128, in scan_library_page
upload = item_serializer.save(library=library_scan.library)
File "/venv/lib/python3.10/site-packages/rest_framework/serializers.py", line 212, in save
self.instance = self.create(validated_data)
File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/app/funkwhale_api/federation/serializers.py", line 1620, in create
).create(validated_data["track"])
File "/app/funkwhale_api/federation/serializers.py", line 1509, in create
references[url] = actors.get_actor(url)
File "/app/funkwhale_api/federation/actors.py", line 40, in get_actor
data = get_actor_data(fid)
File "/app/funkwhale_api/federation/actors.py", line 25, in get_actor_data
raise ValueError(f"Invalid actor payload: {response.text}")
ValueError: Invalid actor payload: <!DOCTYPE html>
<html lang="en">
... default html ...
</html>
```
music.ppom.me funkwhale-api logs:
```
2023-10-24 20:56:56,168 django.request ERROR Internal Server Error: /api/v1/federation/actors/clement@music.ppom.me/
Traceback (most recent call last):
File "/venv/lib/python3.10/site-packages/asgiref/sync.py", line 534, in thread_handler
raise exc_info[1]
File "/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 38, in inner
response = await get_response(request)
File "/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
response = await wrapped_callback(request, *callback_args, **callback_kwargs) Oct 24 22:56:56 musi docker-funkwhale-api-start[5083]: File "/venv/lib/python3.10/site-packages/asgiref/sync.py", line 479, in __call__
ret: _R = await loop.run_in_executor(
File "/venv/lib/python3.10/site-packages/asgiref/current_thread_executor.py", line 40, in run
result = self.fn(*self.args, **self.kwargs)
File "/venv/lib/python3.10/site-packages/asgiref/sync.py", line 538, in thread_handler
return func(*args, **kwargs)
File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/venv/lib/python3.10/site-packages/rest_framework/viewsets.py", line 125, in view
return self.dispatch(request, *args, **kwargs)
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch
response = self.handle_exception(exc)
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception
self.raise_uncaught_exception(exc)
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
raise exc
File "/venv/lib/python3.10/site-packages/rest_framework/views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "/venv/lib/python3.10/site-packages/rest_framework/mixins.py", line 54, in retrieve
instance = self.get_object()
File "/app/funkwhale_api/federation/api_views.py", line 294, in get_object
return queryset.get(preferred_username=username, domain_id=domain)
File "/venv/lib/python3.10/site-packages/django/db/models/query.py", line 435, in get Oct 24 22:56:56 musi docker-funkwhale-api-start[5083]: raise self.model.DoesNotExist(
funkwhale_api.federation.models.Actor.DoesNotExist: Actor matching query does not exist.
```
## Conclusion
So there are 2 issues I think:
- The `Actor.DoesNotExist` exception is not catched by music.ppom.me
- music.ppom.me returns the default HTML
- djembe.babos.land can't parse the JSON (because it's HTML)
- There is this unknown clement@music.ppom.me:
- Doing a full-text search in djembe.babos.land AND in music.ppom.me SQL dumps, no clement@music.ppom.me can be found.
- There is a clement@music.intbh.space though, but how would it change its ~~family~~ instance name?