Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGhostkeeper <rubend@tutanota.com>2017-05-11 18:31:37 +0300
committerGhostkeeper <rubend@tutanota.com>2017-05-11 18:31:37 +0300
commit0a84a181c466957a6c2980f694abb657b333c53f (patch)
tree339f00911ea76128cbbfb41525a4b21e35b23330
parent639e86ca597464eadf1826193c0c4adfd0ddb948 (diff)
Track cfg version numbers with major-minor, sorta
We now have a (format) version and a setting version. Ideally we'd like major-minor version numbers in our profiles. However, introducing major-minor version numbers requires substantial changes to the version upgrade manager to compare version numbers, find a path towards the current version, or even keeping track of the current version. Therefore we just collapse the two version numbers into one: Multiply the major version number by a million and you'll never exceed it in the minor versioning. The only problem is that we now have to update the versioning for all of our three upgrade plug-ins, because they all need to know locally how to find the version number of their file types (because the upgrade manager has no knowledge of the file types) and they have no access to each other because a plug-in may be disabled. Contributes to issue CURA-3427.
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py4
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py8
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py4
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py8
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py4
-rw-r--r--plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py10
6 files changed, 22 insertions, 16 deletions
diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py
index 7a9b102758..855425053a 100644
--- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py
+++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py
@@ -249,7 +249,9 @@ class VersionUpgrade21to22(VersionUpgrade):
def getCfgVersion(self, serialised):
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised)
- return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
+ format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
+ setting_version = int(parser.get("general", "version", fallback = 0))
+ return format_version * 1000000 + setting_version
## Gets the fallback quality to use for a specific machine-variant-material
# combination.
diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py
index f2803ca62f..74d74e61ae 100644
--- a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py
+++ b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py
@@ -18,10 +18,10 @@ def getMetaData():
"api": 3
},
"version_upgrade": {
- # From To Upgrade function
- ("profile", 1): ("quality", 2, upgrade.upgradeProfile),
- ("machine_instance", 1): ("machine_stack", 2, upgrade.upgradeMachineInstance),
- ("preferences", 2): ("preferences", 3, upgrade.upgradePreferences)
+ # From To Upgrade function
+ ("profile", 1000000): ("quality", 2000000, upgrade.upgradeProfile),
+ ("machine_instance", 1000000): ("machine_stack", 2000000, upgrade.upgradeMachineInstance),
+ ("preferences", 2000000): ("preferences", 3000000, upgrade.upgradePreferences)
},
"sources": {
"profile": {
diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py
index b28124f16b..7a4ff70fb7 100644
--- a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py
+++ b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py
@@ -144,4 +144,6 @@ class VersionUpgrade22to24(VersionUpgrade):
def getCfgVersion(self, serialised):
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised)
- return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
+ format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
+ setting_version = int(parser.get("general", "version", fallback = 0))
+ return format_version * 1000000 + setting_version
diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py
index e1114922d6..0df2c94b75 100644
--- a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py
+++ b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py
@@ -18,10 +18,10 @@ def getMetaData():
"api": 3
},
"version_upgrade": {
- # From To Upgrade function
- ("machine_instance", 2): ("machine_stack", 3, upgrade.upgradeMachineInstance),
- ("extruder_train", 2): ("extruder_train", 3, upgrade.upgradeExtruderTrain),
- ("preferences", 3): ("preferences", 4, upgrade.upgradePreferences)
+ # From To Upgrade function
+ ("machine_instance", 2000000): ("machine_stack", 3000000, upgrade.upgradeMachineInstance),
+ ("extruder_train", 2000000): ("extruder_train", 3000000, upgrade.upgradeExtruderTrain),
+ ("preferences", 3000000): ("preferences", 4000000, upgrade.upgradePreferences)
},
"sources": {
diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py
index 3e72fdddf9..da899b03e5 100644
--- a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py
+++ b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py
@@ -34,7 +34,9 @@ class VersionUpgrade25to26(VersionUpgrade):
def getCfgVersion(self, serialised):
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised)
- return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
+ format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
+ setting_version = int(parser.get("general", "version", fallback = 0))
+ return format_version * 1000000 + setting_version
## Upgrades the preferences file from version 2.5 to 2.6.
#
diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py
index e586d1758c..05e8e0e4cf 100644
--- a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py
+++ b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py
@@ -18,11 +18,11 @@ def getMetaData():
"api": 3
},
"version_upgrade": {
- # From To Upgrade function
- ("preferences", 4): ("preferences", 5, upgrade.upgradePreferences),
- ("quality", 2): ("quality", 3, upgrade.upgradeInstanceContainer),
- ("variant", 2): ("variant", 3, upgrade.upgradeInstanceContainer), #We can re-use upgradeContainerStack since there is nothing specific to quality, variant or user profiles being changed.
- ("user", 2): ("user", 3, upgrade.upgradeInstanceContainer)
+ # From To Upgrade function
+ ("preferences", 4000000): ("preferences", 4000001, upgrade.upgradePreferences),
+ ("quality", 2000000): ("quality", 2000001, upgrade.upgradeInstanceContainer),
+ ("variant", 2000000): ("variant", 2000001, upgrade.upgradeInstanceContainer), #We can re-use upgradeContainerStack since there is nothing specific to quality, variant or user profiles being changed.
+ ("user", 2000000): ("user", 2000001, upgrade.upgradeInstanceContainer)
},
"sources": {
"quality": {