[ADD] electron: own shell, portable Windows exe built under podman
The deliverable is a single-file portable executable whose Electron the
project updates itself. The shell keeps context isolation on, Node
integration off and the page sandboxed; one IPC channel returns the
folder the portable launcher publishes. The build runs in a no-Wine image
pinned by digest, relays no host variable, refuses to overwrite a built
number, removes what a failed build leaves, and accepts only the name
version.json gives. The spec stops claiming the portable target needs
Wine.
Checked: exe built in 86 s, resource FileVersion 2026.1005.1.0 and
© 2026 TechnoLibre; 109 node tests pass; two end-of-build mutations fail.
--- FR ---
[ADD] electron : coquille propre, exécutable portable construit sous podman
Le livrable est un exécutable portable à fichier unique, dont le projet
met lui-même Electron à jour. La coquille garde l'isolation de contexte,
coupe l'intégration de Node et isole la page ; un seul canal IPC rend le
dossier que publie le lanceur portable. La construction s'exécute dans
une image sans Wine épinglée par empreinte, ne relaie aucune variable de
l'hôte, refuse d'écraser un numéro construit, retire ce qu'un échec
laisse, et n'accepte que le nom que donne version.json. Le spec cesse
d'affirmer que la cible portable exige Wine.
Vérifié : exécutable construit en 86 s, ressource FileVersion
2026.1005.1.0 et © 2026 TechnoLibre ; 109 épreuves node passent ; deux
mutations du contrôle de fin échouent.
Assisted-by: Claude Opus 5.5
2026-10-05 13:13:32 -04:00
|
|
|
# Gestion table tournante Libre
|
|
|
|
|
|
|
|
|
|
Logiciel hors ligne qui place les personnes d'un événement autour de tables et
|
|
|
|
|
les fait tourner sur plusieurs tours, pour que chacune rencontre le plus de
|
|
|
|
|
monde possible.
|
|
|
|
|
|
[ADD] run: make and ./run.sh, Electron start check, container matrix
make with no target does what ./run.sh does: Electron on a graphical
session, Vite's server without one or where Electron is not published
(s390x, ppc64le). Every npm, npx and node recipe goes through the
project's Node. make essai_demarrage starts the real Electron through
Playwright and reads its window title, on Chromium's headless Ozone
platform when there is no display: no X server is needed.
scripts/verifier_systemes.sh replays install and tests in podman over
the QEMU catalogue of TODO, and stops only its own containers.
Checked: 17 Linux images and Nix pass all six steps; pwsh parses.
--- FR ---
[ADD] lancement : make et ./run.sh, essai d'Electron, matrice
make sans cible fait ce que fait ./run.sh : Electron sur une session
graphique, le serveur de Vite sans elle ou là où Electron n'est pas
publié (s390x, ppc64le). Chaque recette npm, npx ou node passe par le
Node du projet. make essai_demarrage lance la vraie coquille Electron
par Playwright et lit le titre de sa fenêtre, sur la plateforme Ozone
headless de Chromium sans écran : aucun serveur X n'est requis.
scripts/verifier_systemes.sh rejoue installation et épreuves sous
podman sur le catalogue QEMU de TODO, et n'arrête que ses conteneurs.
Vérifié : 17 images Linux et Nix passent les six étapes ; pwsh analyse.
Assisted-by: Claude Opus 5.5
Claude-Session: https://claude.ai/code/session_01EUXSGcwCLSC69FWEdCtWSb
2026-10-06 05:52:17 -04:00
|
|
|
## Installer et lancer
|
|
|
|
|
|
|
|
|
|
| système | installer | lancer |
|
|
|
|
|
|---|---|---|
|
|
|
|
|
| Linux, macOS | `./install.sh` | `./run.sh`, ou `make` |
|
|
|
|
|
| Windows | `install.cmd` | `run.cmd` |
|
|
|
|
|
| NixOS | `./install.sh` | `./run.sh` ; `make` dans `nix-shell scripts/installation/shell.nix` |
|
|
|
|
|
|
|
|
|
|
`./install_dev.sh` (sous Windows `install_dev.cmd`) installe en plus le Chromium
|
|
|
|
|
des épreuves du navigateur, des polices et, sur amd64, `podman`, sous lequel se
|
|
|
|
|
construit l'exécutable Windows.
|
|
|
|
|
|
|
|
|
|
L'installation pose les paquets du système qui manquent — apt, dnf, zypper ou
|
|
|
|
|
pacman, par `sudo` —, puis Node de la majeure écrite dans `.node-version`,
|
|
|
|
|
téléchargé de nodejs.org et vérifié contre sa somme, hors du dépôt :
|
|
|
|
|
`~/.local/share/gestion_table_tournante_libre`, sous Windows
|
|
|
|
|
`%LOCALAPPDATA%\gestion_table_tournante_libre`. Node n'exige donc aucun droit
|
|
|
|
|
d'administration. Sous NixOS, `scripts/installation/shell.nix` déclare Node,
|
|
|
|
|
Electron et Chromium, d'un nixpkgs épinglé.
|
|
|
|
|
|
|
|
|
|
Systèmes éprouvés, en conteneurs, par `make verifier_systemes` : Ubuntu 24.04,
|
|
|
|
|
25.10 et 26.04, Debian 12 et 13 (Proxmox VE 9 en dérive), Fedora 41 à 44,
|
|
|
|
|
AlmaLinux et Rocky Linux 9 et 10, openSUSE Leap 16.0 et Tumbleweed, Arch Linux,
|
|
|
|
|
et Nix ; les scripts Windows sous `pwsh`.
|
|
|
|
|
|
|
|
|
|
`./run.sh` lance la coquille Electron sur une session graphique ; sans écran,
|
|
|
|
|
ou là où Electron n'est pas publié (s390x, ppc64le), il sert l'application à un
|
|
|
|
|
navigateur sur http://localhost:5173. `./run.sh --web` et `./run.sh --electron`
|
|
|
|
|
forcent l'un ou l'autre.
|
|
|
|
|
|
[ADD] electron: own shell, portable Windows exe built under podman
The deliverable is a single-file portable executable whose Electron the
project updates itself. The shell keeps context isolation on, Node
integration off and the page sandboxed; one IPC channel returns the
folder the portable launcher publishes. The build runs in a no-Wine image
pinned by digest, relays no host variable, refuses to overwrite a built
number, removes what a failed build leaves, and accepts only the name
version.json gives. The spec stops claiming the portable target needs
Wine.
Checked: exe built in 86 s, resource FileVersion 2026.1005.1.0 and
© 2026 TechnoLibre; 109 node tests pass; two end-of-build mutations fail.
--- FR ---
[ADD] electron : coquille propre, exécutable portable construit sous podman
Le livrable est un exécutable portable à fichier unique, dont le projet
met lui-même Electron à jour. La coquille garde l'isolation de contexte,
coupe l'intégration de Node et isole la page ; un seul canal IPC rend le
dossier que publie le lanceur portable. La construction s'exécute dans
une image sans Wine épinglée par empreinte, ne relaie aucune variable de
l'hôte, refuse d'écraser un numéro construit, retire ce qu'un échec
laisse, et n'accepte que le nom que donne version.json. Le spec cesse
d'affirmer que la cible portable exige Wine.
Vérifié : exécutable construit en 86 s, ressource FileVersion
2026.1005.1.0 et © 2026 TechnoLibre ; 109 épreuves node passent ; deux
mutations du contrôle de fin échouent.
Assisted-by: Claude Opus 5.5
2026-10-05 13:13:32 -04:00
|
|
|
## Commandes
|
|
|
|
|
|
|
|
|
|
| commande | effet |
|
|
|
|
|
|---|---|
|
[ADD] run: make and ./run.sh, Electron start check, container matrix
make with no target does what ./run.sh does: Electron on a graphical
session, Vite's server without one or where Electron is not published
(s390x, ppc64le). Every npm, npx and node recipe goes through the
project's Node. make essai_demarrage starts the real Electron through
Playwright and reads its window title, on Chromium's headless Ozone
platform when there is no display: no X server is needed.
scripts/verifier_systemes.sh replays install and tests in podman over
the QEMU catalogue of TODO, and stops only its own containers.
Checked: 17 Linux images and Nix pass all six steps; pwsh parses.
--- FR ---
[ADD] lancement : make et ./run.sh, essai d'Electron, matrice
make sans cible fait ce que fait ./run.sh : Electron sur une session
graphique, le serveur de Vite sans elle ou là où Electron n'est pas
publié (s390x, ppc64le). Chaque recette npm, npx ou node passe par le
Node du projet. make essai_demarrage lance la vraie coquille Electron
par Playwright et lit le titre de sa fenêtre, sur la plateforme Ozone
headless de Chromium sans écran : aucun serveur X n'est requis.
scripts/verifier_systemes.sh rejoue installation et épreuves sous
podman sur le catalogue QEMU de TODO, et n'arrête que ses conteneurs.
Vérifié : 17 images Linux et Nix passent les six étapes ; pwsh analyse.
Assisted-by: Claude Opus 5.5
Claude-Session: https://claude.ai/code/session_01EUXSGcwCLSC69FWEdCtWSb
2026-10-06 05:52:17 -04:00
|
|
|
| `make` | lance l'application, comme `./run.sh` |
|
|
|
|
|
| `make test` | série `node` : les fonctions pures, à chaque modification |
|
|
|
|
|
| `make test_long` | épreuves lourdes, avant un commit |
|
|
|
|
|
| `make test_navigateur` | épreuves de rendu dans Chromium, avant une livraison |
|
|
|
|
|
| `make build` | construit la page dans `www/` |
|
|
|
|
|
| `make windows` | construit l'exécutable Windows portable, sous `podman`, depuis Linux |
|
|
|
|
|
| `make essai_demarrage` | lance la vraie coquille Electron, lit son titre et ferme |
|
|
|
|
|
| `make help` | toutes les cibles |
|
|
|
|
|
|
|
|
|
|
Chaque cible passe par le Node du projet. Les commandes npm d'origine restent
|
|
|
|
|
valables avec un Node de la bonne majeure dans le `PATH` : `npm test`,
|
|
|
|
|
`npm run dev`, `npm run build`.
|
[ADD] electron: own shell, portable Windows exe built under podman
The deliverable is a single-file portable executable whose Electron the
project updates itself. The shell keeps context isolation on, Node
integration off and the page sandboxed; one IPC channel returns the
folder the portable launcher publishes. The build runs in a no-Wine image
pinned by digest, relays no host variable, refuses to overwrite a built
number, removes what a failed build leaves, and accepts only the name
version.json gives. The spec stops claiming the portable target needs
Wine.
Checked: exe built in 86 s, resource FileVersion 2026.1005.1.0 and
© 2026 TechnoLibre; 109 node tests pass; two end-of-build mutations fail.
--- FR ---
[ADD] electron : coquille propre, exécutable portable construit sous podman
Le livrable est un exécutable portable à fichier unique, dont le projet
met lui-même Electron à jour. La coquille garde l'isolation de contexte,
coupe l'intégration de Node et isole la page ; un seul canal IPC rend le
dossier que publie le lanceur portable. La construction s'exécute dans
une image sans Wine épinglée par empreinte, ne relaie aucune variable de
l'hôte, refuse d'écraser un numéro construit, retire ce qu'un échec
laisse, et n'accepte que le nom que donne version.json. Le spec cesse
d'affirmer que la cible portable exige Wine.
Vérifié : exécutable construit en 86 s, ressource FileVersion
2026.1005.1.0 et © 2026 TechnoLibre ; 109 épreuves node passent ; deux
mutations du contrôle de fin échouent.
Assisted-by: Claude Opus 5.5
2026-10-05 13:13:32 -04:00
|
|
|
|
|
|
|
|
L'exécutable porte la version datée du logiciel dans son nom, selon le gabarit
|
|
|
|
|
`gestion_table_tournante_libre_v<AAAA>_<MM>_<JJ>_<NN>.exe`.
|
|
|
|
|
|
|
|
|
|
## Licence
|
|
|
|
|
|
|
|
|
|
© 2026 TechnoLibre. GNU Affero General Public License, version 3 ou ultérieure ;
|
|
|
|
|
texte complet dans `LICENSE`.
|