evoldoers / biomake

GNU-Make-like utility for managing builds and complex workflows
BSD 3-Clause "New" or "Revised" License
100 stars 9 forks source link

Dependency paths longer than 2 nodes unsupported? #75

Closed rulatir closed 4 years ago

rulatir commented 4 years ago

Steps to reproduce (note two consecutive invocations of biomake):

git clone https://github.com/rulatir/biomake-bug-demo.git
cd biomake-bug-demo
biomake -H
biomake -H

Expected result:

build/indirectly-dependent should contain the same random data as build/random64 because:

Actual result:

build/indirectly-dependent contains stale data from when it was created as a result of the first invocation of biomake.

Output of second invocation:

Warning: could not update MD5 file for FORCE <-- []
  dd count=1 if=/dev/urandom of=build/randomstuff
1+0 records in
1+0 records out
512 bytes copied, 0.000138352 s, 3.7 MB/s
 base64 < build/randomstuff > build/random64
build/indirectly-dependent is up to date

The claim that build/indirectly-dependent is up to date is patently false. Its dependency has changed.

rulatir commented 4 years ago

BOOMP? If only Prolog weren't completely paradigmatically alien to me then I would just fork and fix. But it is, and I must rely on hoping to get authors' attention instead ...

cmungall commented 4 years ago

Apologies for the delay, I have a fix that unfortunately causes one of the tests to fail, will look into this later, but for now you could try this branch: https://github.com/evoldoers/biomake/tree/issue-75

ihh commented 4 years ago

@cmungall could you add a test to your PR that includes the bug that this fixes. I will look at the test that now fails.