From b6300af7987382e539d1c29f257789c763efaa29 Mon Sep 17 00:00:00 2001 From: jsz Date: Mon, 26 Oct 2026 03:18:40 +0000 Subject: [PATCH 1/4] docs: state what each repository should be REPOS.md records the role and the build standard. Suite branches stay only for a hotfix to an old release. --- CONTRIBUTING.md | 6 +- GETTING_STARTED.md | 2 +- README.md | 2 +- RELEASE_PROCESS.md | 22 +++---- REPOS.md | 160 ++++++++++++++++++++++++++------------------- 5 files changed, 109 insertions(+), 83 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8835923..170f677 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,9 +25,9 @@ This guide covers how to contribute code to WLAN Pi projects. For setting up you branches from `main`, and open pull requests against `main`. The exception is `wlanpi-kernel`, which keeps one branch per kernel version. -**Debian suite branches** (`debian/`, e.g. `debian/bullseye`): -- Maintained by the core team only. These preserve support for older Debian releases and are not targets for regular contributor PRs. -- Build matrices on these branches are scoped to their specific suite only. +**Debian suite branches** (`debian/bookworm`, `debian/bullseye`): +- These branches exist only for a hotfix to an old release. New work never targets them. +- A hotfix uses that suite branch and that suite's Python. Bookworm is 3.11. Bullseye is 3.9. See [Repository Reference](REPOS.md) for each repo's default branch. diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md index 3cd16e7..44f10b1 100644 --- a/GETTING_STARTED.md +++ b/GETTING_STARTED.md @@ -228,7 +228,7 @@ sudo journalctl -u wlanpi-service -f | Document | Purpose | |----------|---------| | [Contributing](CONTRIBUTING.md) | How to contribute code | -| [Repository Reference](REPOS.md) | Stable map of each repo: default branch, package, and how it builds and releases | +| [Repository Reference](REPOS.md) | What each repo should be: role, package, and the build standard | | [Release Process](RELEASE_PROCESS.md) | Core team release procedures | | [Packaging Example](PACKAGING_EXAMPLE.md) | Complete packaging tutorial | | [Architecture](architecture/README.md) | System design and standards | diff --git a/README.md b/README.md index dffb61d..bca32ee 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ serves HTTPS, for example with Cloudflare redirect rules or GitHub Pages. | Document | Description | |----------|-------------| | [Getting Started](GETTING_STARTED.md) | Development environment setup and first contribution guide | -| [Repository Reference](REPOS.md) | Stable map of each repo: default branch, package, and how it builds and releases | +| [Repository Reference](REPOS.md) | What each repo should be: role, package, and the build standard | | [Git Workflow Guide](GIT_WORKFLOW.md) | Git fundamentals for beginners | | [Contributing](CONTRIBUTING.md) | Detailed Git workflow, branch naming, PR guidelines, and code review | | [Packaging Example](PACKAGING_EXAMPLE.md) | Complete walkthrough of creating a Debian package from scratch | diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 88ddf9a..47ec4ae 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -18,7 +18,7 @@ General branching strategy. May vary per repo. | Branch | Purpose | |--------|---------| | `main` | Only long-lived development branch; PRs target it | -| `debian/` | Preserved support for older Debian suites (core team only) | +| `debian/bookworm`, `debian/bullseye` | Hotfix to an old release only. New work never targets these | | `feature/` | Shared long-term feature work | | `fix/` | Bug fix branches | | `chore/`, `docs/`, `ci/` | Non-feature maintenance | @@ -26,11 +26,9 @@ General branching strategy. May vary per repo. | `hotfix/` | Urgent fixes against `main` | | `release/` | Version bump for a release | -> `debian/` branches (e.g. `debian/bullseye`) -> are maintained by the core team. They are branched from a known-good commit -> before trixie-targeted work began. Build matrices on these branches target -> only their specific suite. Contributors should not open PRs against these -> branches. +> `debian/bookworm` and `debian/bullseye` exist only for a hotfix to an old +> release. New work never targets them. A hotfix uses that branch and that +> suite's Python. Bookworm is 3.11. Bullseye is 3.9. ### Branch rules @@ -105,8 +103,9 @@ git tag -a v1.2.3 -m "Release version 1.2.3" git push origin v1.2.3 ``` -Which deploy workflows call `tag-release` is recorded in -[REPOS.md](REPOS.md#applications). +Application deploy workflows should call `tag-release`. See +[Standards](REPOS.md#standards). `pi-gen` and the kernel do not. They follow +[Scope](RELEASING.md#scope). ## GitHub workflows @@ -134,10 +133,9 @@ Maintained by: - Workflow files in each repo, which call the reusable workflows above Promotion from Packagecloud `wlanpi/dev` to `wlanpi/main` is still a manual step. -Deploy workflows upload to `wlanpi/dev` only. `wlanpi-desktop` is the only repo with `promote-to-main.yml`, and that -workflow runs only on `workflow_dispatch`. It builds the package and pushes -the `.deb` to `wlanpi/main`. See -[REPOS.md](REPOS.md#packagecloud-promotion). The planned replacement is [Publish a Release](RELEASING.md#publish-a-release). +Deploy workflows upload to `wlanpi/dev` only. An upload to `wlanpi/main` when +the release pull request merges is planned, not live. See +[REPOS.md](REPOS.md#standards) and [Publish a Release](RELEASING.md#publish-a-release). ### Version gate diff --git a/REPOS.md b/REPOS.md index d2b518f..f40d722 100644 --- a/REPOS.md +++ b/REPOS.md @@ -1,84 +1,112 @@ # Repository Reference -`REPOS.md` is a stable map of the WLAN Pi repositories. It records the default -branch, the package name, and how each repo builds and releases. Current -versions are in each repo's `debian/changelog` and on its GitHub Releases -page, `https://github.com/WLAN-Pi//releases`. - -Target rules live in [Contributing](CONTRIBUTING.md), -[Architecture/Packaging](architecture/PACKAGING.md), -[Style/Python](style/PYTHON.md), and -[Style/README Standards](style/README_STANDARDS.md). - -Shared build and release workflows live in -[`gh-workflows`](https://github.com/WLAN-Pi/gh-workflows). The `tag-release` -column says whether `deploy-to-packagecloud.yml` on the default branch calls -[`tag-release.yml`](https://github.com/WLAN-Pi/gh-workflows/blob/main/.github/workflows/tag-release.yml). -`yes` means it does. `no` means that deploy workflow exists and does not call -it. `n/a` means the repo has no `deploy-to-packagecloud.yml`. +`REPOS.md` says what each WLAN Pi repository should be. When a repository +differs, that is drift to fix in that repository, or a deliberate change to +the standard here. + +Current versions are in each repo's `debian/changelog` and on its GitHub +Releases page, `https://github.com/WLAN-Pi//releases`. + +## Standards + +An application deploy workflow should call the shared workflows in +[`gh-workflows`](https://github.com/WLAN-Pi/gh-workflows): `sbuild-pkg`, +`sbuild-deploy-pkg`, and `tag-release`. + +CI should keep Debian Trixie packaging jobs, plus compiler builds and tests. +Do not add sid, Bookworm, Ubuntu, Arch, or Fedora jobs. Do not maintain an +Arch `PKGBUILD` or an RPM spec to track versions. + +A `debian/changelog` push to `main` uploads to Packagecloud `wlanpi/dev`. +Promotion to `wlanpi/main` is done by hand. An upload to `wlanpi/main` when +the release pull request merges, and an automatic tag, are planned and not +live. See [What Is Live](RELEASING.md#what-is-live). + +`pi-gen` and `wlanpi-kernel` follow their own release rules. See +[Scope](RELEASING.md#scope). ## Applications -| Repository | Purpose | Default branch | Package | Build and release | tag-release | -|------------|---------|----------------|---------|-------------------|-------------| -| [`scandump`](https://github.com/WLAN-Pi/scandump) | Scans for Wi-Fi networks with the 802.11 netlink API and writes PCAP | `main` | `scandump` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-bluetooth`](https://github.com/WLAN-Pi/wlanpi-bluetooth) | Enables Bluetooth management access to the WLAN Pi | `main` | `wlanpi-bluetooth` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action. Deploy calls `tag-release` | yes | -| [`wlanpi-common`](https://github.com/WLAN-Pi/wlanpi-common) | Common scripts and files for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-common` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-core`](https://github.com/WLAN-Pi/wlanpi-core) | Shares data between core services and applications on the WLAN Pi | `main` | `wlanpi-core` | Build calls `get-formatted-version-string` and `sbuild-pkg`. Deploy calls `check-py-deb-pkg-versions-match`, `get-formatted-version-string`, `sbuild-deploy-pkg`, and `tag-release` | yes | -| [`wlanpi-ctx`](https://github.com/WLAN-Pi/wlanpi-ctx) | Wi-Fi continuous transmitter testing tool | `main` | `wlanpi-ctx` | Build calls `get-formatted-version-string` and `sbuild-pkg`. Deploy calls `check-py-deb-pkg-versions-match`, `get-formatted-version-string`, and `sbuild-deploy-pkg` | no | -| [`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) | Desktop environment configuration for WLAN Pi | `main` | `wlanpi-desktop` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-fpms`](https://github.com/WLAN-Pi/wlanpi-fpms) | Front Panel Menu System for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-fpms` | Build calls the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action. Deploy calls that action, `check-py-deb-pkg-versions-match`, and `tag-release` | yes | -| [`wlanpi-grafana`](https://github.com/WLAN-Pi/wlanpi-grafana) | Grafana dashboards | `main` | `wlanpi-grafana` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-hotspot`](https://github.com/WLAN-Pi/wlanpi-hotspot) | Hotspot mode for the WLAN Pi RPi/CM4 hardware | `main` | `wlanpi-hotspot` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-hwtest`](https://github.com/WLAN-Pi/wlanpi-hwtest) | Drives a suite of tests for diagnostic health of WLAN Pi Pro hardware | `main` | `wlanpi-hwtest` | Build calls `get-formatted-version-string` and `sbuild-pkg`. Deploy calls `check-py-deb-pkg-versions-match`, `get-formatted-version-string`, and `sbuild-deploy-pkg` | no | -| [`wlanpi-librespeed-cli`](https://github.com/WLAN-Pi/wlanpi-librespeed-cli) | librespeed-cli tool packaged by the WLAN Pi team | `main` | `wlanpi-librespeed-cli` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action. Deploy calls `tag-release` | yes | -| [`wlanpi-mcp`](https://github.com/WLAN-Pi/wlanpi-mcp) | On-device MCP server for the WLAN Pi | `main` | `wlanpi-mcp` | Build calls `get-formatted-version-string` and `sbuild-pkg`. Deploy calls `check-py-deb-pkg-versions-match`, `get-formatted-version-string`, `sbuild-deploy-pkg`, and `tag-release` | yes | -| [`wlanpi-misc-firmware`](https://github.com/WLAN-Pi/wlanpi-misc-firmware) | Packages miscellaneous firmware files, such as MediaTek | `main` | `wlanpi-misc-firmware` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-persistent-identity`](https://github.com/WLAN-Pi/wlanpi-persistent-identity) | Prevents "host identification changed" SSH warnings across A/B partition switches | `main` | `wlanpi-persistent-identity` | `build-deb.yml` runs `dpkg-buildpackage`. Deploy calls the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-profiler`](https://github.com/WLAN-Pi/wlanpi-profiler) | Wi-Fi client capabilities analyzer for the WLAN Pi | `main` | `wlanpi-profiler` | Build calls `get-formatted-version-string` and `sbuild-pkg`. Deploy calls `check-py-deb-pkg-versions-match`, `get-formatted-version-string`, and `sbuild-deploy-pkg` | no | -| [`wlanpi-shell-config`](https://github.com/WLAN-Pi/wlanpi-shell-config) | Shell configuration and environment defaults for WLAN Pi | `main` | `wlanpi-shell-config` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-usb-ethernet`](https://github.com/WLAN-Pi/wlanpi-usb-ethernet) | Debian package that installs the USB ethernet gadget | `main` | `wlanpi-usb-ethernet` | `build-and-archive-debian-package.yml` runs `dpkg-buildpackage`. Deploy calls the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | -| [`wlanpi-webui`](https://github.com/WLAN-Pi/wlanpi-webui) | Web app for the WLAN Pi | `main` | `wlanpi-webui` | Build calls the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action. Deploy calls that action and `check-py-deb-pkg-versions-match` | no | -| [`wlanpi-wipry`](https://github.com/WLAN-Pi/wlanpi-wipry) | Dumps spectral data from an Oscium WiPry Clarity spectrum analyzer | `main` | `wlanpi-wipry` | Build and deploy call the [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) action | no | +| Repository | Purpose | Default branch | Package | Note | +|------------|---------|----------------|---------|------| +| [`scandump`](https://github.com/WLAN-Pi/scandump) | Scans for Wi-Fi networks with the 802.11 netlink API and writes PCAP | `main` | `scandump` | Fork of [`intuitibits/scandump`](https://github.com/intuitibits/scandump). Version as `+wlanpi`. | +| [`wlanpi-bluetooth`](https://github.com/WLAN-Pi/wlanpi-bluetooth) | Enables Bluetooth management access to the WLAN Pi | `main` | `wlanpi-bluetooth` | | +| [`wlanpi-common`](https://github.com/WLAN-Pi/wlanpi-common) | Common scripts and files for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-common` | | +| [`wlanpi-core`](https://github.com/WLAN-Pi/wlanpi-core) | Shares data between core services and applications on the WLAN Pi | `main` | `wlanpi-core` | Repo-specific build and test rules belong in this repo's own `AGENTS.md`. | +| [`wlanpi-ctx`](https://github.com/WLAN-Pi/wlanpi-ctx) | Wi-Fi continuous transmitter testing tool | `main` | `wlanpi-ctx` | | +| [`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) | Desktop environment configuration for WLAN Pi | `main` | `wlanpi-desktop` | Optional apt package. Not preinstalled in the full image. | +| [`wlanpi-fpms`](https://github.com/WLAN-Pi/wlanpi-fpms) | Front Panel Menu System for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-fpms` | | +| [`wlanpi-grafana`](https://github.com/WLAN-Pi/wlanpi-grafana) | Grafana dashboards | `main` | `wlanpi-grafana` | | +| [`wlanpi-hotspot`](https://github.com/WLAN-Pi/wlanpi-hotspot) | Hotspot mode for the WLAN Pi RPi/CM4 hardware | `main` | `wlanpi-hotspot` | | +| [`wlanpi-hwtest`](https://github.com/WLAN-Pi/wlanpi-hwtest) | Drives a suite of tests for diagnostic health of WLAN Pi Pro hardware | `main` | `wlanpi-hwtest` | | +| [`wlanpi-librespeed-cli`](https://github.com/WLAN-Pi/wlanpi-librespeed-cli) | librespeed-cli tool packaged by the WLAN Pi team | `main` | `wlanpi-librespeed-cli` | | +| [`wlanpi-mcp`](https://github.com/WLAN-Pi/wlanpi-mcp) | On-device MCP server for the WLAN Pi | `main` | `wlanpi-mcp` | | +| [`wlanpi-misc-firmware`](https://github.com/WLAN-Pi/wlanpi-misc-firmware) | Packages miscellaneous firmware files, such as MediaTek | `main` | `wlanpi-misc-firmware` | | +| [`wlanpi-persistent-identity`](https://github.com/WLAN-Pi/wlanpi-persistent-identity) | Prevents "host identification changed" SSH warnings across A/B partition switches | `main` | `wlanpi-persistent-identity` | | +| [`wlanpi-profiler`](https://github.com/WLAN-Pi/wlanpi-profiler) | Wi-Fi client capabilities analyzer for the WLAN Pi | `main` | `wlanpi-profiler` | | +| [`wlanpi-shell-config`](https://github.com/WLAN-Pi/wlanpi-shell-config) | Shell configuration and environment defaults for WLAN Pi | `main` | `wlanpi-shell-config` | | +| [`wlanpi-usb-ethernet`](https://github.com/WLAN-Pi/wlanpi-usb-ethernet) | Debian package that installs the USB ethernet gadget | `main` | `wlanpi-usb-ethernet` | | +| [`wlanpi-webui`](https://github.com/WLAN-Pi/wlanpi-webui) | Web app for the WLAN Pi | `main` | `wlanpi-webui` | | +| [`wlanpi-wipry`](https://github.com/WLAN-Pi/wlanpi-wipry) | Dumps spectral data from an Oscium WiPry Clarity spectrum analyzer | `main` | `wlanpi-wipry` | | ## Platform and build -| Repository | Purpose | Default branch | Package | Build and release | tag-release | -|------------|---------|----------------|---------|-------------------|-------------| -| [`wlanpi-kernel`](https://github.com/WLAN-Pi/wlanpi-kernel) | Syncs and builds the kernel for WLAN Pi | `7.3-trixie` | `wlanpi-kernel-$DEBIAN_RELEASE`, `wlanpi-kernel-$DEBIAN_RELEASE-v8`, `wlanpi-kernel-$DEBIAN_RELEASE-2712`, `wlanpi-kernel-headers-$DEBIAN_RELEASE-v8`, `wlanpi-kernel-headers-$DEBIAN_RELEASE-2712` | `build-and-archive-kernel-package.yml` builds those packages and can upload them to `wlanpi/dev`. It does not call the shared `sbuild` workflows | n/a | -| [`wlanpi-misc-packages`](https://github.com/WLAN-Pi/wlanpi-misc-packages) | Packages miscellaneous binaries, such as iwlwifi and iw | `main` | `hostapd`, `iperf`, `iperf3`, `iw`, `wavemon`, `wlanpi-linux-firmware`, `wpasupplicant` | `build-packages.yml` builds those packages and pushes them to `wlanpi/dev`. It does not call the shared `sbuild` workflows | n/a | -| [`pi-gen`](https://github.com/WLAN-Pi/pi-gen) | WLAN Pi OS image build tool for RPi based hardware | `trixie64` | none (OS image) | `build.yml` runs on `workflow_dispatch`, builds the image, and publishes a GitHub release with `gh release create`. It does not call the shared `sbuild` workflows or `tag-release` | n/a | -| [`pi-gen-bookworm`](https://github.com/WLAN-Pi/pi-gen-bookworm) | Builds the WLAN Pi image using Debian Bookworm | `bookworm` | none (OS image) | `build.yml` runs on `workflow_dispatch`, builds the image, and publishes a GitHub release with `gh release create`. It does not call the shared `sbuild` workflows or `tag-release` | n/a | +| Repository | Purpose | Default branch | Package | Note | +|------------|---------|----------------|---------|------| +| [`wlanpi-kernel`](https://github.com/WLAN-Pi/wlanpi-kernel) | Syncs and builds the kernel for WLAN Pi | `7.3-trixie` | `wlanpi-kernel`, `wlanpi-kernel-headers` | Own release rules. See [Scope](RELEASING.md#scope). | +| [`wlanpi-misc-packages`](https://github.com/WLAN-Pi/wlanpi-misc-packages) | Packages miscellaneous binaries, such as iwlwifi and iw | `main` | `hostapd`, `iperf`, `iperf3`, `iw`, `wavemon`, `wlanpi-linux-firmware`, `wpasupplicant` | | +| [`pi-gen`](https://github.com/WLAN-Pi/pi-gen) | WLAN Pi OS image build tool for RPi based hardware | `trixie64` | none (OS image) | Fork of [`RPi-Distro/pi-gen`](https://github.com/RPi-Distro/pi-gen). Own release rules. New image work belongs here. | + +WLAN Pi Go is BE200-only. It ships only BE200 firmware: every +`iwlwifi-gl-c0-fm-c0-*` ucode file plus `pnvm`. It must not ship or run +`wpa_supplicant`. The user must be able to set the regulatory domain. ## Tooling -| Repository | Purpose | Default branch | Package | Build and release | tag-release | -|------------|---------|----------------|---------|-------------------|-------------| -| [`gh-workflows`](https://github.com/WLAN-Pi/gh-workflows) | Reusable workflows for GitHub Actions used by WLAN Pi CI | `main` | none | Workflow files on `main`: `check-py-deb-pkg-versions-match.yml`, `get-formatted-version-string.yml`, `lint.yml`, `pr-size.yml`, `sbuild-deploy-pkg.yml`, `sbuild-pkg.yml`, `tag-release.yml`. `sbuild-deploy-pkg` uploads a caller's package to `wlanpi/dev` | n/a | -| [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) | Builds a Debian package using sbuild | `main` | none | Composite action (`action.yml`). No workflow in this repo | n/a | -| [`.github`](https://github.com/WLAN-Pi/.github) | Community health files for the WLAN-Pi org | `main` | none | No package build and no workflows | n/a | +| Repository | Purpose | Default branch | Package | Note | +|------------|---------|----------------|---------|------| +| [`developers`](https://github.com/WLAN-Pi/developers) | Guidance for WLAN Pi developers including style guides, architecture, git, testing, and more | `main` | none | This repository. | +| [`gh-workflows`](https://github.com/WLAN-Pi/gh-workflows) | Reusable workflows for GitHub Actions used by WLAN Pi CI | `main` | none | Application deploys should call `sbuild-pkg`, `sbuild-deploy-pkg`, and `tag-release`. | +| [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) | Builds a Debian package using sbuild | `main` | none | Fork of [`danielmundi/sbuild-debian-package`](https://github.com/danielmundi/sbuild-debian-package). | +| [`.github`](https://github.com/WLAN-Pi/.github) | Community health files for the WLAN-Pi org | `main` | none | | + +## Also active + +[`wlanpi-app`](https://github.com/WLAN-Pi/wlanpi-app) and +[`gitbook`](https://github.com/WLAN-Pi/gitbook) are active. + +## Legacy + +[`pi-gen-bookworm`](https://github.com/WLAN-Pi/pi-gen-bookworm) builds the +WLAN Pi image using Debian Bookworm. Default branch `bookworm`. New image +work belongs in [`pi-gen`](https://github.com/WLAN-Pi/pi-gen). + +## Legacy candidates -## Packagecloud promotion +These repositories are not the current standard. -Promotion from Packagecloud `wlanpi/dev` to `wlanpi/main` is a manual step. -The maintainer does it after testing. Shared `sbuild-deploy-pkg` uploads to -`wlanpi/dev` only (`wlanpi/dev/debian/`, or -`wlanpi/dev/raspbian/` for `armhf`). +| Repository | Default branch | Note | +|------------|----------------|------| +| [`feedback`](https://github.com/WLAN-Pi/feedback) | `main` | Public feedback discussions for WLAN Pi, our software, and more | +| [`experimental`](https://github.com/WLAN-Pi/experimental) | `main` | | +| [`drivers`](https://github.com/WLAN-Pi/drivers) | `main` | Drivers that can be used for the WLAN Pi such as RNDIS | +| [`neo2`](https://github.com/WLAN-Pi/neo2) | `master` | WLAN Pi release repository | +| [`build`](https://github.com/WLAN-Pi/build) | `main` | Image build tool for WLAN Pi NEO2 hardware running Armbian. Fork of [`danielmundi/build`](https://github.com/danielmundi/build). | +| [`armbian-build`](https://github.com/WLAN-Pi/armbian-build) | `wlanpi-neo2-6e` | Armbian Linux build framework. Fork of [`adriangranados/build`](https://github.com/adriangranados/build). | +| [`rpi-linux`](https://github.com/WLAN-Pi/rpi-linux) | `rpi-5.14.y` | Kernel source tree for Raspberry Pi Foundation-provided kernel builds. Fork of [`raspberrypi/linux`](https://github.com/raspberrypi/linux). | +| [`pidcodes.github.com`](https://github.com/WLAN-Pi/pidcodes.github.com) | `master` | Website for pid.codes. Fork of [`pidcodes/pidcodes.github.com`](https://github.com/pidcodes/pidcodes.github.com). | -[`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) has -[`promote-to-main.yml`](https://github.com/WLAN-Pi/wlanpi-desktop/blob/main/.github/workflows/promote-to-main.yml). -That workflow runs on `workflow_dispatch`. It builds the package and pushes -the `.deb` to `wlanpi/main`. +[`brand`](https://github.com/WLAN-Pi/brand), +[`roadmap`](https://github.com/WLAN-Pi/roadmap), +[`user-manuals`](https://github.com/WLAN-Pi/user-manuals), +[`oss-attribution`](https://github.com/WLAN-Pi/oss-attribution), +[`dev-docs`](https://github.com/WLAN-Pi/dev-docs), +[`v2-migration-docs`](https://github.com/WLAN-Pi/v2-migration-docs), +[`gitbook-backup`](https://github.com/WLAN-Pi/gitbook-backup). ## Retired [`wlanpi-bridge`](https://github.com/WLAN-Pi/wlanpi-bridge), -[`wlanpi-server`](https://github.com/WLAN-Pi/wlanpi-server), and -[`wlanpi-wconsole`](https://github.com/WLAN-Pi/wlanpi-wconsole) are archived. -They are off Packagecloud for trixie, on both `wlanpi/dev` and `wlanpi/main`, -and `trixie64` images do not install them. That removal is recorded in -[wlanpi-common#111](https://github.com/WLAN-Pi/wlanpi-common/issues/111). -[pi-gen#108](https://github.com/WLAN-Pi/pi-gen/issues/108) records the same -removal for `wlanpi-server`. - -[`wlanpi-chat-bot`](https://github.com/WLAN-Pi/wlanpi-chat-bot) is archived. +[`wlanpi-server`](https://github.com/WLAN-Pi/wlanpi-server), +[`wlanpi-wconsole`](https://github.com/WLAN-Pi/wlanpi-wconsole), and +[`wlanpi-chat-bot`](https://github.com/WLAN-Pi/wlanpi-chat-bot) are archived. From 90c8c20947312ddeba9451680a3bda2c67366d36 Mon Sep 17 00:00:00 2001 From: jsz Date: Tue, 27 Oct 2026 01:12:11 +0000 Subject: [PATCH 2/4] docs: omit private repositories from REPOS.md --- REPOS.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/REPOS.md b/REPOS.md index f40d722..7391066 100644 --- a/REPOS.md +++ b/REPOS.md @@ -70,11 +70,6 @@ WLAN Pi Go is BE200-only. It ships only BE200 firmware: every | [`sbuild-debian-package`](https://github.com/WLAN-Pi/sbuild-debian-package) | Builds a Debian package using sbuild | `main` | none | Fork of [`danielmundi/sbuild-debian-package`](https://github.com/danielmundi/sbuild-debian-package). | | [`.github`](https://github.com/WLAN-Pi/.github) | Community health files for the WLAN-Pi org | `main` | none | | -## Also active - -[`wlanpi-app`](https://github.com/WLAN-Pi/wlanpi-app) and -[`gitbook`](https://github.com/WLAN-Pi/gitbook) are active. - ## Legacy [`pi-gen-bookworm`](https://github.com/WLAN-Pi/pi-gen-bookworm) builds the @@ -96,14 +91,6 @@ These repositories are not the current standard. | [`rpi-linux`](https://github.com/WLAN-Pi/rpi-linux) | `rpi-5.14.y` | Kernel source tree for Raspberry Pi Foundation-provided kernel builds. Fork of [`raspberrypi/linux`](https://github.com/raspberrypi/linux). | | [`pidcodes.github.com`](https://github.com/WLAN-Pi/pidcodes.github.com) | `master` | Website for pid.codes. Fork of [`pidcodes/pidcodes.github.com`](https://github.com/pidcodes/pidcodes.github.com). | -[`brand`](https://github.com/WLAN-Pi/brand), -[`roadmap`](https://github.com/WLAN-Pi/roadmap), -[`user-manuals`](https://github.com/WLAN-Pi/user-manuals), -[`oss-attribution`](https://github.com/WLAN-Pi/oss-attribution), -[`dev-docs`](https://github.com/WLAN-Pi/dev-docs), -[`v2-migration-docs`](https://github.com/WLAN-Pi/v2-migration-docs), -[`gitbook-backup`](https://github.com/WLAN-Pi/gitbook-backup). - ## Retired [`wlanpi-bridge`](https://github.com/WLAN-Pi/wlanpi-bridge), From 49e3af2291706c0308a640adacc2cc0d5614447a Mon Sep 17 00:00:00 2001 From: jsz Date: Tue, 27 Oct 2026 01:16:24 +0000 Subject: [PATCH 3/4] docs: state CI and product rules in positive form --- CONTRIBUTING.md | 2 +- RELEASE_PROCESS.md | 14 +++++++------- REPOS.md | 17 ++++++----------- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 170f677..beac58a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,7 @@ branches from `main`, and open pull requests against `main`. The exception is `wlanpi-kernel`, which keeps one branch per kernel version. **Debian suite branches** (`debian/bookworm`, `debian/bullseye`): -- These branches exist only for a hotfix to an old release. New work never targets them. +- Use these branches only for a hotfix to an old release. - A hotfix uses that suite branch and that suite's Python. Bookworm is 3.11. Bullseye is 3.9. See [Repository Reference](REPOS.md) for each repo's default branch. diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 47ec4ae..8ce0492 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -18,7 +18,7 @@ General branching strategy. May vary per repo. | Branch | Purpose | |--------|---------| | `main` | Only long-lived development branch; PRs target it | -| `debian/bookworm`, `debian/bullseye` | Hotfix to an old release only. New work never targets these | +| `debian/bookworm`, `debian/bullseye` | Hotfix to an old release only | | `feature/` | Shared long-term feature work | | `fix/` | Bug fix branches | | `chore/`, `docs/`, `ci/` | Non-feature maintenance | @@ -27,8 +27,8 @@ General branching strategy. May vary per repo. | `release/` | Version bump for a release | > `debian/bookworm` and `debian/bullseye` exist only for a hotfix to an old -> release. New work never targets them. A hotfix uses that branch and that -> suite's Python. Bookworm is 3.11. Bullseye is 3.9. +> release. A hotfix uses that branch and that suite's Python. Bookworm is +> 3.11. Bullseye is 3.9. ### Branch rules @@ -103,8 +103,8 @@ git tag -a v1.2.3 -m "Release version 1.2.3" git push origin v1.2.3 ``` -Application deploy workflows should call `tag-release`. See -[Standards](REPOS.md#standards). `pi-gen` and the kernel do not. They follow +Application deploy workflows call `tag-release`. See +[Standards](REPOS.md#standards). `pi-gen` and `wlanpi-kernel` follow [Scope](RELEASING.md#scope). ## GitHub workflows @@ -133,8 +133,8 @@ Maintained by: - Workflow files in each repo, which call the reusable workflows above Promotion from Packagecloud `wlanpi/dev` to `wlanpi/main` is still a manual step. -Deploy workflows upload to `wlanpi/dev` only. An upload to `wlanpi/main` when -the release pull request merges is planned, not live. See +Deploy workflows upload to `wlanpi/dev`. An upload to `wlanpi/main` when the +release pull request merges is planned. See [REPOS.md](REPOS.md#standards) and [Publish a Release](RELEASING.md#publish-a-release). ### Version gate diff --git a/REPOS.md b/REPOS.md index 7391066..436c45f 100644 --- a/REPOS.md +++ b/REPOS.md @@ -13,14 +13,12 @@ An application deploy workflow should call the shared workflows in [`gh-workflows`](https://github.com/WLAN-Pi/gh-workflows): `sbuild-pkg`, `sbuild-deploy-pkg`, and `tag-release`. -CI should keep Debian Trixie packaging jobs, plus compiler builds and tests. -Do not add sid, Bookworm, Ubuntu, Arch, or Fedora jobs. Do not maintain an -Arch `PKGBUILD` or an RPM spec to track versions. +CI builds and tests Debian Trixie packages, plus compiler builds and tests. A `debian/changelog` push to `main` uploads to Packagecloud `wlanpi/dev`. Promotion to `wlanpi/main` is done by hand. An upload to `wlanpi/main` when -the release pull request merges, and an automatic tag, are planned and not -live. See [What Is Live](RELEASING.md#what-is-live). +the release pull request merges, and an automatic tag, are planned. See +[What Is Live](RELEASING.md#what-is-live). `pi-gen` and `wlanpi-kernel` follow their own release rules. See [Scope](RELEASING.md#scope). @@ -34,7 +32,7 @@ live. See [What Is Live](RELEASING.md#what-is-live). | [`wlanpi-common`](https://github.com/WLAN-Pi/wlanpi-common) | Common scripts and files for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-common` | | | [`wlanpi-core`](https://github.com/WLAN-Pi/wlanpi-core) | Shares data between core services and applications on the WLAN Pi | `main` | `wlanpi-core` | Repo-specific build and test rules belong in this repo's own `AGENTS.md`. | | [`wlanpi-ctx`](https://github.com/WLAN-Pi/wlanpi-ctx) | Wi-Fi continuous transmitter testing tool | `main` | `wlanpi-ctx` | | -| [`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) | Desktop environment configuration for WLAN Pi | `main` | `wlanpi-desktop` | Optional apt package. Not preinstalled in the full image. | +| [`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) | Desktop environment configuration for WLAN Pi | `main` | `wlanpi-desktop` | Optional apt package; install it when you need the desktop. | | [`wlanpi-fpms`](https://github.com/WLAN-Pi/wlanpi-fpms) | Front Panel Menu System for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-fpms` | | | [`wlanpi-grafana`](https://github.com/WLAN-Pi/wlanpi-grafana) | Grafana dashboards | `main` | `wlanpi-grafana` | | | [`wlanpi-hotspot`](https://github.com/WLAN-Pi/wlanpi-hotspot) | Hotspot mode for the WLAN Pi RPi/CM4 hardware | `main` | `wlanpi-hotspot` | | @@ -57,9 +55,8 @@ live. See [What Is Live](RELEASING.md#what-is-live). | [`wlanpi-misc-packages`](https://github.com/WLAN-Pi/wlanpi-misc-packages) | Packages miscellaneous binaries, such as iwlwifi and iw | `main` | `hostapd`, `iperf`, `iperf3`, `iw`, `wavemon`, `wlanpi-linux-firmware`, `wpasupplicant` | | | [`pi-gen`](https://github.com/WLAN-Pi/pi-gen) | WLAN Pi OS image build tool for RPi based hardware | `trixie64` | none (OS image) | Fork of [`RPi-Distro/pi-gen`](https://github.com/RPi-Distro/pi-gen). Own release rules. New image work belongs here. | -WLAN Pi Go is BE200-only. It ships only BE200 firmware: every -`iwlwifi-gl-c0-fm-c0-*` ucode file plus `pnvm`. It must not ship or run -`wpa_supplicant`. The user must be able to set the regulatory domain. +WLAN Pi Go is BE200-only. It ships every `iwlwifi-gl-c0-fm-c0-*` ucode file +plus `pnvm`. The user sets the regulatory domain. ## Tooling @@ -78,8 +75,6 @@ work belongs in [`pi-gen`](https://github.com/WLAN-Pi/pi-gen). ## Legacy candidates -These repositories are not the current standard. - | Repository | Default branch | Note | |------------|----------------|------| | [`feedback`](https://github.com/WLAN-Pi/feedback) | `main` | Public feedback discussions for WLAN Pi, our software, and more | From 3332129f96606ddca9e61b278307b7664480aa51 Mon Sep 17 00:00:00 2001 From: jsz Date: Tue, 27 Oct 2026 01:17:57 +0000 Subject: [PATCH 4/4] docs: restore Go and desktop product requirements --- REPOS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/REPOS.md b/REPOS.md index 436c45f..5d84589 100644 --- a/REPOS.md +++ b/REPOS.md @@ -32,7 +32,7 @@ the release pull request merges, and an automatic tag, are planned. See | [`wlanpi-common`](https://github.com/WLAN-Pi/wlanpi-common) | Common scripts and files for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-common` | | | [`wlanpi-core`](https://github.com/WLAN-Pi/wlanpi-core) | Shares data between core services and applications on the WLAN Pi | `main` | `wlanpi-core` | Repo-specific build and test rules belong in this repo's own `AGENTS.md`. | | [`wlanpi-ctx`](https://github.com/WLAN-Pi/wlanpi-ctx) | Wi-Fi continuous transmitter testing tool | `main` | `wlanpi-ctx` | | -| [`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) | Desktop environment configuration for WLAN Pi | `main` | `wlanpi-desktop` | Optional apt package; install it when you need the desktop. | +| [`wlanpi-desktop`](https://github.com/WLAN-Pi/wlanpi-desktop) | Desktop environment configuration for WLAN Pi | `main` | `wlanpi-desktop` | Optional apt package. The full image doesn't include it. | | [`wlanpi-fpms`](https://github.com/WLAN-Pi/wlanpi-fpms) | Front Panel Menu System for WLAN Pi RPi and CM4 hardware | `main` | `wlanpi-fpms` | | | [`wlanpi-grafana`](https://github.com/WLAN-Pi/wlanpi-grafana) | Grafana dashboards | `main` | `wlanpi-grafana` | | | [`wlanpi-hotspot`](https://github.com/WLAN-Pi/wlanpi-hotspot) | Hotspot mode for the WLAN Pi RPi/CM4 hardware | `main` | `wlanpi-hotspot` | | @@ -56,7 +56,7 @@ the release pull request merges, and an automatic tag, are planned. See | [`pi-gen`](https://github.com/WLAN-Pi/pi-gen) | WLAN Pi OS image build tool for RPi based hardware | `trixie64` | none (OS image) | Fork of [`RPi-Distro/pi-gen`](https://github.com/RPi-Distro/pi-gen). Own release rules. New image work belongs here. | WLAN Pi Go is BE200-only. It ships every `iwlwifi-gl-c0-fm-c0-*` ucode file -plus `pnvm`. The user sets the regulatory domain. +plus `pnvm`, and no `wpa_supplicant`. The user can set the regulatory domain. ## Tooling