# Test notes for 0.9.0

Version 0.9.0 is the release-candidate validation pass. The suite exercises
successful workflows, the frozen public API, compatibility syntax, the Einstein
preset and every package-defined diagnostic on all three major LaTeX engines
available in the development environment.

## Engines

`l3build check` runs on:

- pdfTeX;
- LuaTeX;
- XeTeX.

## Regression groups

- `load` - package loading and version smoke test;
- `surface` - existence of the candidate public commands/environment and the
  compatibility aliases;
- `defaults` - public configuration defaults;
- `api` - canonical blank/manual/solution API;
- `legacy` - bare-item categories, slash references, positional solution rows,
  compact `\IntegrammeSolution`, and short `\Int...` aliases;
- `content` - printed labels containing commas, slashes, mathematics and LaTeX
  formatting, plus clues with punctuation;
- `options` - all public configuration keys and global/local scoping;
- `sizes` - minimum valid puzzles and a larger multi-category puzzle;
- `diagnostics-categories` - category/item/geometry declaration errors;
- `diagnostics-marks` - malformed/unknown references, same-category marks and
  conflicting marks;
- `diagnostics-solution` - all solution-row and complete-solution validation
  paths;
- `warnings` - ignored manual marks and width overflow warnings;
- `presets` - Einstein preset loading in English/French and solution mode.

Diagnostic tests redirect package errors to warnings. This lets the entire test
file run and allows `l3build` to compare the exact diagnostic transcript without
turning expected error cases into failed TeX processes.

## Static release-candidate audit

The development tree contains `support/release-audit.py`. It checks:

- version/date consistency across release metadata;
- implementation keys versus the documented public key list;
- candidate public commands and compatibility aliases;
- LPPL/readme statements;
- generated CTAN archive contents (including the absence of generated `.sty`
  files and TeX intermediates).

The resulting report is saved as `AUDIT.md`.

## Release checks

The release procedure runs:

```text
latex integramme.ins
l3build unpack
l3build check
l3build doc
l3build ctan
python3 support/release-audit.py
```

All shipped examples are compiled with pdfLaTeX; the comprehensive example is
also compiled with LuaLaTeX and XeLaTeX. A user-defined 0.8 reference document is rendered with 0.9.0 and compared
pixel-for-pixel to verify that the release-candidate metadata/documentation pass
does not alter ordinary valid output.
