Aller au contenu

Audit post-publication Forge 1.0.0-beta.12

Ticket : RELEASE-BETA12-POST-PUBLISH-VERIFY-001. Smoke test post-publication réalisé hors du dépôt de développement, depuis PyPI, comme un utilisateur externe. Aucun bump, aucune publication, aucune modification fonctionnelle. Release auditée : commit ac7f07b, tag v1.0.0-beta.12, versions PyPI 1.0.0b12.

Verdict

GO — release 1.0.0-beta.12 confirmée installable et utilisable.

L'installation depuis PyPI (forge-mvc + forge-mvc-iot en 1.0.0b12), la création de projets neufs, le starter welcome-iot, les commandes IoT et opt-ins, forge optin:enable iot / forge optin:list et forge iot:doctor fonctionnent tous depuis la release publiée. Le core reste indépendant de l'opt-in IoT.

Environnement de test

mkdir -p /tmp/forge-b12-post-publish && cd /tmp/forge-b12-post-publish
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip

Venv neuf, hors dépôt Forge, installation strictement depuis PyPI (--pre). Python 3.12.13. git, openssl, npm présents.

Installation core seule

pip install --pre forge-mvc==1.0.0b12 → succès.

  • forge --versionForge 1.0.0b12 ;
  • forge help liste les commandes de base (new, run, doctor, make:entity, db:init, starter:list, …).

Création projet neuf

forge new forge-b12-core → projet créé et initialisé (clone du tag v1.0.0-beta.12, env, venv Python, dépendances, npm/Tailwind, certificats SSL, git init), exit 0.

forge doctor dans le projet : 0 erreur, 2 avertissements attendus (MFA opt-in absent ; base non encore db:init). Aucune mention ni erreur liée à forge-mvc-iot → le core reste indépendant de l'IoT.

Installation forge-mvc-iot

pip install --pre forge-mvc-iot==1.0.0b12 (même venv) → succès. pip show forge-mvc-iot1.0.0b12.

Commandes IoT et optins

forge help (avec forge-mvc-iot installé) expose :

iot:doctor    iot:init    iot:simulate    iot:listen
optin:enable  optin:list

(Les commandes optin:* appartiennent au core ; les iot:* deviennent fonctionnelles une fois forge-mvc-iot installé.)

forge optin:enable iot

Dans forge-b12-core (dont mvc/routes.py contient router = Router(), structure reconnue) :

  • forge optin:list (avant) → iot absent ;
  • forge optin:enable iot (dry-run par défaut) → annonce les 6 fichiers
  • le branchement mvc/routes.py, n'écrit rien (optins/ non créé) ;
  • forge optin:enable iot --apply → crée optins/__init__.py, optins/registry.py, optins/iot/{__init__.py,routes.py,README.md, migrations/README.md} et branche mvc/routes.py (from optins.registry import register_optins + register_optins(router)).

forge optin:list

  • Après --applyiot activé (structure optins/iot/, registry optins/registry.py, register_optins(router) présent dans mvc/routes.py).
  • Commande lecture seule : Aucune modification effectuée.

Starter welcome-iot

forge new forge-b12-iot --starter welcome-iot → projet généré (exit 0).

  • optins/iot/ présent (mêmes 6 fichiers) ;
  • mvc/routes.py branché via optins/registry.py (register_optins(router)) — injecté par le snippet du starter ;
  • forge doctor → 0 erreur ;
  • forge iot:doctor → OK hors DB/MQTT.

forge iot:doctor

Diagnostic statique (sans --db ni --mqtt) :

[OK]    package forge-mvc-iot — installé (version 1.0.0b12)
[OK]    configuration IoT — chargée
[OK]    migration iot_events — présente (…_create_iot_events.sql)
[OK]    API HTTP IoT — register_iot_routes disponible
[SKIP]  broker MQTT — non testé par défaut
[SKIP]  base iot_events — non testée par défaut
0 avertissement(s), 0 erreur(s), 2 info(s).

Visibilité PyPI

API JSON PyPI (source de vérité) : forge-mvc et forge-mvc-iot exposent bien 1.0.0b12 (les 7 paquets ont été confirmés lors de la publication). Note : pip index versions renvoie un faux négatif (commande expérimentale) — non bloquant, l'installation --pre fonctionne.

Limites du smoke test

  • MQTT (Mosquitto) et base (MariaDB) ne sont pas testés en connexion réelle (hors périmètre ; --mqtt / --db restent en SKIP).
  • Pas de démarrage de serveur applicatif (forge run / python app.py) ni de requête HTTP réelle vers /api/iot/events.
  • Pas de test des autres opt-ins (rbac/workflow/stats/mfa/media) ni de leur activation.
  • pip index versions non fiable ici — vérification via API JSON.

Décision

GO. La release Forge 1.0.0-beta.12 est publiée, installable depuis PyPI et fonctionnelle de bout en bout pour le parcours IoT + opt-ins côté utilisateur. Prochain ticket : OFFICIAL-SITE-BETA12-UPDATE-001 (mise à jour du site / doc publiée vers 1.0.0-beta.12).