Wanted to do this for a long time to collect important knowledge and make it easier to pass maintainership. Only time will tell if this'll be useful or become outdated instead.
···11+# Maintainers
22+33+- TODO: We need more maintainers:
44+ - https://github.com/NixOS/nixpkgs/issues/78450
55+ - If you just want to help out without becoming a maintainer:
66+ - Look for open Nixpkgs issues or PRs related to Chromium
77+ - Make your own PRs (but please try to make reviews as easy as possible)
88+- Primary maintainer (responsible for updating Chromium): @primeos
99+- Testers (test all stable channel updates)
1010+ - `nixos-unstable`:
1111+ - `x86_64`: @danielfullmer
1212+ - `aarch64`: @thefloweringash
1313+ - Stable channel:
1414+ - `x86_64`: @Frostman
1515+- Other relevant packages:
1616+ - `chromiumBeta` and `chromiumDev`: For testing purposes (not build on Hydra)
1717+ - `google-chrome`, `google-chrome-beta`, `google-chrome-dev`: Updated via
1818+ Chromium's `upstream-info.json`
1919+ - `ungoogled-chromium`: Based on `chromium` (the expressions are regularly
2020+ copied over and patched accordingly)
2121+2222+# Updating Chromium
2323+2424+Simply run `./pkgs/applications/networking/browsers/chromium/update.py` to
2525+update `upstream-info.json`. After updates it is important to test at least
2626+`nixosTests.chromium` (or basic manual testing) and `google-chrome` (which
2727+reuses `upstream-info.json`).
2828+2929+## Backports
3030+3131+All updates are considered security critical and should be ported to the stable
3232+channel ASAP. When there is a new stable release the old one should receive
3333+security updates for roughly one month. After that it is important to mark
3434+Chromium as insecure (see 69e4ae56c4b for an example; it is important that the
3535+tested job still succeeds and that all browsers that use `upstream-info.json`
3636+are marked as insecure).
3737+3838+## Major version updates
3939+4040+Unfortunately, Chromium regularly breaks on major updates and might need
4141+various patches. Either due to issues with the Nix build sandbox (e.g. we cannot
4242+fetch dependencies via the network and do not use standard FHS paths) or due to
4343+missing upstream fixes that need to be backported.
4444+4545+Good sources for such patches and other hints:
4646+- https://github.com/archlinux/svntogit-packages/tree/packages/chromium/trunk
4747+- https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium
4848+- https://src.fedoraproject.org/rpms/chromium/tree/master
4949+5050+If the build fails immediately due to unknown compiler flags this usually means
5151+that a new major release of LLVM is required.
5252+5353+## Beta and Dev channels
5454+5555+Those channels are only used to test and fix builds in advance. They may be
5656+broken at times and must not delay stable channel updates.