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:
A non-absolute cache key triggers an assertion
All code is updated to provide an absolute path
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.
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: