fhir-diff 0.1.2

Semantic diff of FHIR packages and profiles with a breaking-change gate
Documentation
# Changelog

## 0.1.2 — 2026-11-06

- `profile-replaced`: the only profile of a type removed and the only one added are compared as
  a pair, so `us-core-implantable-device` → `us-core-device` shows what changed instead of a
  removal and an addition. `ProfileDiff::replaces` holds the old URL.
- `invariant-moved`: an invariant that moved to another element is one change. It is info when
  the expression says the same from there, `invariant-changed` otherwise.
- `elementdefinition-type-must-support` is read through octofhir-fhirschema 0.3.38: a new type
  slice is `must-support-added` only for a type that was not mustSupport before.
- US Core 6.1.0 → 9.0.0 report regenerated: 64 breaking changes.

## 0.1.1 — 2026-11-04

- Dependencies are read transitively and only while a base is still missing; value set and code
  system packages (`hl7.terminology.*`, VSAC, PHIN VADS) are never read for bases
  (`package::holds_no_profiles`, `base_dependencies`, `missing_bases`). US Core 6.1.0 → 9.0.0
  takes 7 s instead of 21 s in a debug build.
- Folders: only files that may be StructureDefinitions are parsed.
- US Core 6.1.0 → 9.0.0 report regenerated over SDC 3.0.0, the base 6.1.0 depends on: 66
  breaking changes.

## 0.1.0 — 2026-11-04

First release.

- Effective element trees: every profile merged over its whole base chain, down to the core
  type, through FHIR Schema; slices compared as elements (`Patient.identifier:mrn.system`).
- 31 rules in three severities (breaking, warning, info); `--fail-on` gate for CI.
- Text, Markdown, JSON and SARIF 2.1.0 reports.
- A base a package uses but does not list is taken from the other package's dependencies.
- Library without network or package store (`default-features = false`); `registry` and `cli`
  features.