ohmtech-rdi / eurorack-blocks

Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
Other
296 stars 19 forks source link

Fix kicad pcb sch cache key #553

Closed ohmtech-rdi closed 1 year ago

ohmtech-rdi commented 1 year ago

This PR fixes a bug where the cache key for the KiCad SCH and PCB parse optimisation was supposed to be an absolute path for ensure uniqueness in the cache, but this was not checked. In the case of custom manufacturers, the cache key could be relative instead of absolute.

This fixes this problem by ensuring that:

Warning It should be noted that this bug was originally found because the Daisy and UI action where colliding on the cache, as it seems os.replace still doesn't work on Windows in some concurrent cases. Though, as long as the initial erbui parse at the beginning of erbb build caches all SCH & PCB parse, there will be no concurrent write.