Update the contributing guide
[linux-libre-firmware.git] / CONTRIBUTING
1 Contributing to linux-libre-firmware
2 ====================================
3
4 Basic Information
5 -----------------
6
7 To report a bug or submit changes to this repository please send a
8 message to the GNU Linux-libre mailing list:
9 <https://www.fsfla.org/cgi-bin/mailman/listinfo/linux-libre>
10
11 -   Changes should be in the form of a patch generated by
12     `git format-patch`.
13
14 -   A patch should address one, and only one, concern. For example, a
15     bug fix.
16
17 -   Individual patches should be as small as possible, consisting of
18     atomic changes. A single patch should neither be in a partial
19     state, nor should it contain multiple unrelated changes that could
20     be split into separate patches.
21
22 -   Don't add anything that can be regenerated from other things that
23     were added.
24
25 -   When adding firmware your patch must update the WHENCE file to
26     clearly state the license of the firmware and where it came from.
27
28 -   Your patch must also update the root level Makefile to build the
29     firmware, as appropriate.
30
31 Development & Release Process
32 -----------------------------
33
34 All development happens on the master branch. Releases are branched
35 out from master in git.
36
37 The version number is incremented by 0.1 with every release. This
38 increment happens regardless of the changes made. Anything can change
39 between versions.
40
41 Every change, no matter how well-intentioned, introduces the potential
42 for unexpected problems. For this reason changes on a release branch
43 are more stringent, as opposed to "anything can change" philosophy of
44 the master branch.
45
46 There are only two types of changes that can be made to a release
47 branch:
48
49 -   To fix a security vulnerability (a "security vulnerability" is
50     defined as something for which a CVE ID exists.)
51
52 -   To fix a critical software bug (a "critical software bug" is
53     defined as a build system or firmware failure.)
54
55 Updates for a released version involve adding a third point to the
56 version number: 1.2.1, etc. and this third point is incremented by 1
57 with every release (1.2.2, 1.2.3, etc.)
58
59 Licensing
60 ---------
61
62 You can redistribute it and/or modify this file under the terms of the
63 GNU General Public License as published by the Free Software
64 Foundation, either version 3 of the License, or (at your option) any
65 later version.