A four-field alternative to Semantic Versioning: Breaking . Feature . Internal . Patch.
Where SemVer's minor version conflates "a feature was added" with "internals were reworked, nothing user-facing changed," and its patch version conflates "a bug was fixed" with "unannounced internal churn," BFIP gives each of those four kinds of change its own field. Reading a version number should tell you what you're getting without reading the changelog.
This repository contains the specification and the site that renders it: github.com/UniquePython/bfip-versioning. Open index.html directly, or serve the repo root with any static file server. Once GitHub Pages is enabled, it will be live at https://uniquepython.github.io/bfip-versioning/.
This project is versioned under its own rules — see VERSION and CHANGELOG.md. It is currently in breaking version zero, meaning nothing about the spec's structure or rule numbering is a stability promise yet. See the spec's own FAQ ("How do I know when to release 1.0.0.0?") for what changes that.
index.html the entire site — spec, interactive breakdown tool, FAQ
VERSION this repo's current BFIP version, plain text
CHANGELOG.md what changed at each version
LICENSE CC BY 3.0
No build step. Open index.html in a browser, or:
python3 -m http.server 8000Issues and PRs are welcome. Since the spec is currently in 0.f.i.p, structural suggestions (renumbering rules, reshaping fields, tightening definitions) are in scope, not just wording fixes. Once 1.0.0.0 ships, changes to the declared public API (see Rule 5 in the spec) will require a proper B/F/I/P bump under the spec's own rules.
BFIP Versioning was created by Ananyo Bhattacharya.