erplibre/mobile/compile_and_run.sh

34 lines
1.2 KiB
Bash
Raw Normal View History

2025-10-01 03:01:00 -04:00
#!/usr/bin/env bash
if [[ ! -d "./mobile/erplibre_home_mobile" ]]; then
2025-10-01 03:01:00 -04:00
echo "Please, run installation ./mobile/install_mobile_dev.sh before run this script ./mobile/compile_and_run.sh"
exit 1
fi
[ADD] make: une cible pour les tests unitaires, dépendance mobile déclarée Ces 382 tests ne tournaient que lancés à la main, donc jamais. « make test » demande une base de données et plusieurs minutes ; ceux-ci lisent le code et exécutent les fragments de shell générés, sudo, pgrep et pkill bouchonnés, en une dizaine de secondes. Deux cibles : test_unit, et test_unit_file pour la boucle d'écriture. La dépendance à mobile/erplibre_home_mobile est DITE plutôt que supposée : le lanceur l'annonce présente ou absente, et les tests du vrai transfert se déclarent ignorés — avec la commande qui manque — au lieu de passer en silence. Vérifié dans les trois états : dépôt absent, présent non compilé, compilé. Au passage, compile_and_run.sh vérifie le transfert des dépôts, comme l'installation d'une VM et par le même script. --- EN --- These 382 tests only ran when invoked by hand, so never. "make test" wants a database and several minutes; these read the code and run the generated shell fragments with sudo, pgrep and pkill stubbed, in about ten seconds. Two targets: test_unit, and test_unit_file for the writing loop. The dependency on mobile/erplibre_home_mobile is STATED rather than assumed: the runner announces it present or absent, and the real-transfer tests declare themselves skipped — naming the missing command — instead of passing quietly. Checked in all three states: repo absent, present but unbuilt, built. Along the way, compile_and_run.sh verifies the repo transfer, like a VM install and through the same script. Assisted-by: Claude Opus 5
2026-08-21 20:06:23 -04:00
WORKSPACE="$(pwd)"
cd mobile/erplibre_home_mobile || exit 1
2025-10-01 03:01:00 -04:00
npm install
[ADD] make: une cible pour les tests unitaires, dépendance mobile déclarée Ces 382 tests ne tournaient que lancés à la main, donc jamais. « make test » demande une base de données et plusieurs minutes ; ceux-ci lisent le code et exécutent les fragments de shell générés, sudo, pgrep et pkill bouchonnés, en une dizaine de secondes. Deux cibles : test_unit, et test_unit_file pour la boucle d'écriture. La dépendance à mobile/erplibre_home_mobile est DITE plutôt que supposée : le lanceur l'annonce présente ou absente, et les tests du vrai transfert se déclarent ignorés — avec la commande qui manque — au lieu de passer en silence. Vérifié dans les trois états : dépôt absent, présent non compilé, compilé. Au passage, compile_and_run.sh vérifie le transfert des dépôts, comme l'installation d'une VM et par le même script. --- EN --- These 382 tests only ran when invoked by hand, so never. "make test" wants a database and several minutes; these read the code and run the generated shell fragments with sudo, pgrep and pkill stubbed, in about ten seconds. Two targets: test_unit, and test_unit_file for the writing loop. The dependency on mobile/erplibre_home_mobile is STATED rather than assumed: the runner announces it present or absent, and the real-transfer tests declare themselves skipped — naming the missing command — instead of passing quietly. Checked in all three states: repo absent, present but unbuilt, built. Along the way, compile_and_run.sh verifies the repo transfer, like a VM install and through the same script. Assisted-by: Claude Opus 5
2026-08-21 20:06:23 -04:00
npm run build || exit 1
# Le transfert des dépôts du manifeste DANS l'application est ce qui fait
# l'intérêt de son navigateur de code hors ligne, et il peut être vide sans que
[FIX] mobile: the bundle check refused a real build The checker knew only the pack layout. A real build ships one tar.gz per repository, so it raised "<slug> : index.json absent" and, being guarded by `|| exit 1`, stopped compile_and_run.sh before cap sync — no APK. Broken since 2026-08-20 for anyone on the current mobile main: the parent half of that work landed, the mobile half producing packs never did. It now accepts both layouts, so whichever half lands next, it holds. Two things got better on the way. The byte-for-byte comparison against the source — the only check that proves fidelity rather than coherence — was reporting zero comparisons, because no entry matched the shape it looked for; it now compares twenty. And presence is no longer sampled: streaming all 139 archives costs 6 s and accounts for every one of the 124 350 promised files, where a sample of twenty could not see a ghost it did not draw. The test guarding the ZIP limit demanded a `chunk` field on every file — the pack layout, not the limit. It counts entries now: 278 against 65 535. Its real-bundle class had been taught to skip on this very symptom rather than fail; it runs again. --- FR --- Le vérificateur ne connaissait que la disposition en packs. Une compilation réelle livre un tar.gz par dépôt : il levait « <slug> : index.json absent » et, gardé par `|| exit 1`, arrêtait compile_and_run.sh avant cap sync — pas d'APK. Cassé depuis le 2026-08-20 pour quiconque est sur le main mobile actuel : la moitié parente de ce travail a atterri, la moitié mobile qui produit les packs jamais. Il accepte désormais les deux dispositions : quelle que soit la moitié qui atterrit ensuite, il tient. Deux choses se sont améliorées en chemin. La comparaison octet pour octet contre la source — la seule qui prouve la fidélité et non la cohérence — rapportait zéro comparaison, faute d'entrée à la forme attendue ; elle en compare vingt. Et la présence n'est plus échantillonnée : traverser les 139 archives coûte 6 s et rend compte de chacun des 124 350 fichiers promis, là où vingt tirages ne pouvaient pas voir un fantôme non tiré. Le test qui gardait la limite du ZIP exigeait un champ `chunk` sur chaque fichier — la disposition, pas la limite. Il compte les entrées désormais : 278 pour 65 535. Sa classe sur le vrai bundle avait appris à s'ignorer sur ce symptôme même plutôt qu'à échouer ; elle tourne à nouveau. Assisted-by: Claude Opus 5
2026-08-24 05:50:04 -04:00
# la compilation le dise. Ces dépôts entrent dans des conteneurs — un APK est
# un ZIP borné à 65535 entrées, quand un fichier par source en réclamait
# 124 350 —
# soit une archive tar.gz par dépôt, soit des tranches pack. Le vérificateur
# accepte les deux, prouve la présence de CHAQUE fichier promis, et relit un
# échantillon octet pour octet contre la source. Quatre pannes qu'un
# « build OK » passe sous silence : transfert vide, conteneur absent, index qui
# promet un fichier que son conteneur n'a pas, octets qui diffèrent.
[ADD] make: une cible pour les tests unitaires, dépendance mobile déclarée Ces 382 tests ne tournaient que lancés à la main, donc jamais. « make test » demande une base de données et plusieurs minutes ; ceux-ci lisent le code et exécutent les fragments de shell générés, sudo, pgrep et pkill bouchonnés, en une dizaine de secondes. Deux cibles : test_unit, et test_unit_file pour la boucle d'écriture. La dépendance à mobile/erplibre_home_mobile est DITE plutôt que supposée : le lanceur l'annonce présente ou absente, et les tests du vrai transfert se déclarent ignorés — avec la commande qui manque — au lieu de passer en silence. Vérifié dans les trois états : dépôt absent, présent non compilé, compilé. Au passage, compile_and_run.sh vérifie le transfert des dépôts, comme l'installation d'une VM et par le même script. --- EN --- These 382 tests only ran when invoked by hand, so never. "make test" wants a database and several minutes; these read the code and run the generated shell fragments with sudo, pgrep and pkill stubbed, in about ten seconds. Two targets: test_unit, and test_unit_file for the writing loop. The dependency on mobile/erplibre_home_mobile is STATED rather than assumed: the runner announces it present or absent, and the real-transfer tests declare themselves skipped — naming the missing command — instead of passing quietly. Checked in all three states: repo absent, present but unbuilt, built. Along the way, compile_and_run.sh verifies the repo transfer, like a VM install and through the same script. Assisted-by: Claude Opus 5
2026-08-21 20:06:23 -04:00
#
# Même vérification que l'installation d'une VM, même script : une seule
# autorité.
"${WORKSPACE}/script/mobile/check_bundle_transfer.py" . --workspace "${WORKSPACE}" || exit 1
npx cap sync || exit 1
2025-10-01 03:01:00 -04:00
npx cap run android
[ADD] make: une cible pour les tests unitaires, dépendance mobile déclarée Ces 382 tests ne tournaient que lancés à la main, donc jamais. « make test » demande une base de données et plusieurs minutes ; ceux-ci lisent le code et exécutent les fragments de shell générés, sudo, pgrep et pkill bouchonnés, en une dizaine de secondes. Deux cibles : test_unit, et test_unit_file pour la boucle d'écriture. La dépendance à mobile/erplibre_home_mobile est DITE plutôt que supposée : le lanceur l'annonce présente ou absente, et les tests du vrai transfert se déclarent ignorés — avec la commande qui manque — au lieu de passer en silence. Vérifié dans les trois états : dépôt absent, présent non compilé, compilé. Au passage, compile_and_run.sh vérifie le transfert des dépôts, comme l'installation d'une VM et par le même script. --- EN --- These 382 tests only ran when invoked by hand, so never. "make test" wants a database and several minutes; these read the code and run the generated shell fragments with sudo, pgrep and pkill stubbed, in about ten seconds. Two targets: test_unit, and test_unit_file for the writing loop. The dependency on mobile/erplibre_home_mobile is STATED rather than assumed: the runner announces it present or absent, and the real-transfer tests declare themselves skipped — naming the missing command — instead of passing quietly. Checked in all three states: repo absent, present but unbuilt, built. Along the way, compile_and_run.sh verifies the repo transfer, like a VM install and through the same script. Assisted-by: Claude Opus 5
2026-08-21 20:06:23 -04:00
cd - || exit 1