[10:10:25]
<Yunohost Git/Infra notifications> [yunohost] @grosmanal [commented](https://github.com/YunoHost/yunohost/pull/1785#discussion_r1531770829) on pull request #1785 [enh] add xz decompression for sources: The goal is to allow the omission of rename in resource definition. (I just remember, writing this line, Ive mentione...
[17:40:05]
<Yunohost Git/Infra notifications> [moulinette] @alexAubin [commented](https://github.com/YunoHost/moulinette/pull/351#discussion_r1532530316) on pull request #351 Translations update from Weblate: suggestion "root_required": "Vous devez avoir les droits dadministration pour exécuter cette action", (reco...
[17:40:39]
<Yunohost Git/Infra notifications> [moulinette] @alexAubin [commented](https://github.com/YunoHost/moulinette/pull/351#issuecomment-2010201594) on [issue #351](https://github.com/YunoHost/moulinette/pull/351) Translations update from Weblate: Zbrmlgrin suggestion "root_required": "Vous devez avoir les droits dadministration pour exécuter cette action",...
[17:41:04]
<Yunohost Git/Infra notifications> [moulinette] @alexAubin [commented](https://github.com/YunoHost/moulinette/pull/351#discussion_r1532531580) on pull request #351 Translations update from Weblate: suggestion "root_required": "Vous devez avoir les droits dadministration pour exécuter cette action", (reco...
[17:41:17]
<Yunohost Git/Infra notifications> [moulinette] @alexAubin [commented](https://github.com/YunoHost/moulinette/pull/351#issuecomment-2010201594) on [issue #351](https://github.com/YunoHost/moulinette/pull/351) Translations update from Weblate: Zbrmlgrin suggestion "root_required": "Vous devez avoir les droits dadministration pour exécuter cette action",...
[17:41:20]
<Yunohost Git/Infra notifications> [moulinette] @alexAubin merged [pull request #351](https://github.com/YunoHost/moulinette/pull/351): Translations update from Weblate
[17:41:21]
<Yunohost Git/Infra notifications> [moulinette] @alexAubin pushed 3 commits to dev ([95f7e6804a54...9316db6054fa](https://github.com/YunoHost/moulinette/compare/95f7e6804a54...9316db6054fa))
[17:41:25]
<Yunohost Git/Infra notifications> [moulinette/dev] Translated using Weblate (French) Currently translated at 100.0% (45 of 45 strings) Translation: YunoHost/moulinette T... - OniriCorpe
[17:41:47]
<Salamandar> > <@yunohostinfra:matrix.org> [moulinette] @alexAubin merged [pull request #351](https://github.com/YunoHost/moulinette/pull/351): Translations update from Weblate
Maybe we should make a translation matrix room
[17:41:51]
<Salamandar> with all those ntifications
[17:42:12]
<Aleks (he/him/il/lui)> uuugh yet another room
[17:42:38]
<Aleks (he/him/il/lui)> also dunno how you'd magically split messages related to weblate from others x_x
[17:44:22]
<Yunohost Git/Infra notifications> [SSOwat] @alexAubin merged [pull request #225](https://github.com/YunoHost/SSOwat/pull/225): Translations update from Weblate
[17:44:22]
<Yunohost Git/Infra notifications> [SSOwat] @alexAubin pushed 3 commits to dev ([accdb66e430a...bffb2ce73098](https://github.com/YunoHost/SSOwat/compare/accdb66e430a...bffb2ce73098))
[17:44:23]
<Yunohost Git/Infra notifications> [SSOwat/dev] Translated using Weblate (French) Currently translated at 100.0% (47 of 47 strings) Translation: YunoHost/SSOwat Trans... - OniriCorpe
[17:44:53]
<Yunohost Git/Infra notifications> [yunohost-portal] @alexAubin merged [pull request #7](https://github.com/YunoHost/yunohost-portal/pull/7): Translations update from Weblate
[17:44:54]
<Yunohost Git/Infra notifications> [yunohost-portal] @alexAubin pushed 3 commits to dev ([dc17325f5b53...d5ba70f48bf3](https://github.com/YunoHost/yunohost-portal/compare/dc17325f5b53...d5ba70f48bf3))
[17:44:59]
<Yunohost Git/Infra notifications> [yunohost-portal/dev] Translated using Weblate (French) Currently translated at 100.0% (57 of 57 strings) Translation: YunoHost/portal Trans... - OniriCorpe
[17:45:06]
<Yunohost Git/Infra notifications> [yunohost-portal/dev] Translated using Weblate (French) Currently translated at 100.0% (57 of 57 strings) Translation: YunoHost/portal Trans... - OniriCorpe
[17:45:20]
<Yunohost Git/Infra notifications> 🏗️ Starting build for moulinette/11.2+202403201745 for bullseye/unstable/all ...
[17:46:55]
<Yunohost Git/Infra notifications> ✔️ Completed build for moulinette/11.2+202403201745 for bullseye/unstable/all.
[17:47:11]
<Yunohost Git/Infra notifications> 🏗️ Starting build for ssowat/11.2+202403201745 for bullseye/unstable/all ...
[17:48:11]
<Yunohost Git/Infra notifications> ✔️ Completed build for ssowat/11.2+202403201745 for bullseye/unstable/all.
[17:48:30]
<Yunohost Git/Infra notifications> 🏗️ Starting build for yunohost-portal/12.0+202403201745 for bookworm/unstable/all ...
[17:51:50]
<Yunohost Git/Infra notifications> ✔️ Completed build for yunohost-portal/12.0+202403201745 for bookworm/unstable/all.
[17:53:45]
<lapineige> > <@Salamandar:matrix.org> with all those ntifications
just hide the bot 🙈
[17:54:25]
<Salamandar> https://aria.im/_matrix/media/v1/download/matrix.org/azJoNlLDbeGXnoAnvsSxHwjy
[17:54:48]
<Salamandar> > just hide the bot 🙈
nah bc it's the same bot that tells the autoupdater stats AND link…
[22:29:57]
<12b> Hi, I'm continuing here the discution I started yesterday evening in #yunohost:matrix.org about the following error I'm facing with yunohost on bookworm because I think that's a better place for that (but let me know if I'm wrong)
```
root@lab12:~# yunohost app config get vpnclient -e
Warning: /usr/share/yunohost/helpers.d/config: line 50: install_dir: unbound variable
Warning: /usr/share/yunohost/helpers.d/config: line 50: final_path: unbound variable
Warning: File does not exists
Error: Failed to read config panel values.
```
[22:30:58]
<Émy - OniriCorpe> > Hi, I'm continuing here the discution I started yesterday evening in #yunohost:matrix.org about the following error I'm facing with yunohost on bookworm because I think that's a better place for that (but let me know if I'm wrong)
> ```
> root@lab12:~# yunohost app config get vpnclient -e
> Warning: /usr/share/yunohost/helpers.d/config: line 50: install_dir: unbound variable
> Warning: /usr/share/yunohost/helpers.d/config: line 50: final_path: unbound variable
> Warning: File does not exists
> Error: Failed to read config panel values.
> ```
i don't have context so idk
[22:33:55]
<12b> I'll continue about it, and hopefully things will get more clear at some point :-)
[22:34:40]
<Émy - OniriCorpe> still don't have context 🤷♀️
[22:35:24]
<12b> The above error seems to be happening for all apps that have a control panel. And when accessing the apps parameter in the web admin this is happening :
[22:36:11]
<Émy - OniriCorpe> hmm
[22:36:12]
<12b> https://aria.im/_matrix/media/v1/download/matrix.org/YAZZHwRCXbPnbPUbVCvWAfqc
[22:36:28]
<Émy - OniriCorpe> maybe related to https://github.com/YunoHost/issues/issues/2268the
[22:36:30]
<Émy - OniriCorpe> the fix is not released for now
[22:37:09]
<Aleks (he/him/il/lui)> hmyeah but it should already be part of bookworm builds
[22:37:30]
<Aleks (he/him/il/lui)> but i kind of yolorefactored the piece of code
[22:38:06]
<12b> idk, but from what I've tested, the env is the same on bullseye. it's just that the unbound variables do not trigger an error in bullseye, but they do on bookworm
[22:38:15]
<Aleks (he/him/il/lui)> ah yes i see
[22:38:17]
<Aleks (he/him/il/lui)> https://github.com/YunoHost/yunohost/blob/bookworm/helpers/config#L50
[22:38:21]
<Aleks (he/him/il/lui)> 🤦♂️
[22:38:32]
<Aleks (he/him/il/lui)> this piece of code assumes $install_dir and $final_path are always defined
[22:38:37]
<Aleks (he/him/il/lui)> but vpnclient has neither
[22:38:45]
<Aleks (he/him/il/lui)> zzzzzzz
[22:39:11]
<Émy - OniriCorpe> nice catch
[22:41:07]
<12b> yes exactly. I tried to fix this in an ugly way, like this : https://github.com/Lab-8916100448256/yunohost/commit/607eebef99c2c694e125c2d4e7db240b22bd1684
I does the trick but I don't know that woudl be an acceptable way
[22:41:14]
<12b> yes exactly. I tried to fix this in an ugly way, like this : https://github.com/Lab-8916100448256/yunohost/commit/607eebef99c2c694e125c2d4e7db240b22bd1684
I does the trick but I don't know that would be an acceptable way
[22:44:16]
<Émy - OniriCorpe> it's acceptable! ^w^ pr?
[22:44:33]
<Yunohost Git/Infra notifications> [yunohost] @alexAubin pushed 1 commit to bookworm: helpers/configpanel: fix assumption claquée au sol that install_dir and final_path always exist ([2a4d5bfb](https://github.com/YunoHost/yunohost/commit/2a4d5bfbc6b6796d4fbe07d23c0c5e6c7324e8e3))
[22:44:55]
<Aleks (he/him/il/lui)> ah well i commited the same 😅
[22:45:07]
<Émy - OniriCorpe> ahahah
[22:45:22]
<Yunohost Git/Infra notifications> 🏗️ Starting build for yunohost/12.0.0+202403202245 for bookworm/unstable/all ...
[22:45:28]
<Émy - OniriCorpe> "fix assumption claquée au sol" 👌
[22:45:42]
<12b> ok, that will save me from doing a PR :-)
[22:46:23]
<Yunohost Git/Infra notifications> ✔️ Completed build for yunohost/12.0.0+202403202245 for bookworm/unstable/all.
[22:47:07]
<12b> but this does not solve all the issues with vpnclient.
[22:47:54]
<Aleks (he/him/il/lui)> 😬
[22:50:31]
<12b> as I wrote yesterday, before facing the above error I had this one :
```
pydantic.error_wrappers.ValidationError: 1 validation error for ConfigPanelModel
panels -> 0 -> sections -> 0 -> options -> 3 -> FileOption -> accept
value is not a valid list (type=type_error.list)
```
which I fixed in config_panel.toml by replacing `accept = ".cube, .ovpn, .conf"` by `accept = [".cube", ".ovpn", ".conf"]`
[22:51:26]
<12b> but it turns out that is not enough. It gets rid of the pydantic error, but there is now another error
[22:52:17]
<Émy - OniriCorpe> ah but
[22:52:42]
<Émy - OniriCorpe> are configpanel 1.0 (not 0.1) and manifest v1 compatible?
[22:54:10]
<Émy - OniriCorpe> bonus question: do we want to create a manifest for configpanel are validate it in CI?
https://github.com/YunoHost/apps/tree/master/schemas
[22:55:25]
<Salamandar> do you mean schema
[22:55:28]
<Salamandar> well yes why not
[22:55:40]
<Salamandar> tbh there's no doc yet for config panel v2
[22:55:49]
<Salamandar> also @oniricorpe:im.emelyne.eu
[22:55:56]
<Émy - OniriCorpe> > <@Salamandar:matrix.org> do you mean schema
yes
[22:56:02]
<Salamandar> https://salamandar.github.io/yunodocusaurus/docs/
[22:56:11]
<Salamandar> if someone wants to work on this with me
[22:56:47]
<Émy - OniriCorpe> me me me
[22:57:14]
<Salamandar> :D
[22:57:17]
<Salamandar> i knew it
[22:57:41]
<Émy - OniriCorpe> am docs nerd
[22:58:03]
<Salamandar> 'tin je m'étais emmerdé sur certains trucs
[22:58:08]
<Salamandar> https://aria.im/_matrix/media/v1/download/matrix.org/JHVQAnEJRqpMkWQkMMqCqClr
[22:58:43]
<Émy - OniriCorpe> > as I wrote yesterday, before facing the above error I had this one :
> ```
> pydantic.error_wrappers.ValidationError: 1 validation error for ConfigPanelModel
> panels -> 0 -> sections -> 0 -> options -> 3 -> FileOption -> accept
> value is not a valid list (type=type_error.list)
> ```
> which I fixed in config_panel.toml by replacing `accept = ".cube, .ovpn, .conf"` by `accept = [".cube", ".ovpn", ".conf"]`
do you want to do a pr for that ?
[22:58:45]
<Salamandar> theyarethesameplusbutton.jpg
[22:58:46]
<Salamandar> https://aria.im/_matrix/media/v1/download/matrix.org/QPeCkFtIwIWFBMiYgPgGESaI
[22:59:12]
<Émy - OniriCorpe> ahah nice
[23:00:02]
<Aleks (he/him/il/lui)> > as I wrote yesterday, before facing the above error I had this one :
> ```
> pydantic.error_wrappers.ValidationError: 1 validation error for ConfigPanelModel
> panels -> 0 -> sections -> 0 -> options -> 3 -> FileOption -> accept
> value is not a valid list (type=type_error.list)
> ```
> which I fixed in config_panel.toml by replacing `accept = ".cube, .ovpn, .conf"` by `accept = [".cube", ".ovpn", ".conf"]`
that one is related to the pydantic refactoring of the config panel in bookworm which imply stricter validation, so should be fixed in vpnclient app yeah
[23:00:54]
<12b> > <@oniricorpe:im.emelyne.eu> do you want to do a pr for that ?
I can do that, but I need to check some things with you before. because that is not enough to fix the issue (I'm trying to find the error I had yesterday nigh after that attempt at a fix)
[23:01:34]
<Émy - OniriCorpe> we can do multiple commits for that
[23:01:48]
<Émy - OniriCorpe> no need to be perfect on first commit
[23:12:40]
<Yunohost Git/Infra notifications> [yunohost] 🔴 Pipeline [#1221490579](https://gitlab.com/YunoHost/yunohost/-/pipelines/1221490579) failed on branch bookworm
[23:24:04]
<12b> OK, I'll start the PR, But let me explain where I'm at before I do that. The error I had next, when trying to upload a .cube file, was `Unsupported image type : application/json`
which seems to be coming from this code : https://github.com/YunoHost/yunohost/blob/2a4d5bfbc6b6796d4fbe07d23c0c5e6c7324e8e3/src/utils/form.py#L1339
So to get rid of that, I tried to change the accept parameter in config_panel.toml of vpnclient again to this : `accept = [".cube", ".ovpn", ".conf", "application/json", "text/plain"]` (application/json is the mime type detected when uploading a cube file, and text/plain is for ovpn file)
It is removing the error, but all this raises some questions :
1 : do I need to keep the `".cube", ".ovpn", ".conf"` ?
2: shouldn't the error message `Unsupported image type` be changed to someting like `Unsupported file type`?
4: Is there another way to get the extenstion of the file than what is done here https://github.com/YunoHost/yunohost/blob/2a4d5bfbc6b6796d4fbe07d23c0c5e6c7324e8e3/src/utils/form.py#L1342 ? because this will clearly not give `.cube` from a mime type of `application/json`
5: Is it important to have the correct file extention in the code above?
3: whrere should I look next to understand why the .cube file upload still seems to not be working? (no more error, but no change after I upload the .cube file)
[23:34:10]
<Émy - OniriCorpe> for 4: yes it's not what we want :/
i think `pathlib.Path('filename').suffix` is what we need
[23:34:41]
<Émy - OniriCorpe> also `accept` is really poorly documented uhhhhh
[23:36:54]
<Émy - OniriCorpe> i think we can already fix vpnclient with the square braces and discuss the rest
[23:37:58]
<Émy - OniriCorpe> done https://github.com/YunoHost-Apps/vpnclient_ynh/commit/a04370de5726848b767f2a3a7ba88594120bbc3d
[23:38:29]
<Aleks (he/him/il/lui)> (the whole accept thing was probably implicitly redesign to match https://github.com/YunoHost/yunohost/blob/2a4d5bfbc6b6796d4fbe07d23c0c5e6c7324e8e3/share/config_domain.toml#L19 etc)
[23:39:08]
<Aleks (he/him/il/lui)> (and not re-tested on vpnclient because well it's hell to keep track of what app actually use obscure / edgecase feature of the config panel ...)
[23:41:16]
<Émy - OniriCorpe> https://github.com/search?q=org%3AYunoHost-Apps+accept+config_panel.toml&type=code
[23:41:55]
<12b> > <@oniricorpe:im.emelyne.eu> done https://github.com/YunoHost-Apps/vpnclient_ynh/commit/a04370de5726848b767f2a3a7ba88594120bbc3d
gah, i did a PR but I'm too slow (https://github.com/YunoHost-Apps/vpnclient_ynh/pull/121)
[23:42:47]
<Aleks (he/him/il/lui)> imho we should clarify if we want to be extension-based or mimetype-based or both or ugh
[23:43:58]
<Émy - OniriCorpe> > gah, i did a PR but I'm too slow (https://github.com/YunoHost-Apps/vpnclient_ynh/pull/121)
aaaasorryyyyyy
[23:44:23]
<Émy - OniriCorpe> hum
[23:44:27]
<12b> > <@oniricorpe:im.emelyne.eu> aaaasorryyyyyy
no problem
[23:44:28]
<Émy - OniriCorpe> https://aria.im/_matrix/media/v1/download/im.emelyne.eu/vdgDrDyHtGUNqfkgXBJQnoXC
[23:44:38]
<Émy - OniriCorpe> i'm not for adding mimetype for now
[23:44:55]
<Émy - OniriCorpe> we should decide before modifiying thepackage behaviour
[23:45:47]
<Émy - OniriCorpe> > <@Alekswag:matrix.org> imho we should clarify if we want to be extension-based or mimetype-based or both or ugh
so this
[23:46:30]
<Émy - OniriCorpe> tbh mimetype is technically better but more cryptic for the packager?
[23:46:39]
<12b> > <@oniricorpe:im.emelyne.eu> for 4: yes it's not what we want :/
> i think `pathlib.Path('filename').suffix` is what we need
I can test this to see if it makes the .cube file upload working
[23:50:36]
<Émy - OniriCorpe> > <@oniricorpe:im.emelyne.eu> tbh mimetype is technically better but more cryptic for the packager?
i think it's not that much a pain if it's more cryptic to configure since it's a not very used setting
[23:50:49]
<Émy - OniriCorpe> but we definitively need to better document the whole thing
[23:56:53]
<12b> > I can test this to see if it makes the .cube file upload working
mmm... with the code I see there : https://github.com/YunoHost/yunohost/blob/2a4d5bfbc6b6796d4fbe07d23c0c5e6c7324e8e3/src/utils/form.py#L1326
is the filename available when Moulinette.interface.type == "api" ?
[23:59:56]
<Aleks (he/him/il/lui)> > <@oniricorpe:im.emelyne.eu> tbh mimetype is technically better but more cryptic for the packager?
to me the biggest implication is being able to properly filter on the extension when browsing file client-side