Contexte
Ashita v4 est un framework de modification de client de jeu. J’ai remarqué que la communauté manquait d’un moyen centralisé et robuste pour gérer l’installation, la mise à jour et la résolution des dépendances des addons et plugins personnalisés.
J’ai décidé de créer ashita-manager, un gestionnaire de paquets graphique complet écrit en Python utilisant PyQt6.


Implémentation technique
Architecture
- Interface graphique (GUI) : Création d’une interface graphique robuste et conviviale avec PyQt6, permettant aux utilisateurs de parcourir, d’installer, de mettre à jour et de gérer facilement les scripts.
- Résolution des dépendances : Implémentation d’algorithmes pour résoudre et installer automatiquement les dépendances requises.
- Contrôle de version : Intégration avec Git et les API de GitHub pour récupérer des versions spécifiques et suivre les incohérences de versions.
Fonctionnalités clés
- Installation depuis Git/Version (Release) : Il suffit de coller l’URL d’un dépôt ; l’application détecte automatiquement le type, vous permet de choisir une branche, et l’installe.
- Scan initial : Recherche et indexe automatiquement les addons et plugins existants dans l’installation d’Ashita au premier lancement.
- Éditeur de scripts intégré : Ajoutez ou supprimez des plugins/addons, basculez les ordres de chargement et gérez les raccourcis clavier, les alias et les commandes de configuration directement depuis l’interface graphique.
- Exécutable autonome : Construit et packagé sous forme de
.exeWindows autonome en utilisant PyInstaller pour une distribution facile.
Pourquoi c’est important
La création d’un gestionnaire de paquets est un défi complexe d’architecture logicielle. Cela démontre :
- La création d’outils : La capacité à construire des outils robustes pour les développeurs internes et la communauté.
- La conception de systèmes : La gestion de l’état, la synchronisation locale contre distante, et les cas extrêmes (pannes de réseau, fichiers corrompus).
- La contribution open source : Créer quelque chose qui profite activement à une plus large communauté de développeurs et d’utilisateurs.
Lien
Context
Ashita v4 is a game client modification framework. I noticed that the community lacked a centralized and robust way to manage the installation, updating, and dependency resolution of custom addons and plugins.
I decided to create ashita-manager, a comprehensive graphical package manager written in Python using PyQt6.


Technical implementation
Architecture
- Graphical user Interface (GUI): Created a robust and user-friendly GUI with PyQt6, allowing users to easily browse, install, update, and manage scripts.
- Dependency resolution: Implemented algorithms to automatically resolve and install required dependencies.
- Version control: Integrated with Git and GitHub APIs to fetch specific releases and track version inconsistencies.
Key features
- Install from Git/Release: Simply paste a repository URL; the application automatically detects the type, lets you choose a branch, and installs it.
- Initial scan: Automatically finds and indexes existing addons and plugins in the Ashita installation on first launch.
- Integrated script editor: Add or remove plugins/addons, toggle load orders, and manage keybinds, aliases, and configuration commands directly from the GUI.
- Standalone executable: Built and packaged as a standalone Windows
.exeusing PyInstaller for easy distribution.
Why it matters
Building a package manager is a complex software architecture challenge. It demonstrates:
- Tooling creation: The ability to build robust tools for internal developers and the community.
- Systems design: State management, local vs. remote synchronization, and edge cases (network failures, corrupted files).
- Open source contribution: Creating something that actively benefits a broader community of developers and users.