Versioning
What counts as a breaking change in this package, so a reader and an implementer know what the 1.x line promises.
On this page
Rules#
The package follows Semantic Versioning 2.0.0. The load-bearing contract is two key sets: the map WindDebugResolver.resolve returns and the map WindPerfResolver.stats returns.
| Change | Bump |
|---|---|
| A new key in a returned map | minor |
| A new registry slot or static member | minor |
| Renaming or removing a key | major |
A new method on WindDebugResolver or WindPerfResolver |
major |
A new method is breaking because it breaks every implementer, the test fakes included. That is why the perf counters arrived as a second contract in 1.1.0 and not as a second method on the first.
For Readers#
Read the keys you need and ignore the rest. A map that grows a key in a minor release must not break your tool.
For Implementers#
Return every key you document, and return const {} from resolve for an element that is not yours. Pin the dependency with a caret (^1.3.0): a minor release adds keys and never removes one.
Related Documentation#
- WindDebugResolver: the debug key set.
- WindPerfResolver: the counter key set.