CI Train does not remove packages from its config after a reconfigure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
CI Train [cu2d] |
Fix Released
|
High
|
Robert Bruce Park |
Bug Description
As always, it's hard to nicely summarize the issue in one word. But the issue is: whenever a package that has been added by either source packages or MPs gets removed from the config and reconfigured (confirmed with a prepare-silo reconfigure, but the same should be in the normal reconfigure as well), the package gets removed from the main config but watch-ppa is still looking for it in the PPA. It's happened rather frequently recently and the only way to fix the silo state is to use cyphermox-test to clear out the removed project's .project files and directories.
Ideally, during a reconfigure, the train should remove all leftover files in the silo directory that are no longer used and even remove packages from the PPA that are no longer tracked by the train. The silo directory and silo PPA should always represent the currently building configuration.
Possible steps to reproduce:
* Create a silo with some MPs for a few projects (e.g. "appmenu-qt5 indicator-datetime indicator-sound")
* Do a build of the packages
* Remove one of the packages from the MP list (e.g. "indicator-sound") and reconfigure through prepare-silo (should also be the same case in a normal reconfigure)
* Do a watch-only build
Expected:
The watch-only build looks for 2 remaining packages (e.g. "appmenu-qt5 indicator-
Actual:
The watch-only build looks for all the original configured packages, ignoring that one of them was removed from the configuration.
In the example above the config does not track the removed project (so correct behaviour).
Some historical context:
The train actually used to delete old ppa packages during a reconfigure, but sometime late last year Mirv and I ran into a situation where we had to convert many silos from MPs into source uploads as a workaround for whatever bug was biting us at the time, but during the reconfigure, the train would delete the PPA packages that we wanted to keep. This was a particular problem because the packages being deleted had already undergone hours worth of QA, and been approved, and just needed to be published, so this idea of the reconfigure job deleting PPA contents was seen as really damaging, and was deliberately removed.
That said, I'm not sure why it isn't deleting the local silo dir contents, it seems like it probably ought to be doing that even if it preserves ppa contents.