From 178469fbc87dff37b062bdb608f8ca5e94d81a77 Mon Sep 17 00:00:00 2001 From: Cogan <79615344+cogan17@users.noreply.github.com> Date: Sat, 31 Oct 2026 11:22:46 +0000 Subject: [PATCH] feat(builder): Kernel Sublevel dikosongkan = semua sublevel Owner 31 Okt 2026: "Jika dikosongkan maka semua sublevel muncul". Isian Kernel Sublevel yang kosong kini sama dengan `semua` (dulu diam-diam menjadi `lts`). Bawaan form tetap `lts`. Pre-Release/Release menolak isian kosong, seperti `semua`, karena butuh satu build. --- .github/workflows/build-kernel.yml | 4 ++-- README.en.md | 2 +- README.md | 2 +- kernel/resolve.py | 7 ++++--- tests/test_resolve.py | 5 +++++ 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-kernel.yml b/.github/workflows/build-kernel.yml index 1367825..2bccb67 100644 --- a/.github/workflows/build-kernel.yml +++ b/.github/workflows/build-kernel.yml @@ -19,7 +19,7 @@ on: - "Pre-Release" - "Release" kernel_sublevel: - description: "Sublevel ACK: lts (terbaru / newest), angka (176), beberapa (162,172) atau semua (bukti compile / compile proof)" + description: "Sublevel ACK: lts (terbaru / newest), angka (176), beberapa (162,172), atau kosongkan / leave empty = semua sublevel / every sublevel (bukti compile / compile proof)" type: string default: "lts" brand_name: @@ -105,7 +105,7 @@ jobs: || { echo "::error::Build Time: N atau mis. Thu Jan 1 00:00:00 UTC 2026"; exit 1; } fi if [ "$RELEASE_TYPE" != "CI" ]; then - [[ "$ROOT_FLAVOR" != *"&"* && "${SUBLEVEL,,}" != "semua" && "$SUBLEVEL" != *,* ]] \ + [[ "$ROOT_FLAVOR" != *"&"* && -n "${SUBLEVEL// /}" && "${SUBLEVEL,,}" != *semua* && "$SUBLEVEL" != *,* ]] \ || { echo "::error::$RELEASE_TYPE: satu root dan satu sublevel / one root and one sublevel"; exit 1; } [ "$GITHUB_REF_NAME" = "$DEFAULT_BRANCH" ] \ || { echo "::error::$RELEASE_TYPE hanya dari / only from $DEFAULT_BRANCH"; exit 1; } diff --git a/README.en.md b/README.en.md index 56b1c30..23a140b 100644 --- a/README.en.md +++ b/README.en.md @@ -72,7 +72,7 @@
🧩 Supported sublevels -The builder uses the official ACK `android14-6.1` releases since the phone's stock kernel; `lts` = the newest. The **Catat sublevel** (record sublevels) workflow button records the latest build in this table (✅ passed the build and the KMI gate, ⏳ waiting for an upstream update); it neither checks nor builds. +The builder uses the official ACK `android14-6.1` releases since the phone's stock kernel; `lts` = the newest; an empty Kernel Sublevel = every sublevel. The **Catat sublevel** (record sublevels) workflow button records the latest build in this table (✅ passed the build and the KMI gate, ⏳ waiting for an upstream update); it neither checks nor builds. The **Cek pembaruan** (check for updates) button is the only check, and it builds nothing: the newest version of every component (ACK, KernelSU Next, BakaSU, simonpunk's SUSFS and sidex15's SUSFS module, NoMount, Baseband Guard, AnyKernel3, Neutron clang, Unicode fix) against the last build, with the dates of the stable and CI versions, what is new and fixed, and whom to wait for when it cannot be built yet. When something is newer, the summary suggests running the Builder. diff --git a/README.md b/README.md index e56aeef..9417087 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@
🧩 Sublevel yang didukung -Builder memakai rilis ACK resmi `android14-6.1` sejak kernel bawaan HP; `lts` = yang terbaru. Tombol workflow **Catat sublevel** mencatat hasil build terakhir di tabel ini (✅ lolos build dan gate KMI, ⏳ menunggu pembaruan hulu); ia tidak mengecek dan tidak membangun. +Builder memakai rilis ACK resmi `android14-6.1` sejak kernel bawaan HP; `lts` = yang terbaru; isian Kernel Sublevel dikosongkan = semua sublevel. Tombol workflow **Catat sublevel** mencatat hasil build terakhir di tabel ini (✅ lolos build dan gate KMI, ⏳ menunggu pembaruan hulu); ia tidak mengecek dan tidak membangun. Tombol **Cek pembaruan** satu-satunya yang mengecek, dan tidak membangun: versi terbaru setiap komponen (ACK, KernelSU Next, BakaSU, SUSFS simonpunk dan modul SUSFS sidex15, NoMount, Baseband Guard, AnyKernel3, Neutron clang, Unicode fix) dibandingkan dengan build terakhir, dengan tanggal rilis stabil dan CI, yang baru dan perbaikannya, dan siapa yang ditunggu bila belum bisa dibangun. Bila ada yang baru, ringkasannya menyarankan menjalankan Builder. diff --git a/kernel/resolve.py b/kernel/resolve.py index c27caef..4bd3a51 100755 --- a/kernel/resolve.py +++ b/kernel/resolve.py @@ -14,7 +14,7 @@ --unicode (the Unicode fix box, off by default) also takes the newest commit of WildKernel's kernel_patches for its unicode bypass fix; without it nothing of WildKernel is read. -Usage: resolve.py --root KSUN|BSU [--sublevel lts|N|N,M|semua] [--unicode] --out FILE.json +Usage: resolve.py --root KSUN|BSU [--sublevel lts|N|N,M|semua|""] [--unicode] --out FILE.json """ import argparse import base64 @@ -123,8 +123,9 @@ def ack_sublevel(tag, fetch=http): def pick_ack(releases, wanted, sublevel_of=ack_sublevel): """[(tag, commit, sublevel)]: lts = the newest release; N or N,M = the newest release of each - sublevel; semua = the newest release of every sublevel since the phone's own.""" - wanted = wanted.strip().lower() or "lts" + sublevel; semua or empty = the newest release of every sublevel since the phone's own (owner + 2026-10-31: "Jika dikosongkan maka semua sublevel muncul").""" + wanted = wanted.strip().lower() or "semua" if not releases: raise ValueError("no android14-6.1 release found") if wanted == "lts": diff --git a/tests/test_resolve.py b/tests/test_resolve.py index d4390f1..0278748 100644 --- a/tests/test_resolve.py +++ b/tests/test_resolve.py @@ -42,6 +42,11 @@ def test_a_number_is_the_newest_release_of_that_sublevel(self): self.assertEqual(r.pick_ack(self.releases, "138, 145", self.sublevel), [("android14-6.1-2025-06_r11", "b" * 40, 138), ("android14-6.1-2025-09_r36", "c" * 40, 145)]) + def test_an_empty_sublevel_is_every_sublevel(self): + # Owner 2026-10-31: "Jika dikosongkan maka semua sublevel muncul". + for empty in ("", " "): + self.assertEqual(r.pick_ack(self.releases, empty, self.sublevel), r.pick_ack(self.releases, "semua", self.sublevel)) + def test_semua_is_every_sublevel_once(self): self.assertEqual([sub for _, _, sub in r.pick_ack(self.releases, "semua", self.sublevel)], [138, 145, 176]) # One Makefile per month: 2026-09_r2 shares the sublevel of 2026-09_r4 and is not asked.