Hey everyone! Hope everyone is doing well :)
My company is currently building a monorepo for training and serving Machine Learning models and, right now, every team is migrating their models to this monorepo. We want to lower the amount of work these teams need to do to migrate their models, but we’re facing some problems regarding the way Pants (apparently) tracks changes to components.
Basically, every time someone adds a package to our requirements and updates the respective lockfiles, Pants detects changes to every component in the monorepo. By reading the docs and what people say here and there on the internet, we are almost 100% sure that Pants detects changes to every component if the lockfile is updated in any way, even if transitive dependencies’ versions are all pinned down.
So, in this scenario, every time anyone adds something that would result in changes to the lockfiles, we need to manually do a sanity check for every single component in our monorepo, and every one of them needs to be re-deployed.
So… Is this kind of scenario expected? Do we need to make sure everything works (manually, or with unit and integration tests) every time someone:
• adds a new dependency?
• changes versions of dependencies not related to their specific models?
• wants to pin the version of a package (for whatever reason), even if the pinned down version is the same one the lockfile already specifies?
Then, if this is expected and we need to do these checks, is there any recommended way of doing dependency management that lowers the amount of affected components with each change we need to make? Maybe something related to how we're creating/using our lockfiles?
For some extra info (I'll add more if needed):
• We’re using Pants 2.16.0.
• We currently have one lockfile for the production side of things and others for testing, dev environment dev/testing/staging environments, and so on.