A custom build is a build that is using most of the /e/ source code to generate a new ROM. It can be modified in any manner by the developer, for any purpose.
An unofficial /e/ build is a build from the /e/ source code that is intended to generate the /e/ ROM for a new, not yet supported, device. It’s not been approved officially and is not included yet to the list of official /e/ ROMs. It can be published publicly tagged as "unofficial".
An official /e/ build is an unofficial build from /e/ source code that has reached a sufficient level of quality and has been validated. It has been published publicly as an official build on /e/ websites.
Requirements for differents builds:
Custom builds: if the source code has been modified and if the ROM is redistributed, we have several requirements:
any reference to /e/, including “/e/”, and our logo must be removed from the build
the redistribution must not let people think that it is /e/. The name must be changed and possibly say that it’s been forked from /e/
calls to our OTA server infrastructure should be removed
Custom ROMs can be built on /e/ servers only for exceptional reasons (special development…).
Unofficial /e/ builds: source code can be modified only to reach full support on the target device. /e/ features, list of installed apps etc. shouldn’t be modified. Unofficial builds can be published on the /e/ website at a specific place with warnings and a list of what works/what doesn’t work. It doesn’t have nightly builds nor OTA updates.
Official /e/ builds : the level of quality must have reached our conditions. It must have an official maintainer. Official builds have nightly builds and can be updated OTA. Source code have to be hosted on our GitLab instance, or on trusted sources (LineageOS GitHub group, AOSP).