Préparation à la publication
La page de publication rapporte le statut de gate sûr-pour-le-public à travers le code, les paquets, les docs, les données du portail, les matériaux de présentation, la sécurité, et le déploiement. Le déploiement en production reste bloqué jusqu'à ce que l'ensemble complet de cartes-vertes passe.
✅ Statut de gate
| Gate | Statut actuel | Politique de preuve |
|---|---|---|
| Lint et formatage | Vérification requise | uv run ruff format --check . et uv run ruff check . doivent passer sans constat. |
| Vérification de types | Vérification requise | uv run mypy packages tests tools examples doit passer sous l'environnement verrouillé. |
| Registre de prose | Vérification requise | uv run python tools/check_prose_register.py doit passer sur chaque surface publique. |
| Dérivation code-d'abord | Vérification requise | uv run python tools/check_code_first.py doit passer. |
| En-têtes de licence | Vérification requise | uv run reuse lint et uv run python tools/license_header.py check doivent passer tous deux. |
| Scan de secrets | Vérification requise | gitleaks detect --source . --redact --config .gitleaks.toml ne doit rapporter aucune fuite. |
| Compilation des docs | Vérification requise | npm --prefix site run build et npm --prefix site run check doivent se terminer pour l'espace de travail actuel. |
| Données du portail | Vérification requise | uv run pytest tests/site doit passer et enregistrer l'exécution avant la promotion. |
| Couverture | Vérification requise | uv run coverage run -m pytest et uv run coverage report doivent enregistrer un résultat de seuil réussi. |
| Ligne de base d'accessibilité | Vérification requise | Métadonnées SVG, texte alt, contrôles étiquetés, et mise en page responsive doivent être vérifiés par les tests du site ou l'audit d'accessibilité. |
| Vérification des liens | Vérification requise | La compilation du site doit résoudre les liens de navigation et de page documentés pour l'espace de travail actuel. |
| Compilation de paquet | Vérification requise | uv run python tools/build_packages.py doit émettre des artefacts de compilation et des hachages avant la promotion de paquet. |
| Smoke d'installation de paquet | Vérification requise | Les wheels compilées doivent s'installer dans un environnement virtuel frais et importer chaque espace de noms public. |
| Export de lot de preuves | Vérification requise | Tableaux, figures, et supplément doivent se régénérer depuis une campagne filtrée par divulgation. |
| Relecture de campagne pilote | Vérification requise | Les campagnes pilotes bornées doivent reprendre, rejouer depuis les graines enregistrées, et reproduire des exports d'analyse déterministes. |
| Campagnes complètes candidates | Vérification requise | tools/build_campaign_evidence.py doit matérialiser 30 problèmes par profil, exécuter des campagnes comparatives/d'ablation/de sensibilité, et exporter des lots filtrés par divulgation. |
| Audit de dépendances | Vérification requise | uv run pip-audit --path <site-packages> --progress-spinner off doit se terminer sans constat bloquant la publication. |
| SBOM | Vérification requise | Le JSON CycloneDX doit être généré depuis l'environnement Python audité, enrichi de licences de composants, hachages, URLs de paquet, et arêtes de dépendance. |
| CI hébergée | Conditionnée à la disponibilité de runner | .github/workflows/ci.yml doit passer sur Ubuntu, Windows, macOS, et Python 3.12-3.14 avant les affirmations publiques. |
| Artefacts de publication | Workflow manuel | .github/workflows/release.yml compile les distributions, hachages, lots de signature Sigstore, GitHub artifact attestations, et preuve SBOM ; la publication GitHub et la publication PyPI nécessitent des entrées explicites. |
| Déploiement | Workflow manuel | .github/workflows/pages.yml déploie site/out seulement après saisie de la confirmation de domaine approuvée. |
Le lot de gate public est disponible sous gate-summary.json.
📦 Canaux de publication
DispatchAtlas est conçu pour plusieurs canaux de publication, mais chaque canal a un état de préparation différent :
| Canal | État actuel | Preuve de promotion |
|---|---|---|
| Wheels et sdists locaux | Actif pour les vérifications de test | Compilation de paquet plus smoke d'import en venv-frais. |
| Index de paquets Python | Conditionné | Versionnage, métadonnées, succès du workflow de publication, publication de confiance, et approbation explicite de publication. |
| Site web de documentation | Prêt à compiler | Compilation du site et vérification de types, tests de contrat du site, vérifications de liens, lots de données sûrs-pour-le-public, et approbation manuelle de Pages. |
| Jeux de données statiques du portail | Prêt pour l'aperçu | Lots JSON/CSV filtrés par divulgation avec étiquettes de preuve et sans entrées privées. |
| Lots de preuves | Prêt comme candidat | Manifeste, tableaux, figures, supplément, et relecture déterministe sur la preuve de campagne candidate. Les affirmations de corps restent conditionnées par non-égalité et suffisance de faisabilité. |
| Artefacts de sécurité | Actif localement | Audit de dépendances, SBOM enrichi, scan de secrets, revue des permissions de workflow, OpenSSF Scorecard, et scan de similarité. |
Aucun canal ne doit être promu en copiant des fichiers générés manuellement. Promouvez en réexécutant la commande ou le workflow propriétaire et en gardant la preuve de gate correspondante au vert.