Description
I've been looking into mono_repo to adopt. There are some really nice features that would make my life easier (mono_repo pub get
eg.). I was looking at package:build for inspiration how it is done properly.
Things I noticed:
- different packages are tagged by their release versions
- checking out, say
build_runner_core-v6.1.12
doesn't necessarily mean that at that revision all the other packages in the repo are compatible withbuild_runner_core
@ that revision -> I drew the conclusion that the in the repo packages have their own life/release-cycle
Q1: is that conclusion correct?
Next things I'd like to explore is how you handle development. Hypothetical scenario (that kind of happened to me with package:build
) is that I would like 1 package at a specific revision (tag) and have all the other packages at such a state that works well with that specific revision (eg. based on pubspec.lock file).
I was thinking on having multiple working copies and do sparse checkouts for package directories. That way the repository could remain a mono repo while locally I can handle different revisions/package version independently from each-other.
Q2: how do you go about mixing independent package life/release-cycle and having locally exactly what you need on a per package basis?
Thank you in advance!
ps. this could also help me a lot exploring build repository - I need breakpoints to see what's going on inside