We've been working on improving WB's architecture for a long time and have made major strides breaking up dependency cycles and decoupling parts that should be separate (e.g. balt/gui from bosh 🎉).
To prevent problems like that from creeping back in, enforcing architectural unit tests would be a great idea. Java is the forerunner here, with the well-known ArchUnit, but Python does have some promising-looking tools here as well:
We've been working on improving WB's architecture for a long time and have made major strides breaking up dependency cycles and decoupling parts that should be separate (e.g. balt/gui from bosh 🎉).
To prevent problems like that from creeping back in, enforcing architectural unit tests would be a great idea. Java is the forerunner here, with the well-known ArchUnit, but Python does have some promising-looking tools here as well:
Both seem to be actively maintained, which is certainly a plus.