Imported from gitkept/trivalent (
AGENTS.md). Install upstream withnpx skills add gitkept/trivalent. Copyright stays with the author.
AGENTS.md (repo)
Scope
This fork targets Debian x86_64 only and is built locally from an ungoogled-chromium source tarball. Apply these rules for all edits in this repo.
Priorities
- Correctness
- Security
- Performance
- Maintainability
- Polish
Branching & release rules (mandatory)
- Source of truth: All changes must be fetched from the GitLab
originremote. - No direct changes on
github/mcr/main: treat it as a read-only mirror. - Forward flow:
mcr/mainmust be merged/forwarded intomcr/staging, thenmcr/release. Keepmcr/main,mcr/staging, andmcr/releasealigned. - Lockstep: after each forward merge,
mcr/main,mcr/staging, andmcr/releasemust point to the same commit. - Feature branches: create
mcr/feature/*frommcr/main(after forward syncinggithub/mcr/main→mcr/main), then merge/forward intomcr/main.
Patch workflow (mandatory)
- New implementations that touch Chromium sources must be added as
patches/*.patchinstead of direct edits to upstream files. - Exceptions: direct edits are allowed only in
.gitlab-ci.yml,.github/*, andscripts/*.
Testing rules
- Testing always runs on
mcr/stagingvia the GitLab pipeline. - The authoritative test commands live in
.gitlab-ci.yml. - Do not add Rust/Cargo test pipelines unless the repo contains a Cargo project.
Deployment rules
mcr/releaseis the deployment branch.- GitLab CI handles verify/version/push and syncs
mcr/releaseto GitHub. GIT_BRANCH_PREFIXandGIT_BRANCH_RELEASEare provided via Bitwarden Secrets Manager in the shared GitLab pipeline; do not set them in.gitlab-ci.yml.- Tags starting with
gl-must be created on the tip ofmcr/releaseand pushed to GitHub. - Tag format for releases:
gl-trivalent-vX.Y.Z(optional-rNsuffix). - GitHub Actions must build Debian tarballs for
gl-*tags only. - GitHub builds must target modern Debian x86_64 only (no Fedora/COPR, no multi-arch builds, no Docker-based build pipeline in GitHub Actions).
Versioning
- Release version is tracked in
VERSIONand must be updated usingscripts/bump_version.py. - Keep
.gitlab-ci.ymlRELEASE_VERSIONin sync withVERSION.
Debian porting guidance
- Debian-only: do not add Fedora/COPR workflows or fallbacks.
- Debian builds must use ungoogled-chromium as the upstream source tarball (currently 144.0.7559.109-1).
- Do not enable proprietary codecs or Widevine; default to a fully free, hardened build.
- Printing is disabled on Debian (
enable_printing=false,use_cups=false); do not require CUPS. - Use multiarch-aware libdir detection (
/usr/lib/x86_64-linux-gnu) and do not reintroduce/usr/lib64. - Build artifacts should live under
out/and must never be committed. - The RPM spec and COPR script are retained for reference only and are disabled in this fork.
Build requirements (Debian)
- Use the system toolchain:
clang,lld,rustc,bindgen,python3,ninja,node,pkg-config, and standard Chromium build deps. - Default build is hardened and performance-oriented. Keep the following GN
flags set in the Debian build:
is_official_build=trueis_cfi=trueanduse_cfi_cast=trueuse_lld=true,use_sysroot=falseffmpeg_branding="Chromium",proprietary_codecs=false,enable_widevine=falsesymbol_level=0,blink_symbol_level=0enable_reporting=false,enable_remoting=false
Documentation
- Update
docs/when build steps, flags, or supported platforms change.