docs: add release documentation

Move and update release documentation from these wiki pages to pmaports
docs:
* https://wiki.postmarketos.org/wiki/Releases
* https://wiki.postmarketos.org/wiki/Creating_a_release_branch#Timeline

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8486>
This commit is contained in:
Oliver Smith 2026-05-04 23:24:32 +02:00 committed by The Friendly Meow (merge) Bot
parent c614719e7a
commit c52e7b1556
No known key found for this signature in database
4 changed files with 160 additions and 0 deletions

View file

@ -13,6 +13,7 @@ in pmaports and the processes around device categorization.
.. toctree::
:hidden:
releases
approval-rules
device-categorization
deviceinfo-reference

73
docs/releases.md Normal file
View file

@ -0,0 +1,73 @@
# Releases
postmarketOS can be installed from either edge, or from a stable release. New
stable releases are created every six months in June and December (one month
after [Alpine's releases](https://alpinelinux.org/releases/)).
**edge** is a rolling release where all packages are kept at their newest
version. This offers faster access to software at the expense of less user
testing. In practice, issues on edge are relatively uncommon, and are
documented in the [edge blog](https://postmarketos.org/edge/) when found.
**stable releases** are a snapshot of edge, in which updates to packages only
contain bug fixes (with few exceptions). This means new features usually won't
appear, but you will get a more a more tried and tested, solid experience.
## Active and Planned
| Release | Announcement | EOL | Title | Branch pmaports | Branch aports | Milestone |
|:---------:|:------------------:|:-----------:|:---------------------------------:|:----------------:|:--------------:|:----------:|
| edge | - | - | Edge | main | master | - |
| v25.12 | [2025-12-23][2512] | 2026-07-31 | The One Where The Saga Continues | v25.12 | 3.23-stable | [#31][m31] |
| v26.06 | 2026-06-xx | 2027-01-31 | *(upcoming)* | v26.06 | 3.24-stable | [#33][m33] |
## End of Life
| Release | Announcement | Title | Branch pmaports | Branch aports | Milestone |
|:--------:|:------------------:|:---------------------------------------------------------:|:----------------:|:--------------:|:-----------:|
| v25.06 | [2025-06-22][2506] | the one with systemd | v25.06 | 3.22-stable | [#29][m29] |
| v24.12 | [2024-12-23][2412] | The One With Androids & Cameras, But It's Mainline Linux | v24.12 | 3.21-stable | [#21][m21] |
| v24.06 | [2024-06-16][2406] | The One With Over 250 Devices | v24.06 | 3.20-stable | [#19][m19] |
| v23.12 | [2023-12-18][2312] | The One We Asked The Community To Name | v23.12 | 3.19-stable | [#18][m18] |
| v23.06 | [2023-06-07][2306] | From the GNOME Mobile 2023 Hackfest | v23.06 | 3.18-stable | [#16][m16] |
| v22.12 | [2022-12-18][2212] | The One With Napali Calling | v22.12 | 3.17-stable | [#14][m14] |
| v22.06 | [2022-06-12][2206] | The One Where We Started Using Release Titles | v22.06 | 3.16-stable | [#12][m12] |
| v21.12 | [2021-12-29][2112] | - | v21.12 | 3.15-stable | [#9][m9] |
| v21.06 | [2021-07-04][2106] | - | v21.06 | 3.14-stable | [#11][m11] |
| v21.03 | [2021-03-31][2103] | Beta 2 | v21.03 | 3.13-stable | [#8][m8] |
| v20.05 | [2020-05-31][2005] | Beta 1 | v20.05 | 3.12-stable | [#2][m2] |
[2512]: https://postmarketos.org/blog/2025/12/23/v25.12-release/
[2506]: https://postmarketos.org/blog/2025/06/22/v25.06-release/
[2412]: https://postmarketos.org/blog/2024/12/23/v24.12-release/
[2406]: https://postmarketos.org/blog/2024/06/16/v24.06-release/
[2312]: https://postmarketos.org/blog/2023/12/18/v23.12-release/
[2306]: https://postmarketos.org/blog/2023/06/07/v23.06-release/
[2212]: https://postmarketos.org/blog/2022/12/18/v22.12-release/
[2206]: https://postmarketos.org/blog/2022/06/12/v22.06-release/
[2112]: https://postmarketos.org/blog/2021/12/29/v21.12-release/
[2106]: https://postmarketos.org/blog/2021/07/04/v21.06-release/
[2103]: https://postmarketos.org/blog/2021/03/31/v21.03-release/
[2005]: https://postmarketos.org/blog/2020/05/31/three-years/#stable-release-channel
[m33]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/33
[m31]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/31
[m29]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/29
[m21]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/21
[m19]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/19
[m18]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/18
[m16]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/16
[m14]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/14
[m12]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/12
[m11]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/11
[m9]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/9
[m8]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/8
[m2]: https://gitlab.postmarketos.org/groups/postmarketOS/-/milestones/2
```{eval-rst}
.. toctree::
:hidden:
releases/timeline
releases/backporting
```

View file

@ -0,0 +1,31 @@
# Backporting from edge
## Workflow
* Merge request authors or other contributors may add a `backport-to-vYY.MM`
label to pmaports MRs that shall be backported.
* After the MR is merged, postmarketOS team members can then backport the
patches to the given stable branch. If you are not a team member and need
somebody to do the backport, you can ask in
[postmarketos-devel](https://wiki.postmarketos.org/wiki/Matrix_and_IRC).
* Use <code>git cherry-pick -x ffffffff</code> (insert commit to cherry pick
accordingly) for every patch. The <code>-x</code> will add a <code>(cherry
picked from commit ffffffff)</code> line to the commit message.
* If you really know what you are doing and the change is trivial or the stable
branch is not released yet, then you can directly push the backported patch
to the stable branch. Otherwise you *must* make a merge request against the
stable branch with the backport. We don't want stable branches to break!
* Add a comment to the original merge request where the backport can be found
(with a link to the merge request or backported commit hash).
## What to look out for
* Cherry picked commits shall not be squashed, then it's hard to understand
which commits were already picked and which were not.
* Avoid cherry-picking multiple patches that touch the same pmaports in the
wrong order.

55
docs/releases/timeline.md Normal file
View file

@ -0,0 +1,55 @@
# Release Timeline
The calendar week (CW) numbers in this document get updated before the next
release cycle starts. Get the current CW with `date +%V`. During the release
cycle we try to follow this plan closely, but it can happen that we run
over the planned CWs.
## Pre-Build
CW 21 <small>(2026-05-18 - 2026-05-24)</small>
Release branches are not yet in feature freeze, but we should avoid making
major changes to main.
Team:
* Create the [infrastructure
issue](https://gitlab.postmarketos.org/postmarketOS/pmaports/-/issues/new?description_template=Release_Infrastructure)
(which has more detailed tasks for the team for each phase, the document here
just gives a rough overview).
* Create the release branch in pmaports.
* Start building of binary packages early, so we can get through it for sure.
## Branch
CW 22 <small>(2026-05-25 - 2026-05-31)</small>
The release branch is in **feature freeze**:
We can cherry pick fixes where it makes sense, but can't add features to the
release branch anymore (exceptions can be made if there is a good reason).
Team:
* Rebase the release branch on main once
* Build binary packages and images (configure BPO for that)
## Test
CW 23 <small>(2026-06-01 - 2026-06-07)</small>
Maintainers:
* Test your devices and UIs (test yourself if you can and/or coordinate with
the [Testing Team](https://wiki.postmarketos.org/wiki/Testing_Team))
* Report back in the issue ([template for devices](https://wiki.postmarketos.org/wiki/Kernel_upgrade_testing#Stable_release_testing))
* Fix stuff that is broken by creating MRs against pmaports main and assigning
the `backport-to-YY.MM` label
## Release
CW 24 <small>(2026-06-08 - 2026-06-14)</small>
Team:
* Write the release blog post.
Team + Maintainers:
* Celebrate with party hats and get wasted.