Versioning¶
StyleBro.Analyzers and StyleBro.Migrate share one version number. What changed in each release: CHANGELOG.md (the same text as the GitHub Releases).
Before 1.0¶
The current releases are alphas (0.x.y-alpha.n). Anything may change between them: rules, settings, defaults and
what a fix writes. Read the release notes before upgrading.
From 1.0¶
| Release | May | Never |
|---|---|---|
Patch (1.0.x) |
fix bugs, including false positives and wrong fixes; make a rule report less | make a rule report more |
Minor (1.x) |
add rules and settings | turn a new rule on by itself (see New rules) |
Major (x.0) |
change defaults, remove settings, change what existing rules fix |
Settings and rule ids¶
stylebro_*keys are kept. A renamed key keeps working under its old name, with a deprecation note, for at least one minor release.- Rule ids (
BROxxxx) are never reused, also when a rule is removed.
New rules¶
Rules added after 1.0 stay off until you opt in through a preset version, like .NET's AnalysisLevel:
<StyleBroPreset>1.1</StyleBroPreset> <!-- the rules up to 1.1 -->
<StyleBroPreset>latest</StyleBroPreset> <!-- every rule in the package -->
So upgrading the package never breaks a build by itself: you raise the preset version when you're ready for the new rules (each release's notes list them).
- Unset means the package's major version:
1.0in all of 1.x. stylebro-migrate init --writepins the newest version it knows inDirectory.Build.props, so a new setup gets every rule at once.- With
<StyleBroPreset>none</StyleBroPreset>(also afterstylebro-migrate --write), rules added after 1.0 are off too: they are off by default, and only the preset turns them on. To turn on a single one,dotnet_diagnostic.BROxxxx.severity = warningin.editorconfig. - A version newer than the package warns (STYLEBRO002) and uses the package's newest; anything else fails the build (STYLEBRO001).
Before 1.0 every rule counts as a 1.0 rule: 1.0, latest and unset are the same.
When 1.0 ships¶
After two clean trials in a row: first runs on new kinds of repositories with no high-severity bugs.