A full build without any -no options performs the following operations in the specified order:
An update of the current ports tree from the ZFS snapshot [*]
An update of the running branch's src tree from the ZFS snapshot [*]
Checks which ports do not have a SUBDIR entry in their respective category's Makefile [*]
Creates the duds file, which is a list of ports not to build [*] [+]
Generates a fresh INDEX file [*] [+]
Sets up the nodes that will be used in the build [*] [+]
Builds a list of restricted ports [*] [+]
Builds packages (phase 1) [++]
Performs another node setup [+]
Builds packages (phase 2) [++]
[*] Status of these steps can be found in ${arch}/${branch}/build.log as well as on stderr of the tty running the dopackages command.
[+] If any of these steps fail, the build will stop cold in its tracks.
[++] Status of these steps can be found in ${arch}/${branch}/make (old codebase) or ${arch}/${branch}/journal (new codebase). Individual ports will write their build logs to ${arch}/${branch}/logs and their error logs to ${arch}/${branch}/errors.
Formerly the docs tree was also checked out, however, it has been found to be unnecessary.