We need to protect our projects/works from getting broken by breaking changes, even after our projects are archived. If the breaking change is inevitable, we need to be notified at the time of introduction of the breaking change, in order to reduce the refactoring costs by early intervention.
A complex project such as FreeCAD will introduce breaking changes sooner or later during the development.
Proposal
Based on Original conversation and Asm3 discussion.
TL;DR;
To address such an issue, there should be a way to turn our projects into "user defined tests". Here goes my proposal:
- Start/resume recording a macro during project modifications (macro name: ${filename}.logs.FCMacro).
- Create/edit project as usual.
- Pause the macro recording.
- Create a Spreadsheet named Tests that will hold the expected values (lengths, angles etc.). It should contain "Expected" and "Observed" columns. Expected column should be hard coded and Observed column will be calculated by an assembly measurement constraint.
- Use a simple "Test.FCMacro" which will simply "Compare the Expected and Observed column values in the Tests Spreadsheet".
Selling Point
According to my experiences, people want to stay away from a software in production environments that gives no guarantees for (or even tends to have frequent) "breaking change" cases. I have those reservations as well.
However, by adopting the "tests per project" approach, we can use/test any FreeCAD commit in production without fear. That will also speed up FreeCAD and Workbench developments because more test cases will be created by the users by using FreeCAD more by using FreeCAD in production.
Moreover, the end users will benefit from their "project tests" during/between the development cycles of their very own work, because any new product feature might interfere with early constraints of the product description in the first place.
These "logs" can also be used while creating the model manually from scratch in case of a disaster situation (like switching to a totally different software). Having such an option will make the company officials feel safe while considering trying the FreeCAD in a small project.
RFC
How does it sound? What would be the complications?