mirror of
https://github.com/deunix-educ/aventuriers-des-mots.git
synced 2026-10-13 02:11:58 +02:00
Produce version 0.1.0: single-file exports and make package
Re-read the specification (§12, §13, §15) before producing the game: Linux and Windows are the target platforms for this version. Embed the PCK for one executable per platform, add config/version, and add `make package` which re-exports from scratch and builds dist/*.tar.gz, dist/*.zip and SHA256SUMS (executable + LICENSE + READMEs + CREDITS + a short notice). READMEs updated to the real status. Known gaps against the spec are listed in decisions.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# Runtime et artefacts Godot
|
||||
.godot/
|
||||
build/
|
||||
dist/
|
||||
|
||||
# Outillage telecharge par `make setup` (Godot, GUT), non versionne
|
||||
.godot-bin/
|
||||
|
||||
@@ -19,6 +19,7 @@ Le `Makefile` est le seul point d'entrée pour les opérations système. Tenir c
|
||||
- `make content-review` : régénère `docs/review/content-review.md` à partir de `data/`
|
||||
- `make generate-dictation-audio` : génère l'audio provisoire des dictées (voix neuronale Piper via `.venv`, `ffmpeg` requis sur la machine) dans `assets/audio/dictations/`, sans écraser l'existant (`--force` pour régénérer)
|
||||
- `make export-linux` / `make export-windows` : exports dans `build/`
|
||||
- `make package` : réexporte puis produit les archives distribuables (exécutable unique + licence + crédits + notice) et `SHA256SUMS` dans `dist/`
|
||||
|
||||
## Conventions de code
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ PYRIGHT := $(VENV)/bin/pyright
|
||||
PYTHON := $(VENV)/bin/python3
|
||||
GD_SOURCES := autoload scripts tests
|
||||
|
||||
.PHONY: setup run lint format validate-data test check content-review generate-dictation-audio export-linux export-windows
|
||||
.PHONY: setup run lint format validate-data test check content-review generate-dictation-audio export-linux export-windows package
|
||||
|
||||
setup:
|
||||
tools/setup.sh
|
||||
@@ -42,3 +42,6 @@ export-linux:
|
||||
export-windows:
|
||||
mkdir -p build/windows
|
||||
$(GODOT_BIN) --headless --path . --export-release "Windows" build/windows/aventuriers_des_mots.exe
|
||||
|
||||
package:
|
||||
tools/package.sh
|
||||
|
||||
+4
-1
@@ -2,7 +2,7 @@
|
||||
|
||||
An educational French-language game for 7-9 year olds (French grades CE1-CE2): an offline 2D adventure with an explorable map, a guide character, and grammar, spelling, and dictation exercises.
|
||||
|
||||
Open source project, in development. Current status: first playable prototype (scope of cahier-des-charges §15) — boot, profiles, a three-location map, all three exercise types, saves, Linux/Windows exports. Pedagogical content is still minimal (see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product).
|
||||
Open source project, in development. Current status: version 0.1.0, playable offline on Linux and Windows — profiles, saves, three exercise types (multiple choice, sentence correction, dictation), a CE1 chapter on noun-group agreement (3 rules) and a CE2 chapter on grammatical homophones (a/à, et/est, son/sont, on/ont), 21 missions. All pedagogical content is still `draft` (awaiting validation) and dictation voices are placeholders (see `assets/CREDITS.md`; see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product).
|
||||
|
||||
## Tech stack
|
||||
|
||||
@@ -27,7 +27,10 @@ make run # runs the game
|
||||
| `make validate-data` | validates the JSON files in `data/` |
|
||||
| `make test` | headless tests |
|
||||
| `make check` | lint + validate-data + test, must pass before every commit |
|
||||
| `make content-review` | regenerates `docs/review/content-review.md` (content validation document) |
|
||||
| `make generate-dictation-audio` | generates the placeholder dictation audio |
|
||||
| `make export-linux` / `make export-windows` | exports into `build/` |
|
||||
| `make package` | builds the distributable archives in `dist/` (single executable + license + credits) |
|
||||
|
||||
## Structure
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Jeu éducatif de français pour les CE1-CE2 (7-9 ans) : une aventure 2D hors ligne, avec une carte à explorer, un personnage guide, et des exercices de grammaire, d'orthographe et de dictées.
|
||||
|
||||
Projet open source, en développement. Statut actuel : premier prototype jouable (périmètre du §15 du cahier des charges) — démarrage, profils, carte à trois lieux, trois types d'exercices, sauvegardes, exports Linux/Windows. Contenu pédagogique encore minimal (voir `docs/specs/decisions.md` pour les décisions de cadrage et `docs/specs/cahier-des-charges.md` pour la spécification complète).
|
||||
Projet open source, en développement. Statut actuel : version 0.1.0, jouable hors ligne sur Linux et Windows — profils, sauvegardes, trois types d'exercices (choix multiple, correction de phrase, dictée), chapitre CE1 « accords dans le groupe nominal » (3 règles) et chapitre CE2 « homophones grammaticaux » (a/à, et/est, son/sont, on/ont), 21 missions. Contenu pédagogique entièrement en brouillon (`draft`, à valider) et voix des dictées provisoires (voir `assets/CREDITS.md` ; voir `docs/specs/decisions.md` pour les décisions de cadrage et `docs/specs/cahier-des-charges.md` pour la spécification complète).
|
||||
|
||||
## Pile technique
|
||||
|
||||
@@ -27,7 +27,10 @@ make run # lance le jeu
|
||||
| `make validate-data` | valide les JSON de `data/` |
|
||||
| `make test` | tests headless |
|
||||
| `make check` | lint + validate-data + test, à passer avant chaque commit |
|
||||
| `make content-review` | régénère `docs/review/content-review.md` (document de validation du contenu) |
|
||||
| `make generate-dictation-audio` | génère l'audio provisoire des dictées |
|
||||
| `make export-linux` / `make export-windows` | exports dans `build/` |
|
||||
| `make package` | produit les archives distribuables dans `dist/` (exécutable unique + licence + crédits) |
|
||||
|
||||
## Structure
|
||||
|
||||
|
||||
@@ -262,3 +262,11 @@ Ajouts à l'arborescence proposée :
|
||||
**Correction** : restauration des accents sur 76 lignes de 44 fichiers de `data/` (champs `instruction`, `question`, `hint`, `explanation`, `statement`, `example`, `title`, `narrative_context` uniquement ; aucun identifiant, `target_text`, mot de dictée ni token modifié, donc aucun lien entre données ni audio touché). Cas particuliers : « a » devenu « à » (préposition) et « annonce » devenu « annoncé ». Le tag interne `feminin` de `review_tags` est conservé (identifiant, non affiché).
|
||||
|
||||
**Règle pour la suite** : tout texte destiné à l'enfant est écrit avec ses accents dès la rédaction.
|
||||
|
||||
## 29. Production de la version 0.1.0 (relecture du cahier des charges)
|
||||
|
||||
**Relecture** : le §15 (première version jouable) demande un export Linux et Windows ; le §12 demande « une version installable et testée » par plateforme ; le §13 recommande de valider d'abord Linux et Windows, Android/macOS/iOS venant ensuite (hors périmètre, prompt-lancement.md). La version est donc produite pour Linux x86_64 et Windows x86_64.
|
||||
|
||||
**Mise en œuvre** : `config/version="0.1.0"` dans `project.godot` ; PCK embarqué dans l'exécutable (`binary_format/embed_pck=true`) pour un fichier unique par plateforme ; `make package` (`tools/package.sh`) réexporte depuis zéro puis crée `dist/` : `.tar.gz` Linux et `.zip` Windows contenant l'exécutable, `LICENSE`, `README.md`, `README-EN.md`, `CREDITS.md` et une notice `LISEZMOI.txt` (lancement, emplacement des sauvegardes, voix provisoires), plus `SHA256SUMS`. Le script refuse d'empaqueter un document vide (un README tronqué par une erreur d'édition a été détecté pendant cette production).
|
||||
|
||||
**Écarts connus par rapport au cahier des charges, non traités** (hors périmètre du §15 ou nécessitant des ressources/décisions humaines) : voix préenregistrées naturelles (§16 : voix de synthèse provisoires), illustrations originales et personnage guide animé (formes simples, §11/§16), espace adulte et export/restauration des sauvegardes (§9/§10), écran de réglages (volume, taille du texte, animations — `SettingsManager` existe sans interface), tests sur appareils réels et sur d'autres distributions/Windows (§12/§13), contenu entièrement en `draft` (validation humaine requise avant diffusion).
|
||||
|
||||
@@ -35,6 +35,8 @@ Tout ce qui suit ne peut pas être vérifié sans écran (rendu, mise en page, a
|
||||
|
||||
## Exports
|
||||
|
||||
- `make package` produit `dist/aventuriers-des-mots-0.1.0-{linux,windows}-x86_64.*` (exécutable unique, PCK embarqué) : sommes de contrôle et lancement headless de l'archive Linux vérifiés ici ; le binaire Windows n'a été vérifié que par son format (PE32+).
|
||||
|
||||
- `make export-linux` produit `build/linux/aventuriers_des_mots.x86_64` : lancé et vérifié en headless dans cet environnement, mais **jamais vu à l'écran** ni testé sur une autre distribution (cahier des charges §13 demande un test sur les distributions cibles).
|
||||
- `make export-windows` produit `build/windows/aventuriers_des_mots.exe` : seul le format du binaire (PE32+) a pu être vérifié ici. **Jamais exécuté** (pas de machine Windows ni de Wine disponibles) : à tester sur une vraie machine Windows avant toute diffusion.
|
||||
- Vérifier manuellement que le jeu se comporte correctement en plein écran et en fenêtré sur les deux plateformes.
|
||||
|
||||
@@ -20,6 +20,7 @@ script_export_mode=2
|
||||
[preset.0.options]
|
||||
|
||||
binary_format/architecture="x86_64"
|
||||
binary_format/embed_pck=true
|
||||
|
||||
[preset.1]
|
||||
|
||||
@@ -43,3 +44,4 @@ script_export_mode=2
|
||||
[preset.1.options]
|
||||
|
||||
binary_format/architecture="x86_64"
|
||||
binary_format/embed_pck=true
|
||||
|
||||
@@ -11,6 +11,7 @@ config_version=5
|
||||
[application]
|
||||
|
||||
config/name="Les Aventuriers des mots"
|
||||
config/version="0.1.0"
|
||||
run/main_scene="res://scenes/boot/boot.tscn"
|
||||
config/features=PackedStringArray("4.6", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
# Produit les archives distribuables dans dist/ : un executable unique par
|
||||
# plateforme (PCK embarque) + licence, credits et notice. Reexporte toujours
|
||||
# depuis zero pour ne jamais empaqueter un build perime.
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
VERSION="$(sed -n 's/^config\/version="\(.*\)"/\1/p' project.godot)"
|
||||
[ -n "${VERSION}" ] || { echo "config/version absent de project.godot" >&2; exit 1; }
|
||||
|
||||
rm -rf build dist
|
||||
make export-linux export-windows >/dev/null
|
||||
|
||||
write_notice() {
|
||||
cat > "$1/LISEZMOI.txt" <<NOTICE
|
||||
Les Aventuriers des mots ${VERSION}
|
||||
Jeu éducatif de français CE1-CE2, hors ligne.
|
||||
|
||||
Lancer : $2
|
||||
Aucune installation ni connexion Internet n'est nécessaire.
|
||||
|
||||
Les profils et la progression sont enregistrés localement :
|
||||
$3
|
||||
Sauvegarder ce dossier suffit à conserver la progression.
|
||||
|
||||
Les voix des dictées sont provisoires (synthèse vocale) ; voir CREDITS.md.
|
||||
Licence : GNU AGPL v3 (fichier LICENSE). Code source : voir README.md.
|
||||
NOTICE
|
||||
}
|
||||
|
||||
stage() {
|
||||
local name="$1" src="$2" launch="$3" saves="$4"
|
||||
local dir="dist/${name}"
|
||||
mkdir -p "${dir}"
|
||||
cp "${src}" "${dir}/"
|
||||
for doc in LICENSE README.md README-EN.md assets/CREDITS.md; do
|
||||
[ -s "${doc}" ] || { echo "${doc} est vide : paquet refuse" >&2; exit 1; }
|
||||
done
|
||||
cp LICENSE README.md README-EN.md "${dir}/"
|
||||
cp assets/CREDITS.md "${dir}/CREDITS.md"
|
||||
write_notice "${dir}" "${launch}" "${saves}"
|
||||
}
|
||||
|
||||
LINUX="aventuriers-des-mots-${VERSION}-linux-x86_64"
|
||||
WINDOWS="aventuriers-des-mots-${VERSION}-windows-x86_64"
|
||||
|
||||
stage "${LINUX}" build/linux/aventuriers_des_mots.x86_64 \
|
||||
"./aventuriers_des_mots.x86_64 (au besoin : chmod +x aventuriers_des_mots.x86_64)" \
|
||||
"~/.local/share/godot/app_userdata/Les Aventuriers des mots/"
|
||||
stage "${WINDOWS}" build/windows/aventuriers_des_mots.exe \
|
||||
"double-clic sur aventuriers_des_mots.exe" \
|
||||
"%APPDATA%\\Godot\\app_userdata\\Les Aventuriers des mots\\"
|
||||
|
||||
(cd dist && tar czf "${LINUX}.tar.gz" "${LINUX}" && zip -qr "${WINDOWS}.zip" "${WINDOWS}")
|
||||
(cd dist && sha256sum "${LINUX}.tar.gz" "${WINDOWS}.zip" > SHA256SUMS)
|
||||
rm -rf "dist/${LINUX}" "dist/${WINDOWS}"
|
||||
ls -lh dist
|
||||
Reference in New Issue
Block a user