monorepo this week. I don't think this requires any action from
Clojure core since Jenkins/Git/Jira is already setup and working
fine, but I wanted to touch base.
Firstly, I'm really grateful to those who put effort into helping split
core.typed up, especially Alex for setting up the infrastructure (and I assume Rich had to approve it!).
The process certainly helped crystalize the essence of core.typed for
my PhD and its future future directions -- thank you, and I'm in your debt.
Unfortunately --- as Daniel was concerned about --- it was too much work to maintain
and pretty much impossible to contribute to if you weren't me.
The main friction was keeping both the deps.edn Git SHA's and Maven
snapshots in sync for all the repos. I found this much easier
via a monorepo using `:local/root` and auto-bumping via `maven release`.
My decision to move back to a monorepo is primarily because:
1. I need a more streamlined dev environment since core.typed is now my side
project rather than my primary focus.
2. tools.deps has improved its monorepo support since 2018
(especially :deps/root support! I think
TDEPS-74 was the missing piece).
So, massive thanks to Alex for that!
I
documented the process I used to merge the 6 polyrepos back into core.typed.
It got messy, and now `clojure/core.typed`'s master branch has 9 orphaned "first commits"!
But it seemed to do the trick.
I did some investigation, and accounted for all the orphaned commits.
Of course, they were all my fault, for various reasons ("only" 7 happened this week).
The
write-up explains them all and explains the specific `git subtree` commands I used
to preserve history. I was careful to ensure everything I merged back was
by a contributor with a CA. Hopefully the write-up is enough
to help someone verify that if they'd like.
Thanks for reading, happy to answer questions.
Thanks,
Ambrose