Tracks deprecation shims added under the versioning policy in ROADMAP.md:
any module-path move/rename on the 1.x line gets a re-export shim with a
DeprecationWarning, kept for at least 2 minor releases, logged here.
| Old path | New path | Shim added | Shim first released in | Introduced by | Earliest removal version | Removed in | Owner |
|---|---|---|---|---|---|---|---|
LoopStructural.datatypes.BoundingBox |
LoopStructural.geometry.BoundingBox |
2026-07-24 | TBD (next release containing this shim) | b5eb4742 (unshimmed at the time) |
TBD (2 minor releases after first shim release) | Active | Core maintainers |
LoopStructural.datatypes.Surface |
LoopStructural.geometry.Surface |
2026-07-24 | TBD (next release containing this shim) | b5eb4742 |
TBD (2 minor releases after first shim release) | Active | Core maintainers |
LoopStructural.datatypes.ValuePoints |
LoopStructural.geometry.ValuePoints |
2026-07-24 | TBD (next release containing this shim) | b5eb4742 |
TBD (2 minor releases after first shim release) | Active | Core maintainers |
LoopStructural.datatypes.VectorPoints |
LoopStructural.geometry.VectorPoints |
2026-07-24 | TBD (next release containing this shim) | b5eb4742 |
TBD (2 minor releases after first shim release) | Active | Core maintainers |
LoopStructural.interpolators._finite_difference_interpolator |
loop_interpolation._finite_difference_interpolator |
2026-07-29 | 2026-07-29 | extracted-package integration | 2 minor releases after first shim release | Active | Core maintainers |
LoopStructural.interpolators._interpolator_builder |
loop_interpolation._interpolator_builder |
2026-07-29 | 2026-07-29 | extracted-package integration | 2 minor releases after first shim release | Active | Core maintainers |
LoopStructural.interpolators._interpolator_factory |
loop_interpolation._interpolator_factory |
2026-07-29 | 2026-07-29 | extracted-package integration | 2 minor releases after first shim release | Active | Core maintainers |
Every shim tracked in this file follows the same lifecycle:
- Announce: document in release notes and this table.
- Warn: emit runtime
DeprecationWarningfrom the old path. - Guard: keep plugin-compat CI and API contract checks green.
- Schedule removal: set
Earliest removal versiononce the first shim-containing release is cut. - Remove: only after the earliest removal version is reached and known downstream consumers are migrated.
If a removal is postponed, update Earliest removal version with a short
reason in the release notes.
Not a deprecation shim table entry — the old path keeps working unchanged, but the new path is preferred going forward.
| Old (still works) | New (preferred) | Since |
|---|---|---|
LoopStructural.modelling.features._feature_converters.add_fold_to_feature (private module, imported directly by the QGIS plugin) |
GeologicalModel.add_fold_to_feature |
2026-07-24 |
LoopStructural.modelling.features._feature_converters.convert_feature_to_structural_frame |
GeologicalModel.convert_feature_to_structural_frame |
2026-07-24 |
GeologicalModel.create_and_add_fault(..., faults=[]) |
GeologicalModel.create_and_add_fault(..., faults=None) (list built internally, same effective default) |
2026-07-27 |
GeologicalModel.create_and_add_intrusion(..., intrusion_frame_parameters={}, geometric_scaling_parameters={}) |
GeologicalModel.create_and_add_intrusion(..., intrusion_frame_parameters=None, geometric_scaling_parameters=None) (dicts built internally, same effective default) |
2026-07-27 |
GeologicalModel.get_fault_surfaces(faults=[]) |
GeologicalModel.get_fault_surfaces(faults=None) (list built internally, same effective default) |
2026-07-27 |
GeologicalModel.get_stratigraphic_surfaces(units=[]) |
GeologicalModel.get_stratigraphic_surfaces(units=None) (list built internally, same effective default) |
2026-07-27 |
FaultBuilder.__init__/FoldedFeatureBuilder.__init__/StructuralFrameBuilder.__init__ bounding_box param annotated as LoopStructural.geometry._bounding_box.BoundingBox |
annotated as loop_common.geometry._bounding_box.BoundingBox — LoopStructural.geometry.BoundingBox now re-exports loop_common.geometry.BoundingBox (ROADMAP 2c-3 closed); accepted argument type is unchanged, only the class's canonical module path |
2026-07-30 |
BoundingBox(global_origin=..., global_maximum=...) (local/global split, origin/maximum pre-shifted to be near-zero) |
BoundingBox(origin=..., maximum=...) with origin/maximum always in world coordinates, plus set_local_transform(local_origin=...) for the interpolation frame and project()/reproject() as a proper affine transform. global_origin/global_maximum constructor args and properties are removed; GeologicalModel's scale()/rescale() public methods keep their existing signature and behavior. |
2026-07-30 |
GeologicalModel.from_file(file) (always loads via dill/pickle, no opt-out) |
GeologicalModel.from_file(file, allow_pickle=True) — same default behavior (still unpickles trusted files with no code change required), but allow_pickle=False now refuses to unpickle and raises LoopValueError instead, since deserialising an untrusted pickle/dill file can execute arbitrary code. A runtime warning is also now logged whenever pickle-based loading is used. For untrusted/JSON-based input, use GeologicalModel.from_recipe_dict/to_recipe_dict instead. |
2026-07-30 |
The following stable methods remain part of the documented public API surface after the package extraction work and are covered by the snapshot-based contract test: add_onlap_unconformity, add_unconformity, create_and_add_domain_fault, create_and_add_fault, create_and_add_fold_frame, create_and_add_folded_fold_frame, create_and_add_folded_foliation, create_and_add_foliation, evaluate_model, evaluate_model_gradient, from_file, get_fault_surfaces, get_feature_by_name, get_stratigraphic_surfaces, rescale, save, scale.
- Active shims: 7
- Oldest active shim added: 2026-07-24
- Next cleanup milestone: remove the interpolator-path shims after 2 minor releases from 2026-07-29