Rulebearing Playground Coverage Schemas GitHub

ADR-0033: One crate-scoped licence exception, Apache-2.0 WITH LLVM-exception for ar_archive_writer, which the Python parser's build requires

Context

ruff_python_parser 0.0.14, pinned by the Python extractor under ADR-0013, depends unconditionally on stacker (it grows the stack for deeply nested source), which depends on psm (MIT OR Apache-2.0). psm's build script uses ar_archive_writer 0.5, a build-time dependency published by the Rust project, whose licence is Apache-2.0 WITH LLVM-exception. The deny.toml allow-list from ADR-0019 names Apache-2.0 but not the LLVM exception, so the deny job refuses the build.

The LLVM exception only adds permissions to Apache-2.0: it waives the attribution requirements for object code that embeds parts of the licensed work. Apache-2.0 is already allowed, so the exception licence is at least as permissive as one the project accepts. The crate runs at build time to assemble an archive; it is not a parser and reads no untrusted input.

Decision

Consequences

Alternatives considered