The sdk_version field should stay the ordinary plain number (the major version number of the semver field) so that older Cura versions don't break. Newly built packages will get built with both sdk_version_semver and the normal sdk_version, so that the packages can be read with any Cura version from 3.6 onwards.
Contributes to issue CURA-5940.
If these extension plug-ins don't set their menu names, the plug-in name is used as the menu name. The plug-in names are not translated, so this appears as an untranslated string then.
The one actual change was this: To give a KeyError when stuff can't be found in a dictionary, rather than returning None there and then getting a TypeError later.
Contributes to issue CURA-5936.
These printers had profiles for zyyx_pro and fabtotum material suites, which were specific to those materials, but caused the generic materials to no longer have any profile. Let's use these machine-specific profiles for the generic materials as well. For the specific materials this changes nothing because the same profiles are still matched. For the generic materials this should improve the quality if the quality profile is tuned in any way to the machine.
There are no changes to these settings, luckily.
This target version is now only here for documentation (like source_version was). It is no longer actually used by the code.
Contributes to issue CURA-5929.
That profile instance was being explicitly set to version 1 (but then serialised as version 4) and then deserialised with upgrade, so the upgrade was thinking it was upgrading from version 1 to 4, but it was actually upgrading a file which was already at version 4. We shouldn't use the Profile() instance at all but just perform the upgrade on simple string data generated by the configparser.
This also updates the format to the newest version (since that was easiest for me to reimplement) but we don't need to ever update this again because it gets passed through the version upgrade system, which upgrades it from version 4000005 to the latest version in the future.
Contributes to issue CURA-5929.
There were some places where it would return None. Then in the QML it would give a QML error that the null object has no dictionary items.
Contributes to issue CURA-5929.