This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-01-02
Channels
- # babashka (117)
- # babashka-sci-dev (6)
- # beginners (34)
- # biff (2)
- # calva (7)
- # clj-kondo (27)
- # clojure (6)
- # clojure-dev (8)
- # clojure-europe (41)
- # clojure-israel (1)
- # clojure-nl (1)
- # clojure-norway (2)
- # clojure-uk (1)
- # clojurescript (22)
- # cursive (3)
- # datascript (12)
- # dev-tooling (4)
- # emacs (13)
- # hyperfiddle (60)
- # introduce-yourself (8)
- # joyride (9)
- # lsp (46)
- # malli (3)
- # mranderson (75)
- # off-topic (40)
- # pathom (9)
- # pedestal (4)
- # reagent (11)
- # reitit (18)
- # releases (2)
- # shadow-cljs (81)
- # squint (18)
FWIW, I removed the compiler-common repo and mirroring approach again since it came with too much complexity. Instead squint is now a dependency of cherry. So changes to the common compiler parts are a change in squint, which will run tests (as a first line of defence against regressions, similar to bb + SCI) and after that, the squint dependency can be upgraded in cherry (similar to SCI and nbb for example)
All of these complexities wouldn't have existed if tools.deps supported git submodules - I might reconsider when that happens
I guess you already considered using a git subtree instead?
If tools.deps supports regular git checkouts then yes.
It seems that comes with its own set of trade-offs • Contributing code back upstream for the sub-projects is slightly more complicated. • The responsibility of not mixing super and sub-project code in commits lies with you.
So the main decision factors are like: • Use subtree when you just want to copy code from an external repo once, or maybe with occasional pulls. • Use submodule when you want to make your relationship to the external repo really explicit, or if you intend to make changes to the submodule code from within the context of your repo and push to the external repo.
since the goal is to change the code in the sub-dependency, I think subtrees won't solve it, but it's good to know that it might work with tools-deps
Ah ok, I haven't used subtrees myself. I thought it was possible to push code back up to the original repo without too much trouble.
Yeah, one issue I'm also having is that the code changes to the subtree must be tested but this currently isn't possible without using either squint or cherry
I don't know too much about tools.deps but with Node and packages.json you can configure things to be run at different stages during install. If tools.deps had a facility like that you could run the git submodules init post install.
I think the same is true in Python's setup.py.