Use before making this repo public upstream.
-
PKG_MAINTAINERset toLucas Albers <lucas.b.albers@gmail.com>(Name <email> format for upstream) - Review LICENSE (Apache-2.0) and ATTRIBUTION.md (OPNsense BSD 2-Clause)
- Run
./scripts/fwlive-test.sh -
./scripts/validate-baseline.sh - Optional QEMU:
./scripts/validate-openwrt.sh --version 24.10— seevalidation-matrix.md - Make sure that nothing in the removed
archive/tree (deleted in #98) is required for new users -
rg -n "archive" .must return no dead references
- rpcd
pollline count capped server-side (POLL_LINES_MAX=2000) —rpcd/fwlive - rpcd JSON responses escape control characters (
json_escape/map_add) -
core/fwlive-log.jstracked as a normal file (not a stale submodule gitlink) -
node_modules/not committed; dev deps declared in rootpackage.json - ACL scope understood:
luci-app-fwlivegrants read (fwlive.rules|poll|resolve|logging_status) and write (enable_wan_logging,disable_wan_logging) — not directubus log.read(poll reads logd as root inside rpcd). Grant only to trusted admin LuCI users - Re-check
peaceiris/actions-gh-pageslatest release and that.github/workflows/publish-packages.ymlstill SHA-pins that tag (the step holdsFEED_DEPLOY_KEY; Dependabot version updates are off)
| Path | Audience | Doc |
|---|---|---|
| GitHub Pages feed — signed opkg/apk | Router owners (opkg install / apk add) |
binary-feed.md |
GitHub Releases — prebuilt .ipk / .apk |
Router owners (manual download) | release.md, user/installation.md |
src-link to openwrt-feed/ |
Firmware / SDK builders | feeds.conf.example |
- Create public repo
lucas-albers-lz4/fwlive-packages(GitHub Pages viagh-pages, written by CI) - Add deploy key → secret
FEED_DEPLOY_KEYonfwlive - Generate usign + RSA keys → secrets
OPKG_FEED_*,APK_FEED_*onfwlive - Settings → Actions → General → Workflow permissions: “Read and write permissions” (or rely on
contents: writeinpublish-packages.yml) - See binary-feed.md for one-time setup
- Add repo README —
packages-repo/README.md(copied togh-pagesbypublish-packages.sh)
src-git to the main fwlive repo is not supported (feed root is openwrt-feed/, not repo root). A separate feed-only source mirror would be needed for src-git; not required for v1 — see Feed layout decision.
Include:
| Path | Purpose |
|---|---|
openwrt-feed/ |
Feed root (luci-app-fwlive) |
core/fwlive-log.js |
Parser source of truth + Node tests |
tests/, scripts/, docs/ |
Tests, lab tooling, documentation |
feeds.conf.example |
Feed wiring template (src-link) |
scripts/feeds.lock/ |
Pinned OpenWrt feed commits (reproducible SDK builds) |
README.md, docs/user/, docs/developer/, .gitignore, docker-compose.yml |
Entry points |
.github/workflows/fwlive-test.yml |
Parser CI on push/PR |
.github/workflows/publish-packages.yml |
Release → build, feed deploy, QEMU smoke |
Exclude (already in .gitignore or should stay untracked):
node_modules/(dev-only; install vianpm installfor screenshot capture)lab/images/*.img, SDK tarballs,out/, localopenwrt//luci/clones- Full OPNsense
coresubmodule (removed — we ship onlycore/fwlive-log.js)
This repo uses src-link to openwrt-feed/ (see feeds.conf.example). That is the standard third-party feed pattern for a monorepo.
Alternatives (not primary):
- LuCI tree fork — copy
luci-app-fwlive/intoluci/applications/(seeopenwrt-feed/README.md). src-gitfeed-only repo — only if you later publish a mirror whose root is the feed.
Owner: developer/upstream-openwrt.md (target tree, cut script, FormalityCheck, Weblate, PR-body answers). Review order before filing: developer/pr-cycle.md.
Checklist:
-
./scripts/upstream-cut.sh→out/upstream/luci-app-fwlive/ - Copy into
luci/applications/luci-app-fwlive/on a feature branch -
./build/i18n-scan.plrefresh of.pot(same luci commit); copy back +msgmergefeed.po - FormalityCheck commit (Signed-off-by, body ≤100 cols, linked GitHub email)
- State Apache-2.0 in the PR body; do not paste CodeRabbit threads upstream
LUCI_PKGARCH:=all— pure JS + shell rpcd, no target binarieshtdocs/+root/layout per LuCI.mkmenu.dJSON +rpcdACL +usr/libexec/rpcd/fwlive(list/call)LUCI_DEPENDSonluci-base,logd(rpcdcomes vialuci-base; no hardfirewall4dependency)po/templates/luci-app-fwlive.pot— i18n scaffolding (strings marked with_()in the view)
- Edit JS/docs and run
./scripts/fwlive-test.shlocally - SDK builds and QEMU labs: Linux x86_64 (VM, CI, or remote host)
- Unmaintained macOS QEMU:
archive/scripts/legacy/(removed in #98 — see git history)
- Follow release.md: push the
v*tag → CI builds the feed, deploys to Pages, and creates the GitHub Release with assets attached - Make sure that the binary feed URLs respond
- Make sure that the README install section points at feed + Releases +
src-link - Optional: submit to third-party OpenWrt feed index (outside this checklist)
| Workflow | When |
|---|---|
fwlive-test.yml |
Every push/PR — parser tests |
publish-packages.yml |
Tag push v* — SDK build, reproducibility, Pages deploy, release assets, single-cell QEMU feed smoke (24.10 / TCG) |