Azure / Azure/azure-verified-modules-managed-files
avm-tf-lifecycle: feature updates bump minor per SNFR17, not patch
- Dominant language
- PowerShell
- Stars
- 0
- Forks
- 2
- Avg merge
- 14h 35m
- Merged PRs (30d)
- 27
Description
## Problem
`terraform/root/.github/skills/avm-tf-lifecycle/SKILL.md` gives agents the wrong segment for feature releases. Under "The 0.x.y versioning rule", the practical implications read:
> - Breaking changes bump the **minor** segment (`0.1.0` -> `0.2.0`), not the major segment.
> - Bug fixes and non-breaking features bump the **patch** segment (`0.1.0` -> `0.1.1`).
[SNFR17](https://azure.github.io/Azure-Verified-Modules/spec/SNFR17) puts feature updates under minor, leaving patch for bug fixes alone:
> - `Y` Minor version MUST be bumped when introducing breaking changes (which would normally bump Major after `1.0.0` release) or feature updates (same as it will be after `1.0.0` release).
> - `Z` Patch version MUST be bumped when introducing non-breaking, backward compatible bug fixes (same as it will be after `1.0.0` release).
So a module adding a new variable non-breakingly should release `0.1.0` -> `0.2.0`, while the skill says `0.1.0` -> `0.1.1`.
## Impact
This file syncs into every AVM Terraform module repo, so the incorrect rule is sitting in all of them. Because it is a skill rather than prose documentation, an agent reads it as authoritative when choosing a release version and has no particular reason to cross-check the spec. I hit exactly that while cutting a release, and caught it only by reading SNFR17 directly.
The failure is quiet. A patch release carrying a new feature passes CI and looks unremarkable; it only misleads consumers who read semver to decide whether an upgrade is routine.
## Suggested fix
Fold feature updates into the minor bullet and leave patch for bug fixes:
```markdown
- Breaking changes **and** feature updates bump the **minor** segment (`0.1.0` -> `0.2.0`), not the major segment.
- Non-breaking, backward-compatible bug fixes bump the **patch** segment (`0.1.0` -> `0.1.1`).
```
The section's `Source:` line cites `contributing/process.md` and SNFR12, which establish the `0.x.y` constraint and the support window but say nothing about which segment moves. Citing SNFR17 there as well, and SNFR18 for breaking changes, would give the rule a source that actually states it. That missing citation looks like the reason the drift went unnoticed.
_Drafted by GPT-5.6 Sol._
Contributor guide
Research direction
Open terraform/root/.github/skills/avm-tf-lifecycle/SKILL.md and read the “The 0.x.y versioning rule” section and its Source line. Compare the wording with SNFR17 and the cited SNFR18 context, then update the release guidance and sources so feature updates use the minor segment and bug fixes use the patch segment. Done means the skill no longer directs agents to publish non-breaking features as patch releases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- markdown
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 92/100