Current Version Dependency
Intent
Use the special current version symbol to depend on the latest CI build of an upstream IG, enabling rapid integration testing during active co-development phases.
Implementation Considerations
Using current in sushi-config.yaml
The current keyword resolves to the latest successful CI build from the upstream IG's build server.
- Specify dependency as package.id: current in sushi-config.yaml
- SUSHI resolves current to https://build.fhir.org/ig/{org}/{repo}/package.tgz
- Each build gets the latest upstream artifacts without manual version bumps
- Useful during active co-development sprints between related IGs
When to use current
- Feature branches integrating with upstream changes not yet released
- Early-stage IGs tracking a rapidly evolving base IG
- Cross-team sprints where both IGs are changing simultaneously
- Testing compatibility before upstream cuts a formal release
When NOT to use current
- Release branches — always pin to a specific version
- Production deployments — use tagged releases only
- Stable IGs with infrequent upstream changes
- When reproducibility is required (current changes daily)
Benefits
- Faster feedback on integration issues
- No manual version bumping during co-development
- Early detection of breaking changes
Trade-offs
- Non-reproducible builds (different results each day)
- May break unexpectedly when upstream changes
- Not suitable for releases or production
sushi-config.yaml with current dependency
Branch strategy for current
Use current on feature and develop branches, but always switch to pinned versions before creating a release branch.
Never release with current
A release built with current dependencies cannot be reproduced. Always pin to specific versions before tagging a release.