À partir de la version 1.1, FreeCAD prend en charge nativement les sous-répertoires de configuration et de données d'application versionnés. Si un fichier de configuration existe déjà lors du premier démarrage d'une nouvelle version, un écran s'affiche proposant soit de migrer vers une structure versionnée en copiant une configuration existante, soit de continuer à utiliser une configuration « partagée » d'une version précédente, soit de démarrer avec une nouvelle configuration par défaut.
L'option par défaut, et recommandée, consiste à migrer une configuration existante vers une nouvelle configuration pour la nouvelle version de FreeCAD. La conséquence est que toutes les extensions installées, les fichiers de configuration et les autres données utilisateur sont dupliqués dans un nouveau répertoire pour la nouvelle version. Cela signifie que si une ancienne version de FreeCAD est lancée, elle pourra utiliser l'ancienne configuration et les anciennes extensions, préservant ainsi la compatibilité et évitant toute perte de données ou tout comportement inattendu si une ancienne version tente de charger de nouvelles options de configuration, des extensions mis à jour, etc.
Les utilisateurs disposant de répertoires de données d'application très volumineux (par exemple parce que la bibliothèque de pièces est installée) peuvent ne pas souhaiter dupliquer toutes les données et choisir de continuer à utiliser le dernier dossier de configuration trouvé (pour les versions antérieures à la version 1.1, il s'agit d'un répertoire sans version). Cela comporte le risque qu'une nouvelle configuration ou une nouvelle extension empêche une ancienne version de FreeCAD de se charger correctement.
Cette option crée un nouveau répertoire de configuration versionné, mais n'y copie rien, démarrant la nouvelle installation avec les paramètres « usine par défaut ».
Si votre extension dépendait de l'enregistrement/stockage de l'emplacement absolu de ses fichiers (plutôt que de leur emplacement relatif à userAppDataDir
ou configDir
), vous devrez détecter que les fichiers ont été migrés et mettre à jour vos variables de configuration stockées. Plusieurs méthodes en Python sont disponibles pour vous aider dans ce processus, notamment FreeCAD.ApplicationDirectories.versionStringForPath(major, minor)
et FreeCAD.ApplicationDirectories.versionStringForPath.usingCurrentVersionConfig(pathToCheck)
.