Part 6 · Agents & Protocol IP · Intermediate
Versioning and Delivery: Semantic Releases for VIP Consumers
How to version VIP changes, communicate compatibility impact, package release artifacts, and support safe upgrades across dependent projects.
Why semantic versioning matters for VIP
Reusable VIP often serves many programs simultaneously. Without disciplined versioning, upgrades become risky and teams pin old versions indefinitely.
Semantic versioning gives consumers clear signals: patch for fixes, minor for backward-compatible features, major for breaking changes.
[VIP][SEMVER] policy
MAJOR:
breaking API/behavior changes
required migration actions
MINOR:
backward-compatible feature additions
optional new knobs/capabilities
PATCH:
bug fixes without API break
no migration required[AGT] examples
PATCH:
fix monitor decode for rare legal burst
MINOR:
add optional coverage group with default disabled
MAJOR:
rename transaction enum values or remove cfg fieldsTie every release note entry to compatibility category.
Avoid hidden breaking changes in minor or patch releases.
Use deprecation windows to reduce major-version churn.
Release artifact bundle
Delivery should include source plus evidence and guidance. Consumers need immediate confidence and clear upgrade instructions.
[VIP] release bundle contents
source:
vip package files and examples
metadata:
version tag, compatibility range, build hash
docs:
changelog, migration notes, quickstart
evidence:
qualification test summary
simulator/version compatibility matrix
known limitations list[CI] release pipeline sketch
1) run lint/static checks
2) run VIP qualification suite
3) run backward-compat suite
4) generate release notes from tagged changes
5) publish artifacts and checksums
6) notify consuming teams[DOC] changelog quality bar
each entry includes:
- issue id
- scope (driver/monitor/cfg/docs/tests)
- compatibility impact
- recommended consumer actionDeliver source, docs, and qualification evidence together.
Automate release bundle generation in CI to reduce omissions.
Make changelog entries actionable for integration teams.
Deprecation and migration strategy
Breaking consumers abruptly erodes trust. Deprecate features over at least one minor cycle with clear warnings and migration examples.
[VIP] deprecation lifecycle
phase 1 (announce):
mark field/API deprecated in docs
emit warning with replacement guidance
phase 2 (transition):
support old and new APIs
provide translation helpers
phase 3 (major release):
remove deprecated API
include strict migration checklistif (cfg.legacy_timeout_field != 0) begin
`uvm_warning("DEPRECATED",
"legacy_timeout_field is deprecated; use timeout_cycles")
cfg.timeout_cycles = cfg.legacy_timeout_field;
end[AGT][DOC] migration note template
before:
cfg.legacy_timeout_field = 100
after:
cfg.timeout_cycles = 100
behavioral changes:
none
validation:
run vip_timeout_smoke and compare logsWarn early and provide one-to-one replacement guidance.
Keep temporary compatibility shims explicit and time-bounded.
Use major releases for actual removals only after transition windows.
Consumer upgrade workflow
Support upgrades with a documented workflow: compatibility assessment, branch trial, smoke validation, and staged rollout.
[SOC] recommended upgrade flow
1) read release notes and compatibility impact
2) map changed VIP APIs against local wrappers
3) run local smoke tests with new version
4) run protocol regression subset
5) roll into nightly full regression
6) tag internal adoption baseline[VIP] support matrix example
VIP version simulators tested UVM versions
-------------------------------------------------------------
2.3.1 vcs-2025.12, xrun-24.09 UVM-1.2, IEEE-2020
2.4.0 vcs-2025.12, xrun-24.09 UVM-1.2, IEEE-2020
3.0.0 vcs-2026.03, xrun-25.03 IEEE-2020 only[CI][DELIVERY] upgrade confidence checks
- no new fatal/warning taxonomy surprises
- transaction schema backward compatibility validated
- active/passive behavior parity preserved
- protocol compliance score unchanged or improvedKey takeaways
Semantic versioning gives consumers predictable upgrade risk signals.
Release bundles should include evidence and migration guidance, not just code.
Deprecation windows preserve trust and reduce forced forks.
Documented upgrade workflows help projects adopt new VIP versions safely.
Common pitfalls
Sneaking breaking behavior into patch or minor releases.
Publishing versions without qualification evidence.
Removing deprecated fields before consumers can migrate.
Omitting simulator/UVM compatibility information from releases.