What a Package Is Actually For
Publish the shared layer, pin a version in each consumer, upgrade on your own schedule. This is not a bad answer — it is the correct answer to a real problem, and it is worth naming that problem precisely before declining it. A package sells isolation across time and space:
- Across space — consumers you do not control, on machines you cannot reach, possibly in organizations you have never met.
- Across time — a consumer that must keep working while the shared code moves on, and needs a known-good revision to stand on until it is ready.
Both are enormously valuable when you have them. The question is whether you have them.
What This Family Actually Is
A handful of private repositories, all owned by one person, all checked out on the same machine, all running as loopback siblings that talk to each other over localhost, and all deployed in the same window. There are no external consumers. There is no consumer who upgrades on a different schedule. There is no version skew to protect against — and, crucially, version skew is the thing this repository exists to eliminate. The whole point of giving the shared layer one owner was that two copies must never disagree.
Against that, a package buys nothing and charges for several things: a publish step inserted into every change, a version number that has to be reasoned about and bumped, a lockfile that can be stale, an install ceremony for anyone setting up a fresh checkout, and the possibility — now made legitimate by the version pin — of two consumers deliberately running different code. The last one is the sharpest. A package does not just permit skew; it makes skew a supported feature.
The Honest Caveat
Every sentence above depends on the size and shape of this family. At a company, with several teams, separate deploy pipelines, and consumers who genuinely cannot all be updated at once, the analysis inverts and a package becomes correct — not as a matter of taste, but because the isolation is suddenly real.
Which is exactly why this is a decision and not a doctrine. The next lessons cover how the copies are actually delivered and checked, and the last one covers the discipline that keeps this honest: writing down, at the moment of choosing, what would have to become true for the choice to be wrong.