As part of the dry run for local unpacked packages we have to check if the package config or files have changed. That is the purpose of PackageFileMonitor and checkPackageFileMonitorChanged.
When a package is (re)built, the monitor must be updated to reflect the new state of the package. Because we sometimes build without reconfiguring the state updates are split into two, one for package config changes and one for other changes. This is the purpose of updatePackageConfigFileMonitor and updatePackageBuildFileMonitor.