Versioning
53 bites tagged Versioning — interview questions with model answers, and 60-second explainers.
Public API design versus internal API design
Public needs strict versioning, long deprecation, scoped auth like OAuth and API keys, and polished docs; internal can move faster. public APIs are long-lived contracts.
Decommission a depended-on API gracefully
Map consumers and usage, provide a migration target, announce a versioned timeline, decommission only after traffic hits zero. graceful API deprecation with live consumers. shutting off the API with no replacement.
Shared component library versus per-product builds
Shared libraries cut duplication and enforce consistency but add coupling, versioning, and a coordination tax; per-product code is fast but drifts. reuse versus autonomy.
SemVer and the caret vs tilde range operators
MAJOR.MINOR.PATCH signals breaking/feature/fix; caret allows minor and patch updates, tilde allows only patch; use tilde for tighter control. understanding version ranges.
What is a model registry and how does it enable CD?
A registry versions models with metadata, lineage, and stage tags; CD watches stage transitions to trigger deploys. model lifecycle governance. treating it as just blob storage with no versioning, stages, or lineage.
Managing model-as-a-feature pipelines
An upstream embedding model becomes a versioned dependency, creating cascading retraining, version skew, latency stacking, and lineage complexity. dependency chains between models.
Backporting a critical fix to an older major
Backport the fix to the supported older major as a patch, leveraging a documented support window and maintenance branches. Maintenance branch and backport strategy.
Repo and versioning strategy for multi-platform DS
Shared platform-agnostic tokens as source of truth, per-platform packages, independent semver, a monorepo with workspaces. Multi-platform packaging.
Versioned documentation site for a design system
Snapshot docs per release, version-prefixed routes, a version switcher, canonical latest. Versioned docs architecture. Serving only latest docs from a single live source with no historical snapshots or version routing.
Challenges of breaking changes in a design system
Technical (semver, codemods, coexistence) and organizational (comms, migration support, timelines) challenges. managing breaking changes at scale. shipping a breaking major with no migration path or warning.
Versioning and distributing multi-platform tokens
JSON source, Style Dictionary transforms per platform, semantic versioning, and per-platform package registries in CI. full token pipeline plus distribution. ignoring how each platform consumes and updates the packages.
Coexisting major versions during migration
Scoped aliases or namespaced packages, isolated token scopes, and incremental migration. running two breaking versions side by side safely. ignoring duplicated CSS, global token collisions, and bundle bloat.
SemVer bump for a non-breaking bug fix
A backward-compatible bug fix is a PATCH, the third number; major is breaking, minor is new compatible features. Whether you know SemVer's three levels. Calling a fix a minor or bumping major out of caution.
Designing a component deprecation process
Announce with a replacement and timeline, mark deprecated with runtime and lint warnings, provide codemods, then remove only in a major release. Whether you can retire a component without breaking consumers.
Classifying a visually breaking padding change
A layout-shifting padding change is effectively breaking, so major; release with visual diffs, a migration note, and a token or opt-in path. Whether you grasp that visual changes can be breaking.
Releasing a breaking change without forcing upgrades
Ship a major bump, keep the old major published, document migration, automate with Changesets. managing breaking changes under semver. hiding a breaking change in a patch or force-upgrading everyone.
Component Stability Index
A component stability index is a maturity signal that tells consumers how safe a design-system component is to use, from experimental to stable to deprecated, setting expectations about API churn and supporting confident adoption decisions.
Delivering an urgent design system hotfix
Branch from the released tag, apply a minimal fix, add a regression test, ship a patch version, then forward-port to main. hotfix release process. releasing unreleased work from main or skipping the patch and regression test.
Versioning and distributing token updates safely
Publish tokens as a semver package, bump major on breaking changes, deprecate before removing, communicate via changelogs and migration guides. release discipline for shared tokens.
Classifying a Card change under SemVer
Removing a prop is breaking so the whole release is major, document and migrate, and release the highest applicable level. Applying SemVer rules to a mixed change.
Releasing a breaking Button change with SemVer
Bump the major version, write a changelog and migration guide, deprecate before removing where possible, and communicate clearly. Handling breaking changes responsibly under SemVer.
Versioning a design system library
Monolithic versioning is simple and coherent but couples unrelated changes; independent versioning gives granular upgrades but adds tooling complexity. release strategy tradeoffs. claiming one is universally correct.
Roll out a design system color change
Update the token source, rebuild outputs, version and publish, bump the app's dependency, verify contrast and visual regressions. end-to-end change management. editing the hex in components or shipping unversioned.
Protecting object storage from accidental loss
Enable versioning, MFA delete or object lock, cross-region replication, and least-privilege policies. data durability and recovery design.
Get Versioning bites daily.
Five a day, five minutes, offline. With quizzes so it sticks.
Open testing — you’ll join as an early tester.