Skip to content

Epic: Release readiness — end-to-end clone-and-run for external users #278

Description

@jsboige

Vision

Quand un utilisateur tiers (contributeur, imprimeur, partenaire) clone le repo et lance dotnet run -c Release, le pipeline doit fonctionner sans configuration locale :

  • CSV tirés depuis raw.githubusercontent.com/.../master/Cards/...
  • CardPen depuis GitHub Pages
  • Templates JSON depuis GitHub raw
  • Output qualité imprimeur (PNG lossless + CMYK + 300 DPI)

Le développeur (dotnet run Debug) garde son expérience actuelle : fichiers locaux, cache .harvest.json, output preview-friendly (JPEG Q=85, no CMYK pour Print&Play) pour faciliter la review dans Edge PDFium.

Pattern de référence

Le mécanisme est déjà en place dans AssetConverterConfig.cs:363-376 :

```csharp
public bool UseDebugParams => (isInDebugMode || ForceDebugParams) && !ForceReleaseParams;
public bool UseReleaseParams => (!isInDebugMode && !ForceDebugParams) || ForceReleaseParams;

#if DEBUG
bool isInDebugMode = true;
#else
bool isInDebugMode = false;
#endif
```

Avec ForceDebugParams / ForceReleaseParams overridables via JSON pour les cas spéciaux (CI, livraison depuis Debug build).

Précédents corrects (10+ endroits utilisant déjà ce pattern) :

  • CardSetInfo.GetJsonFilePath()JsonFilePathDebug vs JsonFilePathRelease
  • HarvestManager — CSV dataSet.GetContent(AssetConverterConfig.UseDebugParams) (filesystem vs GitHub raw)
  • MindMapDocumentConfig.GenerateHtmlSvgWrappers()TemplatePathDebug vs TemplatePathRelease
  • DatasetUpdaterConfig — mêmes patterns

Anti-patterns à corriger (découverts session 16 mai) :

Roadmap (par ordre de priorité)

Dépendances

Convention sprint

  • 1 task = 1 PR (sauf 2+3 qui peuvent être combinés)
  • Preuve before/after dans body PR
  • Tests verts requis
  • Convention `1 PR = 1 issue` respectée

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestepicMulti-task initiative tracked as a parent issuerelease-readinessAnything blocking end-user clone-and-run-Release workflow

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions