Wednesday, March 20, 2024
dev@conference.yunohost.org
March
Mon Tue Wed Thu Fri Sat Sun
        1
2
3
4
5
6
7 8 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
             

[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