Embed Widgets: Versioning & Breaking Changes
Semver discipline, loader URL pinning, breaking-change deprecation policy, and how to subscribe to release announcements.
Semantic versioning#
We follow Semantic Versioning. The major / minor / patch contract:
Pre-1.0 caveat
1.0.0 (after the remaining four widget bodies ship — see ), each minor release may carry incremental security hardening that is technically a breaking change. Pin to a specific version in production and watch the changelog. We'll call out any pre-1.0 breaking change prominently in the release notes.Loader URL pinning#
The loader URL is pinned at /v1/ per FR-VER-1:
Within v1, the loader stays backward-compatible. When we ship v2, customers who haven't opted in keep getting the v1 loader. Opt-in to v2 by swapping the URL:
What counts as a breaking change#
A breaking change is anything that could cause customer code that worked on the previous version to stop working:
90-day deprecation period#
After v1.0 ships, breaking changes follow this policy:
- Day 0 — We announce the breaking change in CHANGELOG.md, the release notes, the docs portal, and (optionally) email. The deprecated prop / event keeps working with a runtime console warning.
- Day 0-90 — Customers update their code at their own pace. The deprecated path keeps working.
- Day 90+ — A new major version ships removing the deprecated path. The previous major continues to receive critical security patches for at least 12 months.
Subscribing to release announcements#
Three channels to stay informed:
- CHANGELOG.md in the package — view on GitHub. Watch the repo for notifications on every release.
- npm release notes — visible on the package page at npmjs.com/package/@aforoai/storefront-widgets.
- Aforo changelog at aforo.ai/changelog — major releases also get a write-up here with migration guidance.
Pinning recommendations
Pre-1.0, use an exact version pin (no ^ or ~) so a routine npm install doesn't pick up an unintended minor. Post-1.0, switch to caret (^1.0.0) for automatic non-breaking updates.