This document describes how versions are defined and incremented for the IoT Integrity Verification Protocol (IoTIVP), including both:
- IoTIVP-Core (human-readable integrity format)
- IoTIVP-Binary (byte-level encoding format)
IoTIVP follows Semantic Versioning (SemVer-inspired) with adaptations for protocol specifications.
MAJOR.MINOR.PATCH
Breaking or incompatible changes:
- Changing field names
- Modifying hash order
- Changing binary layout
- Removing fields
- New modes that invalidate old parsers
Backwards-compatible enhancements:
- New optional fields
- New profiles
- Additional hash algorithms
- New recommended validation rules
Trivial fixes:
- Typos
- Documentation improvements
- Clarifications
Any change that disrupts existing implementations MUST increment MAJOR.
Adding new profiles does NOT break existing devices → MINOR.
New algorithms → MINOR
Changing defaults → MAJOR
Example:
- IoTIVP-Core:
1.5.0 - IoTIVP-Binary:
1.0.0
They evolve at different speeds but remain interoperable.
This is a separate MAJOR feature and will begin at:
IoTIVP-S 1.0
| Layer | Version | Status |
|---|---|---|
| IoTIVP-Core | 1.5.0 | Draft |
| IoTIVP-Binary | 1.0.0 | Stable |
Receivers SHOULD:
- Ignore unknown optional fields
- Accept future MINOR fields when possible
- Reject only when required fields or hashes fail
Transmitters SHOULD:
- Not rely on receivers understanding future fields
Any change that could confuse a parser → MAJOR bump.
PD2KC.ai — Assume nothing. Verify everything.