Our static analysis tool deptrac has spotted violations of our architecture rules in two places:
- Core dependencies on Plugins
- Program Management hexagonal architecture Domain dependencies on the outside world
For the first issue, it turns out there are 17 dependencies from Core to Trackers plugin. They have been introduced between 2022 and 2023. This is not such a big number, but it warrants a dedicated effort. They will be added to a "baseline" for now and dealt with separately.
For the second issue, the violations are recent (introduced by git #tuleap/stable/bbf7b28ae0617069515a96209a6321b8229da20c), but not a real problem. The Program management Domain should be allowed to depend on Ok|Err, Result and Fault classes just as it has been allowed to depend on Option class. We should allow such dependencies because those classes essentially supplement features lacking in the PHP language.
We have also noticed that the CI test jobs were not marked failed for such violations. We should investigate why and find a way to mark the job as failed.