Versioning and support policy

This policy says what each release of the TomTom Maps SDK for JavaScript can change, how much notice you get before an API goes away, and how long each version gets fixes. It covers @tomtom-org/maps-sdk from 1.0.0. The release notes show the status and dates of each version.

Semantic versioning

The SDK follows semantic versioning. A version reads MAJOR.MINOR.PATCH:

A release candidate, such as 1.0.0-rc.3, comes before its major. One candidate can still break code that ran on the one before, so this policy applies from the stable release.

What the public API is

The public API is what the API reference lists under the three entry points, @tomtom-org/maps-sdk/core, /services and /map. It also covers the module knob ids, the error codes, the module events and the identifiers of the AI coding skills.

These aren't part of it, so they can change in any release:

What counts as a breaking change

A change is breaking when code that compiled and ran on one release stops compiling, or behaves differently, on the next, outside the changes that aren't breaking. These changes ship only in a major release:

What isn't breaking

A minor release can add exports, optional parameters and optional properties. It can also add values to a list the SDK returns, such as a new error code, section type, POI category or knob kind. A switch with no default branch, or a Record keyed by every value of such a list, can then stop compiling: give them a default branch for values you don't know.

A minor release can also refine how the map draws by default: the default values of the modules' colour, size and opacity options, and the Orbis map style version within its major, or below Orbis 1.0 within its minor. The settings you pass keep applying, apart from edits by layer id.

A patch release can fix the SDK so that it does what its documentation says, even if your code relied on the old behaviour.

Peer dependencies

The SDK doesn't bundle its five peer dependencies, maplibre-gl, zod, @turf/turf, lodash-es and culori. Your package manager installs them next to the SDK. Project setup lists the major each one needs.

When a peer publishes a security fix within the range the SDK accepts, update that peer in your project. You don't need a new SDK release. If the fix ships only in a new major of the peer, the rule for a new peer major applies: the next SDK minor accepts it if the SDK can support both majors at once, and otherwise the next SDK major does. Either way, the release notes link the advisory and any workaround as soon as TomTom knows of it.

Map style version

Each SDK release loads one fixed version of the Orbis map styles. A patch release never changes it. Below Orbis 1.0, a new minor of the styles counts as a new major.

Layer ids, their expressions and which layers exist can change with any style update. An edit by layer id, through styling.layers or map.mapLibreMap, can therefore match nothing after an SDK minor release. Prefer a knob, which the SDK re-verifies on every style update.

Deprecations

Before an API goes away, TomTom deprecates it in a minor release, wherever the old and the new API can exist side by side. This follows the TomTom deprecation policy.

A deprecated API keeps working for at least three months and at least one minor release after the release that deprecates it. It goes away only in a major release.

A security fix or a legal requirement can shorten the notice. The release notes then say why.

Support window

Each major has a status, which the release notes show with its dates:

Status Which versions What they get
Supported The latest major New features and all bug and security fixes
Deprecated The previous major, for 12 months after the next major ships Fixes for security issues and critical bugs only
End of life Any major after its 12 months No further releases

Releases before 1.0.0 and plugins

The 0.x releases, the 1.0.0 release candidates and the plugins before their own 1.0.0 are in Public Preview, which the TomTom deprecation policy doesn't cover. A plugin whose data needs an entitlement on your API key, such as Landmarks 3D, is in Private Preview instead, under the same rules:

Each plugin declares the SDK versions it runs with as a peer range on @tomtom-org/maps-sdk. From SDK 1.0.0, that range covers every 1.x release from the first one the plugin needs, so an SDK minor or patch release doesn't need a new plugin release. Upgrade the plugins along with the SDK.

Related pages