Std AddonMgr/fr: Difference between revisions

From FreeCAD Documentation
No edit summary
(Created page with "L'URL du score est un chemin d'accès à un document distant au format JSON répertoriant les extensions et un certain "score". Le score peut être calculé de la manière souhaitée par le fournisseur de données, mais il doit s'agir d'une valeur entière, les scores les plus élevés étant "meilleurs" dans un certain sens. Toute extension non répertoriée se voit attribuer un score de zéro en interne. Le format du fichier est un dictionnaire JSON unique dont la clé...")
 
(54 intermediate revisions by 3 users not shown)
Line 2: Line 2:


{{Docnav/fr
{{Docnav/fr
|[[Std_DlgCustomize/fr|Personnalisation]]
|[[Std_DlgCustomize/fr|Personnaliser]]
|
|
|[[Std_Tools_Menu/fr|Menu Outils]]
|[[Std_Tools_Menu/fr|Menu Outils]]
Line 12: Line 12:
{{GuiCommand/fr
{{GuiCommand/fr
|Name=Std AddonMgr
|Name=Std AddonMgr
|Name/fr=Std Gestionnaire d'Addons
|Name/fr=Std Gestionnaire des extensions
|MenuLocation=Outils → Gestionnaire d'Addons
|MenuLocation=Outils → Gestionnaire des extensions
|Workbenches=Tous
|Workbenches=Tous
|Version=0.17
|Version=0.17
Line 21: Line 21:
==Description==
==Description==


La commande '''Gestionnaire d'Addon''' ouvre le gestionnaire de modules complémentaires. Avec l'Addon Manager, vous pouvez installer et gérer [[external workbenches/fr|ateliers complémentaires]] et des [[macros/fr|macros]] fournis par la communauté FreeCAD. Les ateliers et les macros disponibles proviennent de deux dépôts [https://github.com/FreeCAD/FreeCAD-addons/ FreeCAD-addons] et [https://github.com/FreeCAD/FreeCAD-macros/ FreeCAD-macros] et à partir de la page [[Macros_recipes/fr|Liste des macros]].
La commande '''Std Gestionnaire des extensions''' ouvre le gestionnaire des extensions. Avec le gestionnaire des extensions, vous pouvez installer et gérer des [[External_workbenches/fr|ateliers externes]], des [[Macros/fr|macros]] et des [[Preference_Packs/fr|kits de préférence]] fournis par la communauté FreeCAD. Par défaut, les extensions disponibles proviennent de deux dépôts, [https://github.com/FreeCAD/FreeCAD-addons/ FreeCAD-addons] et de la page [[Macros_recipes/fr|Liste des macros]]. Si GitPython et git sont installés sur votre système, des macros supplémentaires seront chargées depuis [https://github.com/FreeCAD/FreeCAD-macros/ FreeCAD-macros]. Des dépôts personnalisés peuvent être ajoutés dans les [[Preferences_Editor/fr#Gestionnaire_des_extensions|Préférences du gestionnaire des extensions]].


En raison des modifications apportées à la plateforme GitHub en 2020, le gestionnaire des extensions ne fonctionne plus si vous utilisez la version 0.17 ou antérieure de FreeCAD. Vous devez passer à la version [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.5 0.18.5] ou ultérieure. Alternativement, vous pouvez installer les extensions manuellement, voir [[#Remarques|Remarques]] ci-dessous.
Les addons marqués par {{emphasis|Python 2 uniquement}} ne fonctionneront pas dans FreeCAD version 0.19 ou supérieure.

En raison des modifications apportées à la plate-forme GitHub en 2020, le gestionnaire de modules complémentaires ne fonctionne plus si vous utilisez des versions de FreeCAD inférieure ou égale à 0.17. Vous devez passer à la version [https://github.com/FreeCAD/FreeCAD/releases/tag/0.18.5 0.18.5] ou à une version récente [https://github.com/FreeCAD/FreeCAD/releases/tag/0.19_pre 0.19]. Vous pouvez également installer les addons manuellement, voir [[#Remarques|Remarques]] ci-dessous.

[[Image:Std_AddonMgr_dialog.png]]
{{Caption|Boîte de dialogue du Gestionnaire de modules complémentaires ou Addon Manager}}


<span id="Usage"></span>
==Utilisation==
==Utilisation==


# Sélectionnez l'option {{MenuCommand|Outils → [[Image:Std_AddonMgr.svg|16px]] Gestionnaire d'Addon }} dans le menu.
# Sélectionnez l'option {{MenuCommand|Outils → [[Image:Std_AddonMgr.svg|16px]] Gestionnaire des extensions}} dans le menu.
# Si vous utilisez le gestionnaire d'extensions pour la première fois, une boîte de dialogue s'ouvrira pour vous avertir que les extensions du gestionnaire d'extensions ne font pas officiellement partie de FreeCAD. Appuyez sur le bouton {{Button|OK}} pour confirmer et continuer.
# Si vous utilisez le gestionnaire des extensions pour la première fois, une boîte de dialogue s'ouvre pour vous avertir que les extensions du gestionnaire des extensions ne font pas officiellement partie de FreeCAD. Elle présente également plusieurs options relatives à l'utilisation des données du gestionnaire des extensions. Réglez ces options à votre convenance et appuyez sur le bouton {{Button|OK}} pour confirmer et continuer.
# La boîte de dialogue Gestionnaire de modules complémentaires s'ouvre. Pour plus d'informations, voir [[#Options|Options]].
# La boîte de dialogue du gestionnaire des extensions s'ouvre. Pour plus d'informations, voir [[#Options|Options]].
# Si vous avez installé ou mis à jour un atelier, une nouvelle boîte de dialogue s'ouvre pour vous informer que vous devez redémarrer FreeCAD pour que les modifications soient prises en compte.
# Le bouton {{Button|[[Image:Button_valid.svg|16px]] Tout mettre à jour}} ne fonctionne pas pour le moment.
# Appuyez sur le bouton {{Button|[[Image:Process-stop.svg|16px]] Fermer}} pour fermer la boîte de dialogue.
# Si vous avez installé ou mis à jour un plan de travail, une nouvelle boîte de dialogue s'ouvre vous informant que vous devez redémarrer FreeCAD pour que les modifications prennent effet.


==Options==
==Options==


[[File:AddonManager_Main.png|600px]]
La boîte de dialogue Gestionnaire de modules complémentaires comporte deux onglets à gauche, l'un répertoriant les ateliers disponibles et l'autre répertoriant les macros disponibles. Le panneau d'information sur la droite affichera la page d'accueil de l'addon sélectionné.


# Le gestionnaire des extensions propose deux modèles d'affichage : "Condensé" et "Développé". Dans la vue "condensée", chaque extension occupe une seule ligne, et sa description est tronquée pour s'adapter à l'espace disponible. La vue "développée" affiche des détails supplémentaires, davantage de texte de la description ainsi que des informations sur le mainteneur, plus de détails sur l'installation, etc.
=== Désinstaller ===
# Trois différents types d'extensions sont pris en charge : des [[external_workbenches/fr|ateliers]], des [[macros/fr|macros]], et des [[Preference_Packs/fr|kits de préférences]]. Vous pouvez choisir d'afficher un seul type ou tous les types dans une seule liste.
# La liste peut être limitée pour n'afficher que les paquets installés, que les paquets avec des mises à jour disponibles, ou que les paquets qui ne sont pas encore installés.
# La liste peut être filtrée, en recherchant un mot clé dans le titre, la description et les balises (la description et les balises doivent être spécifiées par le développeur de l'extension dans les métadonnées de l'extension). Le filtre peut même être une expression régulière, pour un contrôle plus fin du terme de recherche exact.
# La vue développée affiche les informations sur la version disponible, la description, les informations sur le responsable et les informations sur la version d'installation, pour les paquets qui fournissent un fichier de [[Package_Metadata/fr|métadonnées du package]] (ou pour les macros avec métadonnées intégrées).
# Les données des extensions sont mises en cache localement, avec une fréquence de mise à jour du cache variable définie dans les préférences de l'utilisateur.
# À tout moment, vous pouvez choisir de mettre à jour manuellement votre cache local pour voir les dernières mises à jour disponibles pour chaque extension.
# Les vérifications des mises à jour peuvent être configurées pour être automatiques, ou effectuées manuellement par un clic sur un bouton (configuré dans les préférences de l'utilisateur). Si GitPython et git sont installés sur votre système, les informations de mise à jour sont récupérées à l'aide de git. Sinon, les informations de mise à jour sont obtenues à partir de tout fichier de métadonnées présent.


Si vous cliquez sur une extension dans cette vue, la page des détails de l'extension s'affiche :
# Sélectionnez un module complémentaire installé dans l'onglet [[Image:Folder.svg|16px]] '''Ateliers''' ou dans l'onglet [[Image:Applications-python.svg|16px]] '''Macros'''.
# Appuyez sur le bouton {{Button|[[Image:Delete.svg|16px]] Désinstaller la sélection}}.


[[File:AddonManager_Details.png|600px]]
=== Installer/mettre à jour ===


La page de détails présente des boutons permettant d'installer, de désinstaller, de mettre à jour et de désactiver temporairement une extensions. Pour les extensions installées, elle indique la version installée en cours et la date d'installation, et précise s'il s'agit de la version la plus récente disponible. Une fenêtre de navigateur Web intégrée affiche la page README de l'extension (pour les environnements de travail et les kits de préférences) ou la page Wiki (pour les macros).
# Sélectionnez un module complémentaire dans l'onglet [[Image:Folder.svg|16px]] '''Ateliers''' ou dans l'onglet [[Image:Applications-python.svg|16px]] '''Macros'''.
# Appuyez sur le bouton {{Button|[[Image:Edit_OK.svg|16px]] Installer/mettre à jour la sélection}}.
# Si vous souhaitez ajouter une macro à une barre d'outils personnalisée, n'oubliez pas de télécharger manuellement le fichier image d'icône, si disponible, en cliquant sur le lien sur la page d'accueil dans le panneau d'informations. Voir [[Interface_Customization/fr#Barre_d.27outils|Personnalisation de l'interface]].
# Pour modifier la position d'un atelier complémentaire dans la liste des [[Std_Workbench/fr|Ateliers]], voir [[Interface_Customization/fr#Ateliers|Personnalisation de l'interface]].


<span id="Preferences"></span>
=== Configuration ===
==Préférences==


Les préférences du gestionnaire des extensions se trouvent dans [[Preferences_Editor/fr#Gestionnaire_des_extensions|Réglage des préférences]]. {{Version/fr|0.20}}
# Appuyez sur le bouton {{Button|[[Image:Preferences-general.svg|16px]] Configurer...}}.
# La boîte de dialogue des options du gestionnaire d'extensions s'ouvre.
# Cochez éventuellement la case {{CheckBox|TRUE|Rechercher automatiquement les mises à jour au démarrage (nécessite GitPython)}}.
# Ajoutez éventuellement des dépôts à la liste '''Dépôts personnalisés'''. Les modules complémentaires de ces référentiels seront ajoutés sur l'onglet [[Image:Folder.svg|16px]] '''Ateliers''' ou l'onglet [[Image:Applications-python.svg|16px]] '''Macros'''.
# Choisissez éventuellement les paramètres du proxy.
# Appuyez sur le bouton {{Button|OK}} ou sur le {{Button|Annuler}} pour fermer la boîte de dialogue.


<span id="Sorting_by_score"></span>
==Tri par score==

{{Version/fr|0.22}}

Le gestionnaire des extensions permet de trier les extensions en fonction d'un certain nombre de critères. La plupart d'entre eux sont téléchargés directement à partir des serveurs de FreeCAD (qui les met en cache à partir de GitHub et du wiki FreeCAD), mais l'un d'entre eux, le "Score", n'est pas du tout fourni par FreeCAD, et n'apparaît comme une option que si le paramètre URL des scores est fourni dans les préférences.

L'URL du score est un chemin d'accès à un document distant au format JSON répertoriant les extensions et un certain "score". Le score peut être calculé de la manière souhaitée par le fournisseur de données, mais il doit s'agir d'une valeur entière, les scores les plus élevés étant "meilleurs" dans un certain sens. Toute extension non répertoriée se voit attribuer un score de zéro en interne. Le format du fichier est un dictionnaire JSON unique dont la clé est l'URL de l'extension (pour les ateliers et les kits de préférences) ou le nom de la macro (pour les macros). Voir [https://gist.githubusercontent.com/chennes/e8f60e80f16e6ffbd057dd47ca36ad2a/raw/7b118cca8e84444c3379919bbd744b99e6ef6711/addon_score_for_testing.json cette source de données] pour un exemple (notez que le score correspond simplement à la longueur de la description de l'extension et qu'il n'est destiné qu'à des fins de test et de démonstration).

<span id="Notes"></span>
==Remarques==
==Remarques==


* L'utilisation des addons n'est pas limitée à la version FreeCAD à partir de laquelle ils ont été installés. Vous pourrez également les utiliser dans n'importe quelle autre version de FreeCAD, prise en charge par l'addon, que vous pourriez avoir sur votre système.
* L'utilisation des extensions n'est pas limitée à la version FreeCAD à partir de laquelle ils ont été installés. Vous pourrez également les utiliser dans n'importe quelle autre version de FreeCAD, prise en charge par l'extension, que vous pourriez avoir sur votre système.
* Les modules complémentaires disponibles dans le gestionnaire de modules complémentaires ne font pas partie du programme officiel FreeCAD et ne sont pas pris en charge par l'équipe de développement principale de FreeCAD. Vous devez lire attentivement les informations fournies pour vous assurer que vous savez ce que vous installez.
* Les extensions disponibles dans le gestionnaire des extensions ne font pas partie du programme officiel FreeCAD et ne sont pas pris en charge par l'équipe de développement principale de FreeCAD. Vous devez lire attentivement les informations fournies pour vous assurer que vous savez ce que vous installez.
* Les rapports de bogues et les demandes de fonctionnalités doivent être adressés directement au créateur de l'addon en visitant le site Web indiqué. De nombreux développeurs d'extensions sont des utilisateurs réguliers du [https://forum.freecadweb.org forum de FreeCAD] et peuvent également y être contactés.
* Les rapports de bogues et les demandes de fonctionnalités doivent être adressés directement au créateur de l'extension en visitant le site Web indiqué. De nombreux développeurs d'extensions sont des utilisateurs réguliers du [https://forum.freecadweb.org forum de FreeCAD] et peuvent également y être contactés.
* Si le package [https://github.com/gitpython-developers/GitPython GitPython] est installé sur votre ordinateur, le gestionnaire d'extensions s'en servira, ce qui accélérera les téléchargements.
* Si le paquet [https://github.com/gitpython-developers/GitPython GitPython] est installé sur votre ordinateur, le gestionnaire des extensions l'utilisera, ce qui accélérera les téléchargements.
* Vous pouvez également installer des modules complémentaires manuellement. Voir [[How_to_install_additional_workbenches/fr|Comment installer des ateliers supplémentaires]] et [[How_to_install_macros/fr|Comment installer des macros]].
* Vous pouvez également installer des extensions manuellement. Voir [[How_to_install_additional_workbenches/fr|Comment installer des ateliers supplémentaires]] et [[How_to_install_macros/fr|Comment installer des macros]].


<span id="Information_for_addon_developers"></span>
== Informations pour les développeurs ==
==Informations pour les développeurs d'extensions==


Voir [[Addon/fr#Informations_pour_les_d.C3.A9veloppeurs|Extension]]
Si vous avez développé un atelier ou une macro et souhaitez l'inclure dans le gestionnaire des extensions, lisez la procédure à suivre dans les pages des dépôts ([https://github.com/FreeCAD/FreeCAD-addons/ FreeCAD-addons] et [https://github.com/FreeCAD/FreeCAD-macros/ FreeCAD-macros]). Si vous ajoutez votre macro à la [[Macros_recipes/fr|Liste des macros]], il n'y a rien d'autre à faire, elle sera automatiquement sélectionnée par le gestionnaire Addon Manager.


<span id="Scripting"></span>
=== Ateliers Python ===
==Script==


{{Version/fr|0.21}}
Pour les ateliers Python, vous n'avez pas besoin d'une approbation spécifique pour que votre atelier soit ajouté au gestionnaire d'addons. De plus, comme votre module d'extension ne fait pas partie du code source de FreeCAD, vous pouvez choisir la licence qui vous convient. Si vous demandez que votre atelier soit ajouté à la liste par défaut du gestionnaire d'addons (nous n'ajouterons aucun nouvel atelier sans une demande de ses auteurs), soit en le demandant sur le forum, soit en ouvrant un problème sur le dépôt [https://github.com/FreeCAD/FreeCAD-addons/ FreeCAD-addons], votre code restera sur votre propre dépôt git, nous l'ajouterons simplement comme un sous-module au dépôt [https://github.com/FreeCAD/FreeCAD-addons/ FreeCAD-addons]. Bien sûr, avant d'ajouter votre atelier, nous y jetterons un coup d'œil et nous nous assurerons qu'il n'y a rien de potentiellement problématique. Pour plus de détails sur la structuration de votre addon, y compris des informations sur les métadonnées utilisées par le gestionnaire d'addons, voir [[Workbench_creation/fr|Création d'atelier]].


Certaines fonctionnalités du gestionnaire des extensions sont conçues pour être accessibles via l'API Python de FreeCAD. En particulier, une extension peut être installée, mise à jour et supprimée via l'interface Python. La plupart des utilisations de cette API nécessitent de créer un objet avec au moins trois attributs : {{Incode|name}}, {{Incode|branch}} et {{Incode|url}}. Par exemple :
=== Ateliers C++ ===

{{Code|code=
class MyAddonClass:
def __init__(self):
self.name = "TestAddon"
self.url = "https://github.com/Me/MyTestAddon"
self.branch = "main"
my_addon = MyAddonClass()
}}

Votre objet {{Incode|my_addon}} est maintenant prêt à être utilisé avec l'API du gestionnaire des extensions.

<span id="Commandline_(non-GUI)_use"></span>
===Utilisation de la ligne de commande (sans interface utilisateur)===

Si votre code doit installer ou mettre à jour une extension de manière synchrone (par exemple, sans interface graphique), le code peut être très simple :

{{Code|code=
from addonmanager_installer import AddonInstaller
installer = AddonInstaller(my_addon)
installer.run()
}}

Notez que ce code se bloque jusqu'à ce qu'il soit complet, donc vous ne devriez pas l'exécuter sur le fil principal de l'interface graphique. Pour le gestionnaire des extensions, "install" et "update" sont le même appel : si cette extension est déjà installée, et que git est disponible, il sera mis à jour via "git pull". Si elle n'est pas installée ou a été installée via une méthode d'installation non git, elle est téléchargée à partir de zéro (en utilisant git si disponible).

Pour désinstaller, utilisez :

{{Code|code=
from addonmanager_uninstaller import AddonUninstaller
uninstaller = AddonUninstaller(my_addon)
uninstaller.run()
}}

<span id="GUI_use"></span>
===Utilisation de l'interface utilisateur===

Si vous prévoyez que votre code s'exécute dans une interface graphique, ou que vous prenez en charge l'exécution de la version complète de FreeCAD, il est préférable d'exécuter votre installation dans un fil séparé non GUI, afin que l'interface graphique reste réactive. Pour ce faire, vérifiez d'abord si l'interface graphique est en cours d'exécution, et si c'est le cas, créez un {{Incode|QThread}}. (n'essayez pas de créer un {{Incode|QThread}} si l'interface graphique n'est pas active : ils nécessitent une boucle d'événements active pour fonctionner).

{{Code|code=
from PySide import QtCore
from addonmanager_installer import AddonInstaller

worker_thread = QtCore.QThread()
installer = AddonInstaller(my_addon)
installer.moveToThread(worker_thread)
installer.success.connect(installation_succeeded)
installer.failure.connect(installation_failed)
installer.finished.connect(worker_thread.quit)
worker_thread.started.connect(installer.run)
worker_thread.start() # Returns immediately
}}


Définissez ensuite les fonctions {{Incode|installation_succeded}} et {{Incode|installation_failed}} à exécuter dans chaque cas. Pour la désinstallation, vous pouvez utiliser la même technique, bien qu'elle soit généralement beaucoup plus rapide et qu'elle ne bloque pas l'interface graphique pendant très longtemps, donc en général il est plus sûr d'utiliser directement le désinstalleur, comme indiqué ci-dessus.
Si vous développez un atelier en C++, il ne peut pas être exécuté directement par les utilisateurs et doit d'abord être compilé. Vous avez alors deux options, soit vous fournissez vous-même les versions pré-compilées de votre atelier pour les différents systèmes d'exploitation, soit vous devez demander à ce que votre code soit fusionné dans le code source de FreeCAD. Pour cela, vous devez utiliser la licence LGPL (ou une licence entièrement compatible comme celle du MIT ou BSD) et présenter vos nouveaux outils à la communauté dans le [https://forum.freecadweb.org forum de FreeCAD] pour être examiné. Une fois que votre code a été testé et approuvé, vous devez créer une nouvelle branche dans le dépôt FreeCAD, si ce n’est pas encore fait, y insérer votre code et ouvrir une demande de retrait (pull request) afin que votre branche soit fusionnée dans le dépôt principal.




{{Docnav/fr
{{Docnav/fr
|[[Std_DlgCustomize/fr|Personnalisation]]
|[[Std_DlgCustomize/fr|Personnaliser]]
|
|
|[[Std_Tools_Menu/fr|Menu Outils]]
|[[Std_Tools_Menu/fr|Menu Outils]]
Line 96: Line 152:
{{Std Base navi{{#translation:}}}}
{{Std Base navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 11:33, 2 March 2024

Std Gestionnaire des extensions

Emplacement du menu
Outils → Gestionnaire des extensions
Ateliers
Tous
Raccourci par défaut
Aucun
Introduit dans la version
0.17
Voir aussi
Ateliers externes, Macros

Description

La commande Std Gestionnaire des extensions ouvre le gestionnaire des extensions. Avec le gestionnaire des extensions, vous pouvez installer et gérer des ateliers externes, des macros et des kits de préférence fournis par la communauté FreeCAD. Par défaut, les extensions disponibles proviennent de deux dépôts, FreeCAD-addons et de la page Liste des macros. Si GitPython et git sont installés sur votre système, des macros supplémentaires seront chargées depuis FreeCAD-macros. Des dépôts personnalisés peuvent être ajoutés dans les Préférences du gestionnaire des extensions.

En raison des modifications apportées à la plateforme GitHub en 2020, le gestionnaire des extensions ne fonctionne plus si vous utilisez la version 0.17 ou antérieure de FreeCAD. Vous devez passer à la version 0.18.5 ou ultérieure. Alternativement, vous pouvez installer les extensions manuellement, voir Remarques ci-dessous.

Utilisation

  1. Sélectionnez l'option Outils → Gestionnaire des extensions dans le menu.
  2. Si vous utilisez le gestionnaire des extensions pour la première fois, une boîte de dialogue s'ouvre pour vous avertir que les extensions du gestionnaire des extensions ne font pas officiellement partie de FreeCAD. Elle présente également plusieurs options relatives à l'utilisation des données du gestionnaire des extensions. Réglez ces options à votre convenance et appuyez sur le bouton OK pour confirmer et continuer.
  3. La boîte de dialogue du gestionnaire des extensions s'ouvre. Pour plus d'informations, voir Options.
  4. Si vous avez installé ou mis à jour un atelier, une nouvelle boîte de dialogue s'ouvre pour vous informer que vous devez redémarrer FreeCAD pour que les modifications soient prises en compte.

Options

  1. Le gestionnaire des extensions propose deux modèles d'affichage : "Condensé" et "Développé". Dans la vue "condensée", chaque extension occupe une seule ligne, et sa description est tronquée pour s'adapter à l'espace disponible. La vue "développée" affiche des détails supplémentaires, davantage de texte de la description ainsi que des informations sur le mainteneur, plus de détails sur l'installation, etc.
  2. Trois différents types d'extensions sont pris en charge : des ateliers, des macros, et des kits de préférences. Vous pouvez choisir d'afficher un seul type ou tous les types dans une seule liste.
  3. La liste peut être limitée pour n'afficher que les paquets installés, que les paquets avec des mises à jour disponibles, ou que les paquets qui ne sont pas encore installés.
  4. La liste peut être filtrée, en recherchant un mot clé dans le titre, la description et les balises (la description et les balises doivent être spécifiées par le développeur de l'extension dans les métadonnées de l'extension). Le filtre peut même être une expression régulière, pour un contrôle plus fin du terme de recherche exact.
  5. La vue développée affiche les informations sur la version disponible, la description, les informations sur le responsable et les informations sur la version d'installation, pour les paquets qui fournissent un fichier de métadonnées du package (ou pour les macros avec métadonnées intégrées).
  6. Les données des extensions sont mises en cache localement, avec une fréquence de mise à jour du cache variable définie dans les préférences de l'utilisateur.
  7. À tout moment, vous pouvez choisir de mettre à jour manuellement votre cache local pour voir les dernières mises à jour disponibles pour chaque extension.
  8. Les vérifications des mises à jour peuvent être configurées pour être automatiques, ou effectuées manuellement par un clic sur un bouton (configuré dans les préférences de l'utilisateur). Si GitPython et git sont installés sur votre système, les informations de mise à jour sont récupérées à l'aide de git. Sinon, les informations de mise à jour sont obtenues à partir de tout fichier de métadonnées présent.

Si vous cliquez sur une extension dans cette vue, la page des détails de l'extension s'affiche :

La page de détails présente des boutons permettant d'installer, de désinstaller, de mettre à jour et de désactiver temporairement une extensions. Pour les extensions installées, elle indique la version installée en cours et la date d'installation, et précise s'il s'agit de la version la plus récente disponible. Une fenêtre de navigateur Web intégrée affiche la page README de l'extension (pour les environnements de travail et les kits de préférences) ou la page Wiki (pour les macros).

Préférences

Les préférences du gestionnaire des extensions se trouvent dans Réglage des préférences. introduit dans la version 0.20

Tri par score

introduit dans la version 0.22

Le gestionnaire des extensions permet de trier les extensions en fonction d'un certain nombre de critères. La plupart d'entre eux sont téléchargés directement à partir des serveurs de FreeCAD (qui les met en cache à partir de GitHub et du wiki FreeCAD), mais l'un d'entre eux, le "Score", n'est pas du tout fourni par FreeCAD, et n'apparaît comme une option que si le paramètre URL des scores est fourni dans les préférences.

L'URL du score est un chemin d'accès à un document distant au format JSON répertoriant les extensions et un certain "score". Le score peut être calculé de la manière souhaitée par le fournisseur de données, mais il doit s'agir d'une valeur entière, les scores les plus élevés étant "meilleurs" dans un certain sens. Toute extension non répertoriée se voit attribuer un score de zéro en interne. Le format du fichier est un dictionnaire JSON unique dont la clé est l'URL de l'extension (pour les ateliers et les kits de préférences) ou le nom de la macro (pour les macros). Voir cette source de données pour un exemple (notez que le score correspond simplement à la longueur de la description de l'extension et qu'il n'est destiné qu'à des fins de test et de démonstration).

Remarques

  • L'utilisation des extensions n'est pas limitée à la version FreeCAD à partir de laquelle ils ont été installés. Vous pourrez également les utiliser dans n'importe quelle autre version de FreeCAD, prise en charge par l'extension, que vous pourriez avoir sur votre système.
  • Les extensions disponibles dans le gestionnaire des extensions ne font pas partie du programme officiel FreeCAD et ne sont pas pris en charge par l'équipe de développement principale de FreeCAD. Vous devez lire attentivement les informations fournies pour vous assurer que vous savez ce que vous installez.
  • Les rapports de bogues et les demandes de fonctionnalités doivent être adressés directement au créateur de l'extension en visitant le site Web indiqué. De nombreux développeurs d'extensions sont des utilisateurs réguliers du forum de FreeCAD et peuvent également y être contactés.
  • Si le paquet GitPython est installé sur votre ordinateur, le gestionnaire des extensions l'utilisera, ce qui accélérera les téléchargements.
  • Vous pouvez également installer des extensions manuellement. Voir Comment installer des ateliers supplémentaires et Comment installer des macros.

Informations pour les développeurs d'extensions

Voir Extension

Script

introduit dans la version 0.21

Certaines fonctionnalités du gestionnaire des extensions sont conçues pour être accessibles via l'API Python de FreeCAD. En particulier, une extension peut être installée, mise à jour et supprimée via l'interface Python. La plupart des utilisations de cette API nécessitent de créer un objet avec au moins trois attributs : name, branch et url. Par exemple :

class MyAddonClass:
    def __init__(self):
        self.name = "TestAddon"
        self.url = "https://github.com/Me/MyTestAddon"
        self.branch = "main"
my_addon = MyAddonClass()

Votre objet my_addon est maintenant prêt à être utilisé avec l'API du gestionnaire des extensions.

Utilisation de la ligne de commande (sans interface utilisateur)

Si votre code doit installer ou mettre à jour une extension de manière synchrone (par exemple, sans interface graphique), le code peut être très simple :

from addonmanager_installer import AddonInstaller
installer = AddonInstaller(my_addon)
installer.run()

Notez que ce code se bloque jusqu'à ce qu'il soit complet, donc vous ne devriez pas l'exécuter sur le fil principal de l'interface graphique. Pour le gestionnaire des extensions, "install" et "update" sont le même appel : si cette extension est déjà installée, et que git est disponible, il sera mis à jour via "git pull". Si elle n'est pas installée ou a été installée via une méthode d'installation non git, elle est téléchargée à partir de zéro (en utilisant git si disponible).

Pour désinstaller, utilisez :

from addonmanager_uninstaller import AddonUninstaller
uninstaller = AddonUninstaller(my_addon)
uninstaller.run()

Utilisation de l'interface utilisateur

Si vous prévoyez que votre code s'exécute dans une interface graphique, ou que vous prenez en charge l'exécution de la version complète de FreeCAD, il est préférable d'exécuter votre installation dans un fil séparé non GUI, afin que l'interface graphique reste réactive. Pour ce faire, vérifiez d'abord si l'interface graphique est en cours d'exécution, et si c'est le cas, créez un QThread. (n'essayez pas de créer un QThread si l'interface graphique n'est pas active : ils nécessitent une boucle d'événements active pour fonctionner).

from PySide import QtCore
from addonmanager_installer import AddonInstaller

worker_thread = QtCore.QThread()
installer = AddonInstaller(my_addon)
installer.moveToThread(worker_thread)
installer.success.connect(installation_succeeded)
installer.failure.connect(installation_failed)
installer.finished.connect(worker_thread.quit)
worker_thread.started.connect(installer.run)
worker_thread.start() # Returns immediately

Définissez ensuite les fonctions installation_succeded et installation_failed à exécuter dans chaque cas. Pour la désinstallation, vous pouvez utiliser la même technique, bien qu'elle soit généralement beaucoup plus rapide et qu'elle ne bloque pas l'interface graphique pendant très longtemps, donc en général il est plus sûr d'utiliser directement le désinstalleur, comme indiqué ci-dessus.