I don't know what the state of the art is, but for chasing down a tree of dependencies to determine what needs to be rebuilt, there's always make. Usually a human hand-codes the dependencies of each file in the Makefile -- but if you could automate that, make could do the rest.

Note also that shake is a make alternative written in Haskell, with (gross understatement here) better syntax.

On Fri, May 26, 2023 at 9:16 AM Geraldus <heraldhoi@gmail.com> wrote:
Hello, dear Cafe!

I have a mono repository and would like to do the following for CI:
- take the files from the commit
- Find all the code that depends on them explicitly or implicitly
- make a list of executable files that need to be rebuilt

This happens in CI and there is no cache of previous builds. Note that dependencies may not be direct, e.g:
- there are packages A, B, C.
- C depends only on B
- B depends on A
- C should be rebuilt if there were changes in A

Can you please tell me if there is any ready-made solution for this?
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.


--
Jeff Brown | Jeffrey Benjamin Brown
LinkedIn   |   Github   |   Twitter  |  Facebook