Documentation: Add template for deprecation notices
Change-Id: Ia2cc4f799804c7d56db572823246c487cd19a726 Signed-off-by: Patrick Georgi <patrick@coreboot.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/59677 Reviewed-by: Felix Singer <felixsinger@posteo.net> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
7311b4e52c
commit
df808f3619
|
@ -23,6 +23,11 @@ names etc.
|
||||||
|
|
||||||
* [checklist](checklist.md)
|
* [checklist](checklist.md)
|
||||||
|
|
||||||
|
For release related communications consider using a template so everything
|
||||||
|
important is taken care of.
|
||||||
|
|
||||||
|
* [templates](templates.md)
|
||||||
|
|
||||||
Upcoming release
|
Upcoming release
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
# Communication templates related to release management
|
||||||
|
|
||||||
|
## Deprecation notices
|
||||||
|
|
||||||
|
Deprecation notices are part of release notes to act as a warning: at some
|
||||||
|
point in the future some part of coreboot gets removed. That point must be
|
||||||
|
at least 6 months after the release of the notice and it must be right after
|
||||||
|
some release: That is, the specified release must still contain the part in
|
||||||
|
question while one git commit later it might be removed.
|
||||||
|
|
||||||
|
The usual reason is progress: Infrastructure module X has been replaced by
|
||||||
|
infrastructure module X+1. Removing X helps keep the sources manageable
|
||||||
|
and likely opens opportunities to improve the codebase even more.
|
||||||
|
Sometimes everything using some module has been converted to its successor
|
||||||
|
already and it's natural for such modules to be removed. Even then it might
|
||||||
|
be useful to add an entry to the release notes to make everybody aware of
|
||||||
|
such a change, for maintainers of incomplete boards that they might keep in
|
||||||
|
their local trees and also to give credit to the developers of that change.
|
||||||
|
|
||||||
|
However this template isn't about such cases. Sometimes the tree contains
|
||||||
|
mainboards that rely on X and can't be easily migrated to X+1, often because
|
||||||
|
no active developer has access to these mainboards, and that is where this
|
||||||
|
type of deprecation notice comes in:
|
||||||
|
|
||||||
|
A deprecation notice shall outline what is being removed, when it is planned
|
||||||
|
for removal (always directly _after_ a future release so it remains clear when
|
||||||
|
something is part of coreboot and when it isn't anymore) and which devices
|
||||||
|
would be affected at the time of writing. Since past deprecation notices have
|
||||||
|
been read as "we plan to remove mainboards A, B, and C", sparking outrage
|
||||||
|
with the devoted users of A, B, or C, some care is necessary to make clear
|
||||||
|
which parts are slated for removal and which parts are merely consequences
|
||||||
|
if no action is taken. Or put differently: It should be obvious that besides
|
||||||
|
the deprecation plan, there is a call to action to save a couple of devices
|
||||||
|
from becoming officially unsupported.
|
||||||
|
|
||||||
|
As such, consider the following template when announcing a deprecation:
|
||||||
|
|
||||||
|
### The Thing to remove
|
||||||
|
|
||||||
|
A short description of the Thing slated for removal.
|
||||||
|
|
||||||
|
A short rationale why it's being removed (e.g. new and better Thing exists
|
||||||
|
in parallel; new Thing already demonstrated to work in this many releases;
|
||||||
|
removing Thing enables this or that improvement)
|
||||||
|
|
||||||
|
Timeline: Announced here, Thing will be removed right after the release X
|
||||||
|
months out (where X >= 6)
|
||||||
|
|
||||||
|
#### Call to action
|
||||||
|
|
||||||
|
Removing Thing requires work on a number of (boards, chipsets, …) that didn't
|
||||||
|
make the switch yet. The work approximately looks like this: (e.g. pointers to
|
||||||
|
commits where a board has been successfully migrated from Thing to new Thing).
|
||||||
|
|
||||||
|
Working on migrating away from Thing involves (hardware components, coreboot
|
||||||
|
systems, …) 1, 2, and 3. It's difficult to do on the remaining devices because
|
||||||
|
...
|
||||||
|
|
||||||
|
Parts of the tree that need work to become independent of Thing.
|
||||||
|
- chipset A
|
||||||
|
- board A1
|
||||||
|
- board A2
|
||||||
|
- chipset B
|
||||||
|
- board B1
|
||||||
|
|
||||||
|
We prefer to move them along, but if we don't see any maintenance in our tree
|
||||||
|
we'll have to assume that there's no more interest in these platforms. As a
|
||||||
|
consequence these devices either have to work without Thing by the removal
|
||||||
|
date or they will be removed together with Thing. (side note: these removals
|
||||||
|
aren't the law, so if there's work in progress to move boards off X and a
|
||||||
|
roadmap that makes it probable to succeed, just not within the announced
|
||||||
|
deprecation timeline, we can still decide to postpone the actual removal by
|
||||||
|
one release. This needn't be put in the release notes themselves though or
|
||||||
|
it might encourage people to look for simple escape hatches.)
|
||||||
|
|
||||||
|
(If there are developers offering to write patches: )
|
||||||
|
There are developers interested in helping move these forward but they can't
|
||||||
|
test any changes for lack of equipment. If you have an affected device and
|
||||||
|
can run tests on it, please reach out to developers α, β, and γ.
|
||||||
|
|
||||||
|
(Otherwise maybe something more generic like this: )
|
||||||
|
If you want to take this on, the coreboot developer community will try to
|
||||||
|
help you: Reach out through one of our [forums](../community/forums.md).
|
Loading…
Reference in New Issue