Monday, May 01, 2023
apps@conference.yunohost.org
May
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
       
             

[01:55:11] <Yunohost Git/Infra notifications> App lutim stays at level 4 in job [#15335](https://ci-apps.yunohost.org/ci/job/15335)
[02:59:56] <Yunohost Git/Infra notifications> Job [#15198](https://ci-apps.yunohost.org/ci/job/15198) for gitlab failed miserably :(
[10:08:14] <eric_G> > Can someone explain to me what is this "just" command that is failing ? https://github.com/YunoHost-Apps/bonfire\_ynh/pull/2/files#diff-6233345de4867c7ccf72bac1fc1067988d2a4c8e1ab9a746956eafccf88cfed2L160 🙏

I think this is what your need to set to use `just` command https://github.com/bonfire-networks/bonfire-app/blob/main/deps-debian.sh
[11:38:14] <Aleks (he/him/il/lui)> https://github.com/casey/just « just is a handy way to save and run project-specific commands. »
[11:38:16] <Aleks (he/him/il/lui)> my god
[11:38:24] <Aleks (he/him/il/lui)> it's a wrapper around commands
[11:38:36] <Aleks (he/him/il/lui)> but to use it you need to install fucking asdf
[11:38:45] <Aleks (he/him/il/lui)> which a meta-plugin-whatever-wrapper thingy
[11:38:52] <Aleks (he/him/il/lui)> to install just
[11:39:07] <Aleks (he/him/il/lui)> all of this to not run the actual commands manually
[11:39:53] <eric_G> https://aria.im/_matrix/media/v1/download/matrix.org/ZTElMxJkXqzSBUQrAttKsSEt
[11:40:33] <eric_G> I love shadok
[12:01:06] <Aleks (he/him/il/lui)> -_-
[12:01:06] <Aleks (he/him/il/lui)> omg and `just` is actually like just a new-generation Makefile
[14:19:53] <Yunohost Git/Infra notifications> App onlyoffice rises from level 0 to 6 in job [#15348](https://ci-apps.yunohost.org/ci/job/15348) !
[15:08:49] <lapineige> > <@Alekswag:matrix.org> all of this to not run the actual commands manually

can't we do this ? I can't find the original commands
[15:23:45] <Aleks (he/him/il/lui)> it's here : https://github.com/bonfire-networks/bonfire-app/blob/main/justfile#L84
[15:23:52] <Aleks (he/him/il/lui)> but it's a pain in the ass to unwrap everything
[15:24:23] <Aleks (he/him/il/lui)> the config part seems easy (it calls the `pre-setup` thingy a few lines before which just does a bunch of mkdir etc.)
[15:25:05] <Aleks (he/him/il/lui)> but the complex part is the `js-deps-get`
[15:30:51] <lapineige> Oh ok I thought it was eric_G who added this for some reason, I just (ahah) forgot where it was comming from.
[15:31:00] <lapineige> I will instead just in that case
[15:32:41] <Aleks (he/him/il/lui)> i can't even find a simple way to install just without all the asdf mess
[15:32:41] <lapineige> > <@ericg:matrix.org> I think this is what your need to set to use `just` command https://github.com/bonfire-networks/bonfire-app/blob/main/deps-debian.sh

What would be the best way to run this script ?
[15:32:42] <Aleks (he/him/il/lui)> this is so infuriating
[15:33:31] <Aleks (he/him/il/lui)> they support a gazillion platform but for Debian it's just "go fuck yourself" and they have some weird MPR thing https://github.com/casey/just#packages
[15:33:39] <lapineige> And this will weight a lot… cargo cache only will take 300MB, rustc 300MB, …
[15:33:59] <Aleks (he/him/il/lui)> maybe using the assets here from the latest release : https://github.com/casey/just/releases
[15:34:10] <Aleks (he/him/il/lui)> but it's architecture-specific ofc
[15:34:24] <Aleks (he/him/il/lui)> and the binary inside is like 5MB
[15:34:30] <Aleks (he/him/il/lui)> 5MB for a makefile reader
[15:36:50] <tituspijean> Side question, I have added a `doc/PRE_UPGRADE.md/5.44.0~ynh1.md` file for ghost, and it seems catastrophically make the upgrade fail:
```
yunohost app upgrade ghost -f . -F
Info: Now upgrading ghost...
Traceback (most recent call last):
File "/usr/bin/yunohost", line 77, in <module>
yunohost.cli(
File "/usr/lib/python3/dist-packages/yunohost/__init__.py", line 41, in cli
ret = moulinette.cli(
File "/usr/lib/python3/dist-packages/moulinette/__init__.py", line 111, in cli
Cli(
File "/usr/lib/python3/dist-packages/moulinette/interfaces/cli.py", line 507, in run
ret = self.actionsmap.process(args, timeout=timeout)
File "/usr/lib/python3/dist-packages/moulinette/actionsmap.py", line 584, in process
return func(**arguments)
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 676, in app_upgrade
notifications = _filter_and_hydrate_notifications(
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 3141, in _filter_and_hydrate_notifications
return {
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 3147, in <dictcomp>
or is_version_more_recent_than_current_version(name)
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 3137, in is_version_more_recent_than_current_version
return version.parse(name) > version.parse(current_version)
File "/usr/lib/python3/dist-packages/packaging/version.py", line 57, in parse
return Version(version)
File "/usr/lib/python3/dist-packages/packaging/version.py", line 296, in __init__
match = self._regex.search(version)
TypeError: expected string or bytes-like object
```
[15:37:05] <Aleks (he/him/il/lui)> hmmm
[15:37:09] <Aleks (he/him/il/lui)> maybe without the ~ynh1 ?
[15:37:28] <tituspijean> another error, let me bring it back... something with LegacyVersion
[15:37:45] <Aleks (he/him/il/lui)> yeah python doesnt like the ~ynh prefixes
[15:37:50] <Aleks (he/him/il/lui)> hmm
[15:37:59] <tituspijean> ```
mv doc/PRE_UPGRADE.d/5.44.0\~ynh1.md doc/PRE_UPGRADE.d/5.44.0.md
yunohost app upgrade ghost -f . -F

Info: Now upgrading ghost...
Traceback (most recent call last):
File "/usr/bin/yunohost", line 77, in <module>
yunohost.cli(
File "/usr/lib/python3/dist-packages/yunohost/__init__.py", line 41, in cli
ret = moulinette.cli(
File "/usr/lib/python3/dist-packages/moulinette/__init__.py", line 111, in cli
Cli(
File "/usr/lib/python3/dist-packages/moulinette/interfaces/cli.py", line 507, in run
ret = self.actionsmap.process(args, timeout=timeout)
File "/usr/lib/python3/dist-packages/moulinette/actionsmap.py", line 584, in process
return func(**arguments)
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 676, in app_upgrade
notifications = _filter_and_hydrate_notifications(
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 3141, in _filter_and_hydrate_notifications
return {
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 3147, in <dictcomp>
or is_version_more_recent_than_current_version(name)
File "/usr/lib/python3/dist-packages/yunohost/app.py", line 3139, in is_version_more_recent_than_current_version
return version.parse(name) > version.parse(current_version.split("~")[0])
AttributeError: 'LegacyVersion' object has no attribute 'split'
```
[15:38:21] <Aleks (he/him/il/lui)> ah
[15:38:22] <Aleks (he/him/il/lui)> uuh
[15:38:33] <tituspijean> but I cannot find that class, and it looks like it got dropped with packaging v2? 😲
[15:38:46] <Aleks (he/him/il/lui)> eeh it's like in `version.parse(current_version.split("~")[0])`, `current_version` is already a parsed version
[15:39:05] <Aleks (he/him/il/lui)> and actually the code seem to imply that having the ~ynhX prefix should be handled
[15:40:11] <Aleks (he/him/il/lui)> https://github.com/YunoHost/yunohost/blob/dev/src/app.py#L3136-L3139 hmmm it feels like these two return statement should be swapped
[15:40:56] <Aleks (he/him/il/lui)> > <@titus:pijean.ovh> but I cannot find that class, and it looks like it got dropped with packaging v2? 😲

you mean LegacyVersion ? This is something from `from packaging import version`
[15:41:19] <Aleks (he/him/il/lui)> (i mean, from the Python's 'packaging' lib)
[15:41:50] <Aleks (he/him/il/lui)> can you try swapping the two lines in that if ?
[15:42:13] <tituspijean> god dammit I cannot for the life of me find where is the yunohost package
[15:42:14] <Aleks (he/him/il/lui)> ah but it test if "~" is in "name" ,not in current_verison
[15:42:19] <Aleks (he/him/il/lui)> i'm confused x_x
[15:42:38] <Aleks (he/him/il/lui)> should be /usr/share/python?/yunohost
[15:42:40] <tituspijean> aaah `/usr/lib/python3/dist-packages/yunohost/`
[15:42:50] <Aleks (he/him/il/lui)> if you forget about it, try "import yunohost" then "print(yunohost)" in a python shell
[15:43:02] <lapineige> and what if I add the MPR thing ?
is it possible to install one single package from it ?
[15:43:23] <Aleks (he/him/il/lui)> > and what if I add the MPR thing ?
> is it possible to install one single package from it ?

i guess .. but might as well use asdf in that case ...
[15:44:20] <tituspijean> > <@Alekswag:matrix.org> can you try swapping the two lines in that if ?

the errors are swapped now 😛
[15:45:34] <lapineige> > <@Alekswag:matrix.org> i guess .. but might as well use asdf in that case ...

it sounds easier 😅
[15:46:43] <lapineige> Like this in a Yunohost script:

````git
cd just
makedeb -si````

Would it work ?

[15:46:55] <lapineige> Like this in a Yunohost script:

```git
cd just
makedeb -si
```

Would it work ?

[15:47:09] <Aleks (he/him/il/lui)> well you'd need the "makedeb" command, i don't know where that comes from
[15:47:29] <Aleks (he/him/il/lui)> https://www.makedeb.org/
[15:47:47] <Aleks (he/him/il/lui)> yet another random `curl|bash` thing which probably install its mess globally ...
[15:48:28] <lapineige> Like this in a Yunohost script:

```
git
cd just
makedeb -si
```

Would it work ?
[15:48:36] <lapineige> Like this in a Yunohost script:

```
git clone 'https://mpr.makedeb.org/just'
cd just
makedeb -si
```

Would it work ?
[15:48:47] <Aleks (he/him/il/lui)> c'est `just` leblanc
[15:49:45] <lapineige> I'll try this for now, it's unharmfull in CI, I need to get a first version of the package working, I'll use this for the shake of simplicity (and mental health), I'll see later how to change that to a safer packaging
[15:51:32] <Aleks (he/him/il/lui)> tituspijean: i think the issue is that we feed to `_filter_and_hydrate_notifications` something which is already a `Version()` instance instead of a string : https://github.com/YunoHost/yunohost/blob/dev/src/app.py#L624
[15:52:19] <Aleks (he/him/il/lui)> ```python
>>> version.parse(version.parse("1.2.3"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/packaging/version.py", line 56, in parse
return Version(version)
File "/usr/lib/python3/dist-packages/packaging/version.py", line 275, in __init__
match = self._regex.search(version)
TypeError: expected string or bytes-like object
```
[15:53:29] <Aleks (he/him/il/lui)> maybe we can add a `current_version = str(current_version)` in here : https://github.com/YunoHost/yunohost/blob/dev/src/app.py#L3133
[15:54:43] <tituspijean> workzz
[15:54:44] <Aleks (he/him/il/lui)> \o/
[15:57:15] <tituspijean> I can make the PR for you if you want 😛
[16:00:15] <lapineige> > <@Alekswag:matrix.org> yet another random `curl|bash` thing which probably install its mess globally ...

what if we had a standard packaging method… of wait
[16:01:23] <Yunohost Git/Infra notifications> [apps] @ericgaspar pushed 1 commit to master: Create chyrplite.png ([1fbd2385](https://github.com/YunoHost/apps/commit/1fbd2385b5dea161c422104d0ff9759e6c6b4b73))
[16:04:23] <Yunohost Git/Infra notifications> [apps] @ericgaspar pushed 1 commit to add-chyrplite: Update apps.toml ([44c3190b](https://github.com/YunoHost/apps/commit/44c3190b8f11180c2db803d2f1748d9654e173a3))
[16:04:23] <Yunohost Git/Infra notifications> [apps] @ericgaspar created new branch add-chyrplite
[16:04:56] <Yunohost Git/Infra notifications> [apps] @ericgaspar opened [pull request #1666](https://github.com/YunoHost/apps/pull/1666): Add Chyrp Lite
[16:16:07] <Aleks (he/him/il/lui)> > <@titus:pijean.ovh> I can make the PR for you if you want 😛

yes \o/
[16:16:27] <Aleks (he/him/il/lui)> or even ... *suspensful sounds effect* ... pushing directly to dev 👀
[16:17:48] <tituspijean> I would not dare 😛
[16:31:24] <Yunohost Git/Infra notifications> App ghost goes down from level 8 to 2 in job [#15212](https://ci-apps.yunohost.org/ci/job/15212)
[17:30:30] <lapineige> > I'll try this for now, it's unharmfull in CI, I need to get a first version of the package working, I'll use this for the shake of simplicity (and mental health), I'll see later how to change that to a safer packaging

https://ci-apps-dev.yunohost.org/ci/job/7014
`58759 INFO WARNING - tput: No value for $TERM and no -T specified`

Any idea ? 😅
[17:34:39] <Aleks (he/him/il/lui)> hmf naively I would add `export TERM=xterm` before calling the script but that sound like it was not designed to run non-interactively >_>
[21:21:16] <lapineige> Found it : https://docs.makedeb.org/installing/shell-script/#noninteractive-usage
[21:21:41] <lapineige> oh wait that's for install
[21:36:00] <lapineige> I tried, as well as your technique. Fail ☹️
[21:36:48] <lapineige> The only other thing I found was this : https://github.com/makedeb/makedeb/issues/131
Don't know if I can use it…
[21:41:43] <lapineige> Tried this: https://github.com/YunoHost-Apps/bonfire_ynh/blob/cleaning/scripts/install#L57

Result: `52586 INFO WARNING - /usr/bin/bash: /usr/bin/bash: cannot execute binary file`
[23:59:29] <Yunohost Git/Infra notifications> Job [#15353](https://ci-apps.yunohost.org/ci/job/15353) for invoiceninja failed miserably :(