Weekly Recap: August 7-14
A weekly recap covering AL Runner v2 improvements closing emulation gaps against real BC, reference suite growth through sandbox-verified testing, bc-code-atlas enhancements for cross-app call graphs with deterministic global IDs, AL-Go fast lane hardening for multi-workflow stability, and compile-time benchmarking showing NuGet-sourced compilation is faster due to smaller dependency caches.
post Stefan Maron
"run the corpus against real BC, find a case where the runner and BC disagree, fix it"
Key points
- AL Runner shipped 85 PRs fixing emulation-to-real-BC divergences in rename propagation, calc formulas, test paging, and event dispatch
- Added safety mechanisms like count-baseline floors to prevent silent test vanishing and reclassified permanent gaps from temporary ones
- bc-code-atlas global_id enables cross-instance call graphs by using deterministic identity-based keys independent of indexing
- Fast lane hardening fixed silent build skips in non-PR workflows and missing-package errors in compile-only projects
- Compile benchmarking revealed NuGet folder dependency caches are faster than artifact folders because they only contain actual closure, not all bundled apps
Quotes
- “run the corpus against real BC, find a case where the runner and BC disagree, fix it” (Explains the systematic approach to closing emulation gaps through measured comparison rather than assumptions)
- “if a measured run disagrees with the assumption, the measurement wins” (Illustrates the core testing discipline of validating against real BC behavior as the authoritative reference)
AL objects mentioned
As named in the post. A name that matches one object page by exact type and name links to it; the others stay as named.
- other “AL Runner”
- other “bc-code-atlas”
- other “AL-Go”
- other “BusinessCentral.AL.Language.Tests”
- other “MsDyn365Bc.On.Linux”
- other “al-go-compile-bench”
Context
- Features: AL Runner emulation correctness, Event dispatch with EventSubscriberInstance Manual, TableRelation rename propagation, TestPage AutoSplitKey numbering, Cross-app call graph navigation, Deterministic global IDs, AL-Go fast lane multi-workflow support, TLS reverse proxy support for containers
- Versions: BC 27.x, BC 28.x
Source: Stefan Maron, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.