Tuesday, September 19, 2023
apps@conference.yunohost.org
September
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
 
             

[00:09:42] <Yunohost Git/Infra notifications> [apps] @alexAubin just made [pull request #1717](https://github.com/YunoHost/apps/pull/1717) ready for review: New app store
[03:45:36] <Tag> Can I use config_panel to change a YunoHost app setting, and do nothing more ? (no bind, no custom getter/setter)
[06:40:44] <Yunohost Git/Infra notifications> [apps] @ericgaspar pushed 1 commit to master: set as maintained ([349d35f5](https://github.com/YunoHost/apps/commit/349d35f5db07d942a2831d0e516ddaac8cd1a92f))
[09:02:20] <Aleks (he/him/il/lui)> > <@tag:lostpod.me> Can I use config_panel to change a YunoHost app setting, and do nothing more ? (no bind, no custom getter/setter)

I guess but whats the point then :P
[09:27:30] <orhtej2> > <@Alekswag:matrix.org> I guess but whats the point then :P

settingshoarder_ynh
[09:28:00] <orhtej2> (also https://xyproblem.info/)
[09:44:52] <Tag> > <@Alekswag:matrix.org> I guess but whats the point then :P

The app script use yunohost app setting on startup :D
(I'm modifying restic_ynh to use S3 buckets as backend)
[09:49:58] <orhtej2> > <@tag:lostpod.me> The app script use yunohost app setting on startup :D
> (I'm modifying restic_ynh to use S3 buckets as backend)

BTW do you know why borg and restic both use systemd services? And would it be possible to have action that creates backup now?
[10:00:53] <Aleks (he/him/il/lui)> Imho the point is to use systemd timer+services as cron jobs
[10:06:08] <orhtej2> > <@Alekswag:matrix.org> Imho the point is to use systemd timer+services as cron jobs

makes sense, OTOH it created problems in the past where the service would start at system startup and create backups. So to rephrase my question: would it be possible to have these run on demand/on cron or smth? Or was this already explored and had some side effects that I don't see
[10:06:22] <orhtej2> (other than diagnostics complaining that the service is dead)
[10:33:03] <Tag> I think there's a bug in the current restic_ynh app, the .service is enabled so it's started after boot. It shouldn't be enabled.
[10:33:46] <Tag> The diagnostics will complain about the sercice dead, that's a yunohost core issue, not supporting .service type = oneshot
[10:34:28] <Tag> It's possible to start a backup on demand, juste start the service :D
[10:34:56] <Tag> The .timer basically start the .service depending on the OnCalendar thing
[11:43:14] <isAAAc> no time to do it yesterday evening,
i just launched it:
```
yunohost app install https://github.com/YunoHost-Apps/framaforms_ynh/tree/testing --debug
```

[11:43:20] <Aleks (he/him/il/lui)> > <@tag:lostpod.me> The diagnostics will complain about the sercice dead, that's a yunohost core issue, not supporting .service type = oneshot

We definitely need to find some way to have the psychokwak emoji in matrix/element
[11:43:21] <Aleks (he/him/il/lui)> https://botsin.space/@scream
[11:44:36] <orhtej2> Tio: can you consider checking if https://github.com/YunoHost-Apps/friendica_ynh/pull/112 helps with your backup issues? We can work on speeding MariaDB dumps later (TM)
[11:52:47] <Tag> > well yes but actually no, `borg` services are running 24/7 despite doing backups on timer

I don't know about borg yet :x it doesn't support S3 so I went with restic
[11:57:29] <orhtej2> > <@tag:lostpod.me> I don't know about borg yet :x it doesn't support S3 so I went with restic

sure sure, I looked at both options and they look ~same although restic seems better maintained in YNH
[12:00:04] <Tag> ah, there's two borgs... borg_ynh and borgserver_ynh!
I guess it's borgserver.service that run 24/7! borg.service is a oneshot like restic https://github.com/YunoHost-Apps/borg_ynh/blob/master/conf/systemd.service#L6
[12:00:39] <Tag> huh my bad, borgserver.service doesn't exist ? 🤔
[12:01:01] <isAAAc> ```
root@krashboyz:~# yunohost log show 20230919-112714-app_install-framaforms
description: Install the 'framaforms' app
log_path: /var/log/yunohost/categories/operation/20230919-112714-app_install-framaforms.log
logs:
- 2023-09-19 13:35:01,636: DEBUG - + replace_string=/var/www/framaforms
- 2023-09-19 13:35:01,636: DEBUG - + replace_string=/var/www/framaforms
- 2023-09-19 13:35:01,637: DEBUG - + replace_string=/var/www/framaforms
- 2023-09-19 13:35:01,637: DEBUG - + sed --in-place s@__INSTALL_DIR__@/var/www/framaforms@g /etc/cron.d/framaforms
- 2023-09-19 13:35:01,652: DEBUG - + ynh_store_file_checksum --file=/etc/cron.d/framaforms
- 2023-09-19 13:35:01,652: DEBUG - + local legacy_args=f
- 2023-09-19 13:35:01,653: DEBUG - + args_array=(['f']='file=' ['u']='update_only')
- 2023-09-19 13:35:01,653: DEBUG - + local -A args_array
- 2023-09-19 13:35:01,653: DEBUG - + local file
- 2023-09-19 13:35:01,653: DEBUG - + local update_only
- 2023-09-19 13:35:01,653: DEBUG - + update_only=0
- 2023-09-19 13:35:01,654: DEBUG - + ynh_handle_getopts_args --file=/etc/cron.d/framaforms
- 2023-09-19 13:35:01,654: DEBUG - + set +o xtrace
- 2023-09-19 13:35:01,683: DEBUG - + local checksum_setting_name=checksum__etc_cron.d_framaforms
- 2023-09-19 13:35:01,684: DEBUG - + '[' 0 -eq 1 ']'
- 2023-09-19 13:35:01,686: DEBUG - ++ md5sum /etc/cron.d/framaforms
- 2023-09-19 13:35:01,686: DEBUG - ++ cut '--delimiter= ' --fields=1
- 2023-09-19 13:35:01,689: DEBUG - + ynh_app_setting_set --app=framaforms --key=checksum__etc_cron.d_framaforms --value=92228a0587e5153f67a1996f2f3669da
- 2023-09-19 13:35:01,690: DEBUG - + local _globalapp=framaforms
- 2023-09-19 13:35:01,691: DEBUG - + local legacy_args=akv
- 2023-09-19 13:35:01,691: DEBUG - + args_array=(['a']='app=' ['k']='key=' ['v']='value=')
- 2023-09-19 13:35:01,692: DEBUG - + local -A args_array
- 2023-09-19 13:35:01,692: DEBUG - + local app
- 2023-09-19 13:35:01,693: DEBUG - + local key
- 2023-09-19 13:35:01,694: DEBUG - + local value
- 2023-09-19 13:35:01,694: DEBUG - + ynh_handle_getopts_args --app=framaforms --key=checksum__etc_cron.d_framaforms --value=92228a0587e5153f67a1996f2f3669da
- 2023-09-19 13:35:01,694: DEBUG - + set +o xtrace
- 2023-09-19 13:35:01,816: DEBUG - + app=framaforms
- 2023-09-19 13:35:01,816: DEBUG - + [[ checksum__etc_cron.d_framaforms =~ (unprotected|protected|skipped)_ ]]
- 2023-09-19 13:35:01,817: DEBUG - + ynh_app_setting set framaforms checksum__etc_cron.d_framaforms 92228a0587e5153f67a1996f2f3669da
- 2023-09-19 13:35:01,818: DEBUG - + set +o xtrace
- 2023-09-19 13:35:01,947: DEBUG - + '[' 0 -eq 1 ']'
- 2023-09-19 13:35:01,948: DEBUG - + '[' -n '' ']'
- 2023-09-19 13:35:01,949: DEBUG - + unset backup_file_checksum
- 2023-09-19 13:35:01,949: DEBUG - + ynh_script_progression '--message=Installation of framaforms completed' --last
- 2023-09-19 13:35:01,950: DEBUG - + set +o xtrace
- 2023-09-19 13:35:02,071: DEBUG - + set +o xtrace
- 2023-09-19 13:35:02,089: DEBUG - + echo '! Helper used in legacy mode !'
- 2023-09-19 13:35:02,090: DEBUG - + set +x
- 2023-09-19 13:35:02,100: DEBUG - + echo '[####################] > Installation of framaforms completed'
- 2023-09-19 13:35:02,102: INFO - [####################] > Installation of framaforms completed
- 2023-09-19 13:35:02,103: DEBUG - + set -o xtrace
- 2023-09-19 13:35:02,105: DEBUG - + ynh_exit_properly
- 2023-09-19 13:35:02,105: DEBUG - + local exit_code=0
- 2023-09-19 13:35:02,106: DEBUG - + [[ install =~ ^install$|^upgrade$|^restore$ ]]
- 2023-09-19 13:35:02,108: DEBUG - + rm -rf /var/cache/yunohost/download/
- 2023-09-19 13:35:02,112: DEBUG - + '[' 0 -eq 0 ']'
- 2023-09-19 13:35:02,112: DEBUG - + exit 0
- 2023-09-19 13:35:03,115: DEBUG - Checking that required services are up and running...
- 2023-09-19 13:35:05,404: SUCCESS - Installation completed
metadata:
args:
app: https://github.com/YunoHost-Apps/framaforms_ynh/tree/testing
force: False
label: None
no_remove_on_failure: False
ended_at: 2023-09-19 13:35:05
env:
YNH_APP_ACTION: install
YNH_APP_ARG_ADMIN: isaaac
YNH_APP_ARG_DELETION: 0
YNH_APP_ARG_DOMAIN: form.mcpletsch.org
YNH_APP_ARG_EXPIRATION: 0
YNH_APP_ARG_INIT_MAIN_PERMISSION: all_users
YNH_APP_ARG_LANGUAGE: fr
YNH_APP_ARG_PATH: /poll
YNH_APP_BASEDIR: /var/cache/yunohost/app_tmp_work_dirs/app_mpl2tbvv
YNH_APP_ID: framaforms
YNH_APP_INSTANCE_NAME: framaforms
YNH_APP_INSTANCE_NUMBER: 1
YNH_APP_MANIFEST_VERSION: 1.1~ynh1
YNH_APP_PACKAGING_FORMAT: 2.0
YNH_ARCH: amd64
YNH_DEBIAN_VERSION: bullseye
error: None
interface: cli
operation: app_install
parent: None
related_to:
- app
- framaforms
started_at: 2023-09-19 13:27:14
success: True
yunohost_version: 11.2.4
metadata_path: /var/log/yunohost/categories/operation/20230919-112714-app_install-framaforms.yml
name: 20230919-112714-app_install-framaforms
```
[12:01:14] <Tag> huh nope I'm wrong about borgserver
[12:01:44] <orhtej2> > <@tag:lostpod.me> huh nope I'm wrong about borgserver

no, I'm not running server
[12:02:04] <isAAAc> i'm not auto connected from sso
[12:03:01] <isAAAc> connection OK with l/p
[12:03:33] <Tag> aaah type oneshot is actually handled by yunohost!! I missed that one https://github.com/YunoHost/yunohost/blob/5110cd0800faf8f406fe1bc69cb91199f2674a20/src/service.py#L444-L465
Sooo that could by why you see it running https://github.com/YunoHost-Apps/borg_ynh/blob/master/scripts/install#L141
[12:04:30] <Tag> Anyway, that's yunohost cosmetic, it's not actually running. Juste hit the restart button / `systemctl start borg` and it should perform a backup
[12:06:23] <isAAAc> clicking on "my account" push me to sso, same for "disconnect" (and when i click back on framaforms from sso , i'm back still connected)
[12:06:48] <isAAAc> clicking on "fonctionnalités" push me to sso
[12:08:51] <isAAAc> is i disconnect from sso , and log in with an other account, clicking on framaforms, i'm back already logged with the first account
[12:09:09] <isAAAc> Aleks (he/him/il/lui): do you want i try some other tests ?
[12:09:53] <isAAAc> create a new form push me to sso too
[12:10:46] <Aleks (he/him/il/lui)> ugh, Matrix threads x_x
[12:11:47] <Aleks (he/him/il/lui)> hmpf now i have to read a bash log in a super small window because #MatrixThreads
[12:11:56] <isAAAc> oh
[12:12:13] <isAAAc> do you want i post it again as usual post ?
[12:12:24] <Aleks (he/him/il/lui)> i wish there was a way to disable matrix threads entirely really ...
[12:12:45] <Aleks (he/him/il/lui)> yes and please share the actual paste.yunohost.org link, copy-pasting the entire log is just hell
[12:12:53] <Aleks (he/him/il/lui)> paste tools exist for that reason
[12:21:26] <isAAAc> https://paste.yunohost.org/imawewehex.bash
[12:22:18] <Aleks (he/him/il/lui)> sooo, the installation completed and there is nothing wrong with it ? not sure to get what i'm supposed to find in here
[12:22:49] <Aleks (he/him/il/lui)> isAAAc: please let's continue the discussion here .. really, matrix threadsm what the heck
[12:23:03] <Aleks (he/him/il/lui)> am i the only one to find the design of matrix horrendous and redundant with regular replies ?
[12:23:37] <Aleks (he/him/il/lui)> not to mention the fact that it marks the entire room as "unread" and you can spend 5 minutes not understanding why because you're at the bottom of the screen etc
[12:23:52] <isAAAc> agree


[12:24:36] <Aleks (he/him/il/lui)> i guess threads could be nice if they were implemented similarly to mattermost where replies are automatically threaded etc but that's not how it works in matrix because it was designed after replies and it's just a huge mess
[12:25:45] <isAAAc> https://paste.yunohost.org/imawewehex.bash in the pastebin, there are 54 occurency of error
[12:25:46] <Aleks (he/him/il/lui)> anyway, if i understand correctly, framaforms installs but is unusable because basically everything gets redirected to the user portal ?
[12:26:39] <isAAAc> yes, i can log in, but can't unlog, even i change of sso user,
each link push me to sso back
[12:26:57] <Aleks (he/him/il/lui)> `371829 DEBUG WD security: Security warning: Couldn't write .htaccess file. Please create a .htaccess file in your private:// directory which contains the following lines: # Deny all requests from Apache 2.4+. [error]` zzzzz great but that's for apache (at least that specific one)
[12:30:19] <Aleks (he/him/il/lui)> hmpf yeah so idk it doesnt work but honestly i wasnt really planning on going into full deep debugging of the app, i'm not familiar with `drush` and it seems like hell, i'd rather have somebody else looking into it which has some actual interest in getting the app working, I was merely trying to help closing one PR among many others ...
[12:31:03] <isAAAc> i understand
[12:31:48] <isAAAc> perhaps lapineige could help ? there were their PR
[12:34:19] <isAAAc> in any case, if someone could help to debug and fix framaforms\_ynh or move to a fresh yakforms\_ynh, feel free to ping me here or in pm, i can remove and reinstall as many times as needed to help
[12:37:00] <Aleks (he/him/il/lui)> naively I would ~half start over with the packages and re-read the recommended install steps in the official documentation, there's no way that all this `drush` soup hasnt been simplified by the upstream or it's a perfect recipe for making sure nobody else installs the app...
[12:38:23] <Aleks (he/him/il/lui)> or maybe that's mainly because of LDAP integration but idk everything just seems overly complex
[13:01:16] <Yunohost Git/Infra notifications> App prosody goes down from level 8 to 6 in job [#18675](https://ci-apps.yunohost.org/ci/job/18675)
[14:19:26] <Yunohost Git/Infra notifications> App trustyhash goes down from level 8 to 6 in job [#18677](https://ci-apps.yunohost.org/ci/job/18677)
[15:08:03] <Yunohost Git/Infra notifications> [apps/app-store] appstore: update i18n - Alexandre Aubin
[15:08:03] <Yunohost Git/Infra notifications> [apps] @alexAubin pushed 63 commits to app-store ([662fcd2af3f0...ebc0f34c12db](https://github.com/YunoHost/apps/compare/662fcd2af3f0...ebc0f34c12db))
[15:08:10] <Yunohost Git/Infra notifications> [apps/app-store] appstore: forgot to remove some debug print statement - Alexandre Aubin
[15:24:42] <Yunohost Git/Infra notifications> [apps] @alexAubin pushed 1 commit to app-store: appstore: misc cosmetics/constrast ([0a6e0b01](https://github.com/YunoHost/apps/commit/0a6e0b01654e7785c7b4f5b10e8143edcb14ec3a))
[15:52:32] <lapineige> > perhaps lapineige could help ? there were their PR

I did a very basic, brainless PR to convert to app v2 and change the same, I didn't even install it. Just doing the easy to do first part of the work
[15:55:05] <lapineige> > <@Alekswag:matrix.org> not to mention the fact that it marks the entire room as "unread" and you can spend 5 minutes not understanding why because you're at the bottom of the screen etc

that's the biggest flaw imho, because otherwise I love how it helps to focus on one discussion somewhere, without spamming a lot, and allows for parrallel discussions without making them a mess
[17:00:40] <Yunohost Git/Infra notifications> [apps] @alexAubin pushed 1 commit to app-store: appstore: replace tailwind huge JS play CDN with some actual minimal css build ([0fb538c6](https://github.com/YunoHost/apps/commit/0fb538c6e7d67a2a7b38ba48bf75fb0902042b45))
[17:19:09] <Yunohost Git/Infra notifications> [apps] @alexAubin edited [pull request #1717](https://github.com/YunoHost/apps/pull/1717): New app store
[17:25:35] <Yunohost Git/Infra notifications> [apps] @yunohost-bot pushed 1 commit to add-to-wishlist-foobar: Add foobar to wishlist ([d4d9b416](https://github.com/YunoHost/apps/commit/d4d9b416741ee816cfbbb1136c25ef0f4a23a676))
[17:25:35] <Yunohost Git/Infra notifications> [apps] @yunohost-bot created new branch add-to-wishlist-foobar
[17:25:38] <Yunohost Git/Infra notifications> [apps] @yunohost-bot opened [pull request #1735](https://github.com/YunoHost/apps/pull/1735): Add foobar to wishlist
[17:26:24] <Yunohost Git/Infra notifications> [apps] @alexAubin closed [pull request #1735](https://github.com/YunoHost/apps/pull/1735): Add foobar to wishlist
[19:13:34] <orhtej2> > <@yunohostinfra:matrix.org> [apps] @yunohost-bot pushed 1 commit to add-to-wishlist-foobar: Add foobar to wishlist ([d4d9b416](https://github.com/YunoHost/apps/commit/d4d9b416741ee816cfbbb1136c25ef0f4a23a676))

we get automation? <3
[19:14:22] <Aleks (he/him/il/lui)> eeeh, more like PRs using the new app store form thing
[19:14:42] <Aleks (he/him/il/lui)> hmm let me share you the private alpha app store in PM
[19:22:47] <aaron> Hey guys, I wanted to ask how the packaging flow for yunohost looks like?
Like in the case of friendica for example:
When there's a new release - which things need to be changed?
I see there's a manifest.toml file (https://github.com/YunoHost-Apps/friendica_ynh/blob/master/manifest.toml) and the url provides the latest tar package from friendica, in this case https://github.com/friendica/friendica/archive/refs/tags/2023.05.tar.gz + checksum. Is then the only thing that needs to be changed the new zipped tar package?
or more things?
[19:26:29] <Tag> Eeeeh it's basically it. But you shouldn't even have to do this yourself for `friendica` since there's an `autoupdate.strategy` for this app
A robot will do this for you and open a PR on the package, and run the CI
[19:27:06] <Tag> Then you would have to check the CI and ideally try to the upgrade yourself to see if everything goes fine
[19:27:52] <aaron> ohh wow, so this is automated
[19:27:54] <Tag> (not everything is automated yet, but that's the case for friendica)
[19:28:42] <aaron> aha I see
[19:28:47] <Tag> If it's a minor update, that's probably it. But for major updates you may need to check config files, dependencies, etc...
[19:29:22] <Yunohost Git/Infra notifications> [apps] @alexAubin pushed 1 commit to app-store: appstore: cosmetics, add shadow on screenshot to make them stand out a bit ([498255f6](https://github.com/YunoHost/apps/commit/498255f62daf18597f0259586ebb1a760cb7f68e))
[19:45:05] <orhtej2> is it possible to disable rollback after upgrade?
[19:45:21] <orhtej2> I'm testing a thing and I want to see the state as upgrade broke
[19:46:36] <Tag> Yes, there's a "no remove on fail" flag
[19:46:41] <orhtej2> > <@aaron:matrix.trom.tf> Hey guys, I wanted to ask how the packaging flow for yunohost looks like?
> Like in the case of friendica for example:
> When there's a new release - which things need to be changed?
> I see there's a manifest.toml file (https://github.com/YunoHost-Apps/friendica_ynh/blob/master/manifest.toml) and the url provides the latest tar package from friendica, in this case https://github.com/friendica/friendica/archive/refs/tags/2023.05.tar.gz + checksum. Is then the only thing that needs to be changed the new zipped tar package?
> or more things?

also if you don't bump the version the upgrade will not work unless run with `--force`
[19:47:02] <orhtej2> (this version https://github.com/YunoHost-Apps/friendica_ynh/blob/f718f5af460774cce5d95bb96f13ff7df48e65a4/manifest.toml#L8)
[19:47:38] <orhtej2> > <@tag:lostpod.me> Yes, there's a "no remove on fail" flag

```
-c, --continue-on-failure
Continue to upgrade apps even if one or more upgrade failed
```

this is it? the description seems misleading
[19:47:56] <orhtej2> ahh, there's one for `install`
[19:48:01] <Tag> ah euh maybe i mixed with the install one
[19:48:03] <orhtej2> but not for `upgrade`
[19:50:24] <orhtej2> worry not, I'll see what I can frankenstein in
[19:52:30] <Tag> that's the spirit!!
[19:55:26] <orhtej2> perhaps someone here knows how `prisma` knows what schema version is running?
[19:55:56] <orhtej2> because here: https://paste.yunohost.org/raw/fisamogiga it's trying to re-init umami db despite it being you know, already there
[19:58:24] <orhtej2> oh no you did not

v1.33:

```
| migration_name |
+---------------------+
| 20210320112717_init |

```

v1.33.1:

```
| migration_name |
+----------------+
| 01_init |
```
[19:59:39] <tituspijean> And everyone knows that 01 > 20210320112717 🙃
[20:01:39] <orhtej2> seriously, these 2 versions came out 1 day apart, clearly at least one person was bitten by this?
[20:01:47] <orhtej2> does yoloediting the DB work? :P
[20:02:22] <Aleks (he/him/il/lui)> > but not for `upgrade`

maybe `--no-safety-backup` implicitly does what you want
[20:02:29] <tituspijean> I guess so, but shouldn't it be better to flag it upstream ?
[20:03:11] <orhtej2> > <@titus:pijean.ovh> I guess so, but shouldn't it be better to flag it upstream ?

this version is 1 year old, they already moved to greener pastures of v2.x
[20:03:19] <Aleks (he/him/il/lui)> like yeah it wont remove+restore the backup if --no-safety-backup is set : https://github.com/YunoHost/yunohost/blob/dev/src/app.py#L809
[20:04:15] <orhtej2> > this version is 1 year old, they already moved to greener pastures of v2.x

I'm only fixing this because Guillaume Bouzige is stuck on 1.33 in YNH and I **think** upgrade to v2.x is salvagable
[20:04:27] <orhtej2> s/fixing/investigating/
[20:39:48] <orhtej2> how does one run a command in i.e. `install` that is known to fail but will produce useful side effect? In other words how do I ignore non-0 return code from `command`?
[20:42:39] <orhtej2> > how does one run a command in i.e. `install` that is known to fail but will produce useful side effect? In other words how do I ignore non-0 return code from `command`?

answering myself based on google and grep through sources: `command || true`
[21:00:33] <orhtej2> > does yoloediting the DB work? :P

for future reference: `npx prisma migrate resolve --applied "01_init"`
[21:01:44] <Salamandar> Huh
[21:02:06] <Salamandar> I wanted to work again on matrix-appservice-irc_ynh. So I basically copy-pasted the manifest.toml from mautrix-whatsapp_ynh
[21:02:13] <Salamandar> and… it's not parsed properly by python toml
[21:02:26] <Salamandar> or… the file is not toml compliant
[21:02:48] <Salamandar> in any case, command line installation fails on install questions
[21:03:23] <orhtej2> this ? https://github.com/YunoHost-Apps/mautrix_whatsapp_ynh/blob/master/manifest.toml
[21:03:47] <Salamandar> tl;dr, here's the problematic lines of the manifest.toml:

```
[install.botusers]
ask.en = "Choose Matrix user(s) authorized to bridge with the WhatsApp bot."
ask.fr = "Choisissez le/les compte(s) Matrix autorisés à utiliser la passerelle WhatsApp."
type = "string"
example = "@johndoe:server.name or server.name or *"
help.en = """
A remote or local user (@johndoe:server.name),the local server (server.name), a remote server (matrix.org), or all remote/local servers (*) can be authorized.
Give the Matrix server_name, not the full domain/URL.
It is also possible to specify multiple values by separating them with comma. Example: @johndoe:server.name,domain.tld,matrix.org"""
help.fr = """Un compte local ou distant (@johndoe:server.name), le serveur local (server.name), un serveur distant (matrix.org), ou tous les serveurs remote/local (*).
Donner le nom du serveur Matrix, pas le domaine/URL complet.
Il est également possible de spécifier plusieurs valeurs en les séparant par une virgule. Exemple : @johndoe:server.name,domain.tld,matrix.org"""
```


[21:04:10] <Salamandar> You would expect that python finds something with the path `manifest["install"]["botusers"]["help"]["en"]`
[21:04:12] <Salamandar> buuuuuuuuuuuut
[21:04:50] <Salamandar> ```
# python3 -c 'import yaml, toml; a = open("manifest_wa.toml"); b = toml.load(a); print(yaml.dump(b["install"]["botusers"]))'
ask:
en: Choose Matrix user(s) authorized to bridge with the WhatsApp bot.
fr: "Choisissez le/les compte(s) Matrix autoris\xE9s \xE0 utiliser la passerelle\
\ WhatsApp."
en: 'A remote or local user (@johndoe:server.name),the local server (server.name),
a remote server (matrix.org), or all remote/local servers (*) can be authorized.

Give the Matrix server_name, not the full domain/URL.

It is also possible to specify multiple values by separating them with comma. Example:
@johndoe:server.name,domain.tld,matrix.org'
example: '@johndoe:server.name or server.name or *'
fr: "Un compte local ou distant (@johndoe:server.name), le serveur local (server.name),\
\ un serveur distant (matrix.org), ou tous les serveurs remote/local (*).\nDonner\
\ le nom du serveur Matrix, pas le domaine/URL complet.\nIl est \xE9galement possible\
\ de sp\xE9cifier plusieurs valeurs en les s\xE9parant par une virgule. Exemple\
\ : @johndoe:server.name,domain.tld,matrix.org"
help: {}
type: string

```
[21:04:50] <Salamandar> see the problem ?
[21:04:52] <Salamandar> looks like multiline strings are breaking the parser
[21:05:07] <Salamandar> My guess is that python toml is broken on debian 11
[21:05:07] <Aleks (he/him/il/lui)> what's the version of `toml` exactly ?
[21:05:18] <Salamandar> because on Archlinux, everything is parsed fine
[21:05:23] <Salamandar> > <@Alekswag:matrix.org> what's the version of `toml` exactly ?

let me see
[21:05:46] <Salamandar> toml.__version__ = 0.10.1
[21:05:54] <Aleks (he/him/il/lui)> and what version are you using on archlinux ?
[21:05:55] <Salamandar> 0.10.1
[21:06:20] <Salamandar> huh
[21:06:20] <Salamandar> 0.10.2
[21:06:21] <Salamandar> not so different
[21:06:46] <Salamandar> ok, sorry, my bad: python toml parses it wrongly on archlinux too. Taplo is not broken though.
[21:09:00] <Salamandar> I can reproduce the bug with a very minimal file…
[21:09:35] <Aleks (he/him/il/lui)> so it's like the combination of definiting a sub-dict key + using a multiline statement ?
[21:09:42] <Salamandar> ```
salamandar@salamandar ~ ❯❯❯ cat test.toml
───────┬─────────────────────────────────────────────────────────────────
│ File: test.toml
───────┼─────────────────────────────────────────────────────────────────
1 │
2 │ a.b = """
3 │ my multiline string
4 │ """
───────┴─────────────────────────────────────────────────────────────────
salamandar@salamandar ~ ❯❯❯ python3 -c 'import yaml, toml; a = open("test.toml"); print(yaml.dump(toml.load(a)))'
a: {}
b: 'my multiline string

'

```
[21:09:54] <Salamandar> yeah…
[21:10:00] <Salamandar> ```
salamandar@salamandar ~ ❯❯❯ cat test.toml
───────┬─────────────────────────────────────────────────────────────────
│ File: test.toml
───────┼─────────────────────────────────────────────────────────────────
1 │
2 │ a.b = """
3 │ my multiline string
4 │ """
───────┴─────────────────────────────────────────────────────────────────
salamandar@salamandar ~ ❯❯❯ python3 -c 'import yaml, toml; a = open("test.toml"); print(yaml.dump(toml.load(a)))'
a: {}
b: 'my multiline string

'

```
[21:10:18] <Salamandar> ```
salamandar@salamandar ~ ❯❯❯ cat test.toml
──────┬─────────────────────────────────────────────────────────────────
│ File: test.toml
──────┼─────────────────────────────────────────────────────────────────
1 │
2 │ a.b = """
3 │ my multiline string
4 │ """
───────┴─────────────────────────────────────────────────────────────────
salamandar@salamandar ~ ❯❯❯ python3 -c 'import yaml, toml; a = open("test.toml"); print(yaml.dump(toml.load(a)))'
a: {}
b: 'my multiline string

'

```
[21:11:13] <Aleks (he/him/il/lui)> i guess a workaround is to use like an explicit `[install.botusers.help]` with `en` and `fr` but yeah it's a bit disappointing and puzzling
[21:12:36] <Salamandar> https://aria.im/_matrix/media/v1/download/matrix.org/OHkqjAgNAYwMyQpOqRvDmCZa
[21:12:40] <Salamandar> (gif from one of my favourite series of all times)
[21:14:15] <Salamandar> looks like multilines aren't really well supported in python : https://github.com/uiri/toml/issues/382
[21:14:29] <Salamandar> just see: https://github.com/uiri/toml/issues?q=is%3Aissue+is%3Aopen+multiline ><'
[21:15:06] <Aleks (he/him/il/lui)> oopsies
[21:15:25] <Salamandar> 😄
[21:16:03] <Aleks (he/him/il/lui)> well another way to see the issue is that we should probably not have those localization stuff directly in the toml itself but we should have some sort of gettext/po/weblatewhatever stuff that dissociates translations from manifest etc ;P
[21:16:04] <Aleks (he/him/il/lui)> and .md files
[21:16:15] <Aleks (he/him/il/lui)> but that's a 6 months project haha
[21:20:17] <Salamandar> reported: https://github.com/uiri/toml/issues/429
[21:21:03] <Salamandar> Can't wait to have a "too difficult, wontfix" like the GCC bug I reported 6 years ago and keeps being pushed milestone after milestone ><'
[21:22:22] <Salamandar> > <@Alekswag:matrix.org> i guess a workaround is to use like an explicit `[install.botusers.help]` with `en` and `fr` but yeah it's a bit disappointing and puzzling

yes, that works 🙂
[21:22:51] <Aleks (he/him/il/lui)> well it's not like the end of the world ... tbf toml has a bit too many features, or at least it's both practical and "hmf" that there are many ways to write the same thing idk
[21:23:54] <Aleks (he/him/il/lui)> anyway there's no perfect conf file format, json is not for human and is has too many quotes/brackets, yaml has weird stuff and is based on indent which many people despise, and toml has some funky bugs/syntax once you get to advanced stuff
[21:27:46] <Aleks (he/him/il/lui)> > <@Salamandar:matrix.org> reported: https://github.com/uiri/toml/issues/429

in case you didnt test it with the latest version, i would recommend mentionning that you used 0.10.2 ;P
[21:28:07] <Aleks (he/him/il/lui)> ah .2 is the latest i guess
[21:28:22] <Salamandar> you're right
[21:30:45] <Daniel> Also... passing extra dns entries to the custom_dns_rules hook as json in std... is kinda inconsistent when other places try to use toml
[21:31:17] <Yunohost Git/Infra notifications> App mopidy failed all tests in job [#18689](https://ci-apps.yunohost.org/ci/job/18689) :(
[21:31:30] <Daniel> Not suggesting if ether way is better, just it would be nice to have stuff like that unified
[21:34:27] <Aleks (he/him/il/lui)> well did you hear about app having their key-value store in yaml and being able to return yaml from custom getters ? 🙃
[22:27:09] <Salamandar> hopefully `RestrictAddressFamilies=AF_UNIX AF_INET` restricts ipv6 altogether ah ah
[22:27:10] <Salamandar> Yikes, 2nd time
[22:27:10] <Salamandar> matrix-appservice-irc tries to use my link-local ipv6 to contact my localhost homeserver… But that is known to NOT work. It should use my "global" ipv6 instead… 😢
[22:27:10] <Salamandar> that IS a shitty workaround
[22:27:10] <Tag> > <@Salamandar:matrix.org> matrix-appservice-irc tries to use my link-local ipv6 to contact my localhost homeserver… But that is known to NOT work. It should use my "global" ipv6 instead… 😢

wdym ? localhost resolves to your link-local ipv6 ?
[22:31:16] <Salamandar> yeah
[22:31:20] <Salamandar> well no
[22:31:25] <Salamandar> even my public domain ?
[22:31:29] <Salamandar> it's kinda weird…
[22:31:48] <Salamandar> when I do wget mydomain.tld, wget shows me both my global and link local addresses
[22:31:58] <Salamandar> but it chooses wisely and goes for the global one
[22:32:40] <Salamandar> dunno why node.js decides to use the link local one…
[22:32:56] <Tag> What is your local resolver doing ? /o\ Your domain shouldn't resolve the linklocal
[22:33:01] <Salamandar> 😐️
[22:33:45] <Salamandar> well ping uses my link local ip too
[22:34:49] <Tag> I really think it's not supposed to happen
[22:34:50] <Salamandar> hmmm
[22:35:19] <Salamandar> idk, i'm using a standard armbian install…
[22:35:47] <Salamandar> and domain resolving on linux is one of some mysteries i tried not to tinker until now 😄
[22:36:09] <Tag> Mmh I don't have an armbian right now :x
[23:22:00] <Yunohost Git/Infra notifications> Job [#18692](https://ci-apps.yunohost.org/ci/job/18692) for influxdb_v2 failed miserably :(