Model Promotion Policy
This document defines the minimum bar a model must meet before it can be promoted from experimental to stable. The goal is to make promotion a deterministic, reviewable decision rather than a subjective one.
Stability Tiers
DeepTab ships models at two tiers:
Tier |
Meaning |
|---|---|
Experimental |
API may change without a deprecation cycle. No stability guarantees. Flagged in docs and docstrings. |
Stable |
Public API is frozen under semantic versioning. Breaking changes require a deprecation notice ≥ one minor release before removal. |
A model enters the codebase as experimental. A maintainer promotes it to stable by opening a dedicated promotion PR once every criterion below is met.
Promotion Requirements
Every criterion below must be met before promotion. Each is objective and reviewable.
# |
Requirement |
What it means |
|---|---|---|
1 |
Public API |
Constructor matches stable-estimator conventions ( |
2 |
Documentation |
A page under |
3 |
End-to-end example |
A runnable example in |
4 |
Save / Load |
If save/load is part of the task’s stable contract, the model round-trips via the standard mechanism with a test asserting identical predictions. |
5 |
Tests |
A behavioral test covering fit on synthetic data, predict shape/dtype, and config serialization round-trip. All pass in CI ( |
6 |
No critical bugs |
No open |
7 |
Registry |
Config class exported from |
Promotion PR
Open a PR titled feat(<model-name>): promote to stable. The PR must:
Move the model file from
deeptab/models/experimental/todeeptab/models/usinggit mv.Update relative imports in the moved file (reduce one
..level).Remove the model from
deeptab/models/experimental/__init__.pyand its__all__.Add the model to
deeptab/models/__init__.pyimports and__all__.Update
MODEL_REGISTRYindeeptab/core/registry.py: changestatusto"stable"andimport_pathto"deeptab.models".Remove any
.. experimental::admonition from the model’s doc page.Remove the experimental badge from the API reference entry.
Add the model to the changelog under
### Promoted to Stable.
Approval requires at least one maintainer review beyond the author. Use the promotion checklist in the PR template to track each requirement.
Demotion
Demotion back to experimental is only warranted if a critical correctness bug is found that cannot be fixed without a breaking API change. In that case:
Open an issue labelled
regressionandbreaking.Add an
ExperimentalWarningin the next patch release pointing to the issue.Fix the problem and re-promote via the standard requirements above.
Demotion is not itself a breaking change, but it must be documented prominently in the release notes.