diff --git a/docs/index.md b/docs/index.md index 49fa6917d..81953f42e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -13,6 +13,7 @@ in pmaports and the processes around device categorization. .. toctree:: :hidden: + releases approval-rules device-categorization deviceinfo-reference diff --git a/docs/releases.md b/docs/releases.md new file mode 100644 index 000000000..48195e6a6 --- /dev/null +++ b/docs/releases.md @@ -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 +``` diff --git a/docs/releases/backporting.md b/docs/releases/backporting.md new file mode 100644 index 000000000..4303ce1d9 --- /dev/null +++ b/docs/releases/backporting.md @@ -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 git cherry-pick -x ffffffff (insert commit to cherry pick + accordingly) for every patch. The -x will add a (cherry + picked from commit ffffffff) 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. diff --git a/docs/releases/timeline.md b/docs/releases/timeline.md new file mode 100644 index 000000000..f6f87024c --- /dev/null +++ b/docs/releases/timeline.md @@ -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 (2026-05-18 - 2026-05-24) + +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 (2026-05-25 - 2026-05-31) + +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 (2026-06-01 - 2026-06-07) + +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 (2026-06-08 - 2026-06-14) + +Team: +* Write the release blog post. + +Team + Maintainers: +* Celebrate with party hats and get wasted.