squint-cljs / compiler-common

Common code for squint and cherry
14 stars 3 forks source link

Synchronizing between cherry and squint #5

Open borkdude opened 1 year ago

borkdude commented 1 year ago

Compiler-common is currently a git dep of both cherry and squint. It does make development a little bit harder since we have to update the git dep in both cherry and squint after making changes.

We tried the git submodule approach before, which has a similar problem of synchronisation, but also came with the tools-deps limitation of not being able to have git submodules as part of your git dependencies.

Having both cherry and squint in one repo allows us to receive PRs and run tests for both, detecting errors early.

I've tried this in the monolith branch (which should have been called monorepo) where we used a script add_repo.sh to add a repository's history and contents to a subdirectory. But here we ran into https://clojure.atlassian.net/browse/TDEPS-132: you cannot refer to a local/root in the same repo when being used as a git dependency.

For now we'll just continue like we have, but at least we learned about the above limitations.

borkdude commented 1 year ago

Next: I will make compiler-common testable as if you run with cherry or squint while cherry and squint will still run in their own repos, depending on compiler common. Similar to how SCI is its own repository / library and babashka + nbb, etc depending on them.