After Effects project import (.aep / .aepx); export follows (#2558)

Add After Effects project import with bounded parsing, explicit loss reports, and regression coverage.

Fetch the cleaned external test corpus at commit 97262276f625afdeeb61787e4cbb74b3f17af510 and verify each fixture against the pinned SHA-256 manifest.
This commit is contained in:
Valentin Klein
2026-11-04 12:06:08 +01:00
committed by GitHub
parent 58ca9c1c1b
commit bb78d55825
148 changed files with 29712 additions and 12 deletions
+15 -1
View File
@@ -2,7 +2,21 @@
```sh
cargo test --workspace # everything
cargo xtask ci # fmt, clippy -D warnings, tests, layers, assets, wasm
cargo xtask ci # fmt, clippy -D warnings, tests, pdf-deps, layers, assets, wasm
```
The After Effects test projects of `crates/aep` are not in the repository; without them the
`crates/aep`, engine and ui-egui tests that need one print `SKIPPED: fixture <name> missing` and
pass. They live in [storytold/effectcraft-corpus](https://github.com/storytold/effectcraft-corpus).
`cargo xtask aep-corpus` fetches them at the commit pinned in `crates/aep/tests/fixtures/corpus.lock`,
checks every file against the SHA-256 listed there (any mismatch fails and installs nothing) and
installs them in `corpus/aep`. Point `EFFECTCRAFT_AEP_FIXTURES` at that folder to run those tests
too, and set `EFFECTCRAFT_AEP_FIXTURES_REQUIRED=1` as well to make a missing project fail its test
instead of skipping (a corpus run that must not pass by skipping):
```sh
cargo xtask aep-corpus
EFFECTCRAFT_AEP_FIXTURES=corpus/aep EFFECTCRAFT_AEP_FIXTURES_REQUIRED=1 cargo test -p effectcraft-aep
```
The `dev` profile keeps debug info to line tables (fast builds, readable backtraces). To debug