A few months ago, I found myself hacking chunks out of a monolithic Python repo to break out a few generic reusable packages. Splitting out the libraries had a number of benefits beyond being able to reuse the code in other places: it gave a much clearer picture of the test coverage, provided a chance to ditch some vestigial code, as well as some impetus to pay off roll over some old technical debt. But one area that gave me a few headaches was getting the packages to play nicely with existing CI/CD pipelines.