Updated TODO (markdown)
[librecmc/open-ath9k-htc-firmware.wiki.git] / VersionPolicy.md
1 ## Why do we need a versioning policy?
2
3 Why? Because it's firmware and it's not tightly coupled to the driver.
4
5 The firmware will be used by various projects for NIC support. It's not just for ath9k_htc - hopefully OpenBSD will adopt it soon; FreeBSD/NetBSD will adopt it as soon as there's a driver available.
6
7 Since some downstream projects may wish to fork the github repository and do some of their own local development, each major and minor release will be a branch.
8
9 ## Ok, what's the policy?
10
11 The policy is thus:
12
13 1. No non-backwards compatible changes will occur on a major branch;
14 2. Minor version numbers may introduce new features but they must be optional and default to the previous firmware behaviour;
15 3. Major branch numbers may introduce non-backwards-compatible features.
16
17 So:
18
19 * Everything along the 1.x branch will be backwards compatible.
20 * There'll be a branch laid down for each minor revision released (eg 1.3, 1.4, 1.5).
21 * There'll be a tag laid down for each release along the minor revision (eg 1.3.1, 1.3.2, 1.3.3, etc.) which will match up with the binary firmware image that is released for public consumption.
22 * 1.3, 1.4, 1.5, etc can introduce new features, but they must be optional and default to the previous behaviour.
23
24 Hopefully what will be pushed into linux-firmware.git will be the latest of each major release version. Ie, there will only be one "current" firmware release in linux-firmware.git for 1.x, 2.x, 3.x, etc.