User tracking has been added to the 'slice_message' method in the 'StartSliceJob.py' file. A unique, anonymous UUID is generated for each user, stripping away identifiable data with a bitmask operation. The user's Cura version is also included in the message. This facilitates more robust analysis of crash reports and user behaviors.
Contributes to CURA-11482
We had a lot of Look up Tables scattered around in the cura repository. This can be solved by adding a `bot_id` entry to metadata of the various makerbot extruders/materials/definitions
This was a mistake in the previous implementation. The relevant piece of code was adding ufp support for um3 printers. This is legacy support for this printer since the printer didn't know it supported ufp, but through the digital factory it could support ufp files. However, with the addition of method printers we should have added an additional check where we also check if the printer is an um3. Instead an additional check was added that did the same for makerbot printers. Because of this check didn't have a "is method" check support for makerbot format is also added to s-line printers and legacy um printers.
(fyi @saumyaj3)
CURA-11377
Example of issues we had is that parsing floating point numbers would parse the dot as an attribute syntax and trying to retrieve both sides of the attributes to the get_value resolve. E.g `3.14` would be interpreted as getting the `14` property of the object `3`, which ofcourse throws an error.
CURA-11347
With previous implementation we lost support for these variables in start/end gcode
"filament_cost", "print_time", "filament_amount", "filament_weight", "jobname"
CURA-11347
Only fields in miracle_config get sent to analytics by method firmware. I don't know if anything else in our codebase expects to also see these fields at the top level, so I put one copy at the top level and one copy down in miracle_config.