Closed massimiliano-leoni closed 1 year ago
Full disclosure, I'm not a big fan of submodules (clunky and non-intuitive).
Having said that, I still think this is unnecessary:
main
branches (almost) always works together on any given date, as it is enforced by our Pull Request/CI system. You can use git to automatically checkout a version on a particular date, e.g.git checkout `git rev-list -n 1 --before="2022-10-20 00:00" main`
I'm to close this because we've visited it before and decided that the complications outweighed any benefits.
We're making releases reasonably frequently now, and most users should use a release version.
I was recently in the situation of having to revert my code to its status a few months ago and run it. That meant reverting the
dolfinx
repository too andbasix
,ffcx
andufl
alongside with it. Since the APIs of these dependencies change quickly, it is sometimes tricky to identify which revision of each of them will work with a given revision ofdolfinx
. This could be easily fixed by adding these dependencies as git submodules to thedolfinx
repository. This would automatically keep track of their current commit, for example, when a new commit is pushed todolfinx/main
. A user could then automagically checkout the correct revision for all dependencies simply by doing