Du Rust dans NodeJs graçe a Neon : le courant passe !

J’ai builder une release window en suivant le tuto de jytou, pour l’instant j’ai juste ajouter la toolchain Rust a la VM car je ne sios pas certain que la recompilation soit nécessaire en Rust, l’intégration étant très différente qu’en C/C++. Si ça ne marche pas je ferai de la recompilation :wink:

Je n’ai pas de windows alors si quelqu’un peut tester : attention vous devrez renommer votre dossier duniter-default sous un autre nom avant de tester cette release, elle doit impérativement se lancer sur une config vierge !

https://ifee.fr/pub/duniter-desktop-v1.6.23-windows-x64.exe

Le changement dans le script de build est la :

Aussi, ça n’a rien a voir mais j’ai un problème avec la CI : j’ai réussi sans problème a ajouter la toolchain Rust aux images docker duniter-ci et release-builder, en revanche je n’arrive pas a mettre a jours le runner de la ci duniter, ceci semble lié a la maj de gitlab puisque je n’arrive a mettre a jours aucun runner depuis dimanche soir alors j’y suis arriver sans problème dimanche après-midi pour créer le runner du dépot wotb-rs :thinking:

Je n’ai pas eu se souci a le release-builder car l’image est publiée sur le docker hub donc j’ai juste modifié le tag de l’image utilisée par le job de packaing et ça fonctionne :slight_smile:

J’ai essayé mais Duniter plante : “The server is not starting”.

Je pourrais essayer de trouver l’origine et avoir un message plus explicite, peut-être ce soir. Sur Windows le débugage est vraiment peu pratique … :confused:

1 Like

Bon en fait le problème est simple : la transpilation TypeScript n’a pas été effectuée.

Ce problème en cache un autre, si la transpilation n’a pas été effectuée c’est que yarn a fail avant, mais je ne vois pas pourquoi, bon je vais essayer avec recompilation du coup, peut tu m’expliquer pourquoi une recompilation est nécessaire ?

C’est à cause de NwJS, qui n’utilise pas la même ABI que NodeJS.

Donc un addon (comme wot-rs) compilé pour NodeJS ne fonctionnera pas pour NwJS, sauf à le recompiler pour cette ABI cible.

C’est pour ça que dans le build Windows, on refait une compilation avec pour runtime “node-webkit” (autre nom de NwJS) :

call node-pre-gyp --runtime=node-webkit --target=%NW_VERSION% --msvs_version=2015 configure
call node-pre-gyp --runtime=node-webkit --target=%NW_VERSION% --msvs_version=2015 build
1 Like

Ce qui est curieux c’est que la version linux Desktop a fonctionne du premier coup sans rien faire de particulier, c’est du NwJS aussi non ?

Oui et le build pour linux Desktop fait la même opération de recompilation.

Il y a donc un impact sur Windows, mais je ne sais pas lequel.

Je n’ai fait aucune recompilation dans le build pour linux-desktop, tu peut voir le job ici : releases:test (#5260) · Jobs · nodes / typescript / duniter · GitLab

Tu peut même les retry pour régénérer les releases linux et les tester, tu verra que toutes fonctionnes :wink:

En fait j’ai trouver une cause de bug, mais ça n’explique pas ton observation d’une absence de transpilation.

J’ai oublier de créer une méthode spécifique pour récupérer le filePath différemment sous windows :laughing:

Si bien sûr que tu l’as faite, ça fait partie du script build-lin.sh. D’ailleurs en fin de job on voit les traces :

COPY /builds/nodes/typescript/duniter/work/releases/desktop_/node_modules/sqlite3/lib/binding/node-webkit-v0.28.0-linux-x64/node_sqlite3.node

Oui c’est bizarre, d’autant que dans les logs on voit bien l’appel à la commande de transpilation :

> tsc

Et celle-ci ne semble pas échouer :confused:

1 Like

ha bon ? Pourtant la seule modif que j’ai faite au script de build c’est d’ajouter l’installation de la toolchain rust stable. E quand je fais un Ctrl+F wotb-rs je ne le vois compilé qu’une fois dans le job :thinking:

Ah oui concernant wotb-rs ! En effet non celle-ci n’est pas faite, le nom est différent.

1 Like

Par contre pour Windows je ne peux pas vérifier comme yarn s’est comporté, vu que c’est directement sur ta machine.

Et pourtant le build Desktop linux fonctionne parfaitement donc il semblerait qu’il n’y ai pas besoin de recompilation pour les modules Neon,

je n’ai pas garder les logs c’était il y a deux jours et j’ai reboot depuis, il faudrais que je tente de builder une release windows officielle comme expérience témoin car c’est la 1ère fois que je buildais une release windows donc il y a peut être des facteurs de confusion !

1 Like

C’est possible, et ce serait tant mieux.

1 Like

Une preuve de ce que j’avance tout de même :

image

Le même dossier mais avec une version antérieure fonctionnelle :

image

Ok je referai une build windows plus tard quand je bougerai car impossible de me servir du pc en même temps ça prend toutes les ressources …

En attendant tu peut déjà tester les releases linux, ça fonctione chez moi mais on sait jamais :

A noter que je n’ai pas encore coder la partie migration du fichier wotb donc il faut tester dans un dossier de données vide !

hop voila une release windows officielle de la branche 1.6, @cgeek peut la tester ? J’aimerais m’assurer que le souci ne vienne pas de mon environnement de build avant d’aller plus loin :slight_smile:

https://ifee.fr/pub/duniter-desktop-v1.6.23-windows-x64.exe

Là j’ai bien les fichier .js transpilés.

:laughing:

ok @cgeek quelle est la procédure pour créer une release de test de windows, je suis obligé de créer un tag spécifique ?
J’ai l’impression que le problème viens peut etre de la, je m’étais placé sur la branche 1302 et j’ai rentrer la commande :

release/scripts/build.sh make win v1.6.23

Mais ce n’est peut être pas comme cela qu’il faut faire ??