Version numbering on parts
I've got incremental builds working, by checking the hash of built CSG files. This threw up an interesting issue: the CSG for main_body
changes every time (because the main body has the version string stamped on the side). The input files don't change, just the -D
options, so the CSG cacheing is doing its job correctly by telling us the geometry has changed.
Currently, every build of a specific commit (i.e. every build in CI) puts the commit hash on the main body. However, the main body doesn't actually change, other than the commit hash, each time. Would it make more sense for the commit hash not to change, if the part has not changed? That would make inventory management much easier if you're keeping stock. We may then want some sort of version plate to attach, that does change every time, so that the microscope is correctly labelled. Ideally this would be easier to print than the full main body, as it would have to be regenerated every time.
Maybe we could relax things so that we don't rebuild STLs just to update the hash, except for tagged releases (which might want the hash and the tag on them)? That would speed up the build, though build time is not something to obsess over. Currently tagged releases should have the tag stamped on them, but I think due to the way CI works, they actually just get the hash.
We should raise this at design review though - as it has an impact on medical device quality management.