Auto-Builder vs Local Builds
Intent
Use the HL7 IG Auto-Builder for rapid feedback during feature development, reserving local builds for release preparation and downstream integration testing.
Implementation Considerations
IG Auto-Builder for feature work
The HL7 IG Auto-Builder (build.fhir.org) provides free CI for FHIR IGs hosted on GitHub. Use it for most development work. - Push to GitHub triggers automatic build within minutes - Results published to build.fhir.org/ig/{org}/{repo}/branches/{branch} - QA report highlights errors and warnings - No local toolchain setup required for contributors - Ideal for: feature branches, PR reviews, documentation updates
Local builds for releases
Run local builds for release candidates to catch issues the auto-builder might miss and to perform downstream testing. - Full control over IG Publisher version (pin to release version) - Run downstream validation tools like Inferno test suites - Test against local terminology servers if needed - Validate example resources against external validators - Generate and review full QA report before tagging
Downstream testing with Inferno
Before releasing, validate that the IG works with downstream testing tools that implementers will use. - Run Inferno test kit against example resources - Verify CapabilityStatement aligns with test expectations - Check that Must Support elements are testable - Document known test gaps in release notes
Release build checklist
- Switch all
currentdependencies to pinned versions - Run local build with pinned IG Publisher version
- Review QA report — zero errors, minimal warnings
- Run Inferno or other downstream test suites
- Verify package.tgz contents and metadata
- Tag release only after all checks pass
Benefits
- Fast iteration during development
- Thorough validation before release
- Catches integration issues early
Trade-offs
- Two different workflows to manage
- Local builds require toolchain setup
- Downstream testing adds release overhead
Auto-builder for PRs, local for releases
Let the auto-builder handle all PR builds. Reserve local builds for the release candidate phase when you need full control and downstream testing.