Package maturity
Each package carries a maturity rating: Experimental, Incubating, or Stable. The rating is declared in
the package's project file as <PackageMaturity> and derived into the published metadata — a maturity-<level>
NuGet tag and a [Level] prefix on the package description. The table here is the same rating users see on
NuGet; a test keeps the two in sync.
Levels
Experimental — no real application uses the package. It may change or be removed in any release.
Incubating — at least one real application uses it, directly or through a package that application references, and it is pre-1.0 or used by fewer than two real applications. The API may still change in minor releases.
Stable — version 1.0 or later and used by at least two real applications. Semantic versioning and deprecation cycles apply.
Promotion rule
A package moves up one level at a time, when it meets the next level's bar:
- Experimental → Incubating: a real application starts using it.
- Incubating → Stable: the package reaches 1.0 and a second real application uses it. Until both are true it stays Incubating, however long it has been in use.
No package is Stable today: every Reified package is pre-1.0.
What counts as a real application
A real application is an application in active use outside this repository. The current set is gitkay and Logs Digger. Examples, samples, tests, and reference apps in this repository do not count, and neither does another package — an application must sit above the package graph.
Ratings
| Package | Maturity | Evidence |
|---|---|---|
Reified |
Incubating | Used by gitkay |
Reified.Schema |
Incubating | Used by Logs Digger |
Reified.Data |
Incubating | Used through Reified and Reified.Schema |
Reified.Constraint |
Incubating | Used through Reified and Reified.Schema |
Reified.Parse |
Incubating | Used through Reified and Reified.Schema |
Reified.Refinements |
Incubating | Used through Reified and Reified.Schema |
Reified.Result |
Incubating | Used through Reified |
Reified.Schema.Http |
Incubating | Used through Reified |
Reified.SchemaGen.MSBuild |
Experimental | No application uses it yet |
Reified.Schema.Testing |
Experimental | No application uses it yet |
Reified is the umbrella package gitkay references; Reified.Schema is the package Logs Digger references. Every
runtime package those two reference transitively inherits Incubating, because an application using the umbrella or
the Schema package uses those packages through it. Reified.SchemaGen.MSBuild is referenced by no application, so
it stays Experimental even though both applications could generate schemas with it.
The non-packable repository tooling — Reified.SchemaGen — has no rating because it is never published.