Date: 24 décembre 2025
Pour: DnD-5th-Edition-API avec dnd-5e-core
- Préparation de l'Environnement
- Build Local (Développement)
- Build Multi-OS
- Publication sur GitHub Releases
- Publication dnd-5e-core sur PyPI
- Troubleshooting
# Clone les repositories
git clone <url>/dnd-5e-core.git
git clone <url>/DnD-5th-Edition-API.git
# Install dnd-5e-core en mode développement
cd dnd-5e-core
pip install -e .
# Install les dépendances des jeux
cd ../DnD-5th-Edition-API
pip install -r requirements-dev-new.txt# Test que dnd-5e-core est accessible
python -c "from dnd_5e_core.entities import Character; print('✅ dnd-5e-core OK')"
# Test les jeux
python main.py # Console version
python dungeon_menu_pygame.py # Pygame versioncd DnD-5th-Edition-API
# Build tous les jeux
./build_all.sh
# Ou build individuellement
pyinstaller main.spec --clean
pyinstaller dungeon_menu_pygame.spec --cleancd DnD-5th-Edition-API
REM Build tous les jeux
build_all.bat
REM Ou build individuellement
pyinstaller main.spec --clean
pyinstaller dungeon_menu_pygame.spec --cleandist/
├── dnd-console # ou dnd-console.exe sur Windows
└── dnd-pygame # ou dnd-pygame.exe sur Windows
# macOS/Linux
./dist/dnd-console
./dist/dnd-pygame
# Windows
dist\dnd-console.exe
dist\dnd-pygame.exeCréer .github/workflows/build.yml :
name: Build Multi-OS
on:
push:
tags:
- 'v*' # Trigger sur tags version (v1.0.0, etc.)
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.10']
steps:
- uses: actions/checkout@v3
- name: Checkout dnd-5e-core
uses: actions/checkout@v3
with:
repository: your-org/dnd-5e-core
path: dnd-5e-core
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install -e dnd-5e-core
pip install -r requirements-dist.txt
pip install pyinstaller
- name: Build with PyInstaller
run: |
pyinstaller main.spec --clean
pyinstaller dungeon_menu_pygame.spec --clean
- name: Rename executables (Linux/macOS)
if: runner.os != 'Windows'
run: |
mv dist/dnd-console dist/dnd-console-${{ runner.os }}
mv dist/dnd-pygame dist/dnd-pygame-${{ runner.os }}
- name: Rename executables (Windows)
if: runner.os == 'Windows'
run: |
ren dist\dnd-console.exe dnd-console-Windows.exe
ren dist\dnd-pygame.exe dnd-pygame-Windows.exe
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: builds-${{ runner.os }}
path: dist/*./build_all.sh
mv dist/dnd-console dist/dnd-console-1.0-macos
mv dist/dnd-pygame dist/dnd-pygame-1.0-macosbuild_all.bat
ren dist\dnd-console.exe dnd-console-1.0-windows.exe
ren dist\dnd-pygame.exe dnd-pygame-1.0-windows.exe./build_all.sh
mv dist/dnd-console dist/dnd-console-1.0-linux
mv dist/dnd-pygame dist/dnd-pygame-1.0-linux# Dans DnD-5th-Edition-API
git tag -a v1.0.0 -m "Version 1.0.0 - First stable release"
git push origin v1.0.0- Aller sur GitHub → Releases → "Draft a new release"
- Choisir le tag
v1.0.0 - Titre: "D&D 5e Games v1.0.0"
- Description:
# D&D 5e Games v1.0.0
Complete D&D 5th Edition games with multiple interfaces.
## 🎮 Available Games
### Console Version
Text-based D&D 5e experience with full rules implementation.
### Pygame Version
Graphical dungeon crawler with:
- Spell casting
- Inventory management
- Melee & ranged combat
- Trading post
- Monster statistics
## 📥 Download
### Windows
- [dnd-console-1.0-windows.exe](link) (15 MB)
- [dnd-pygame-1.0-windows.exe](link) (25 MB)
### macOS
- [dnd-console-1.0-macos](link) (15 MB)
- [dnd-pygame-1.0-macos](link) (25 MB)
### Linux
- [dnd-console-1.0-linux](link) (15 MB)
- [dnd-pygame-1.0-linux](link) (25 MB)
## 🚀 Installation
See [INSTALLATION.md](link) for detailed instructions.
## 📚 Documentation
- [User Manual](link)
- [Developer Guide](link)
- [dnd-5e-core Documentation](link)
## 🐛 Known Issues
None reported yet!
## ✨ What's New
- First stable release
- Complete D&D 5e rules
- Multi-platform support
- Optimized executablesDrag & drop les fichiers compilés :
- dnd-console-1.0-windows.exe
- dnd-console-1.0-macos
- dnd-console-1.0-linux
- dnd-pygame-1.0-windows.exe
- dnd-pygame-1.0-macos
- dnd-pygame-1.0-linux
Cliquer sur "Publish release"
pip install build twinecd dnd-5e-core
# Vérifier setup.py
python setup.py check
# Nettoyer builds précédents
rm -rf dist/ build/ *.egg-info# Créer distributions source et wheel
python -m build
# Résultat dans dist/
# - dnd-5e-core-0.1.0.tar.gz
# - dnd_5e_core-0.1.0-py3-none-any.whl# Upload sur TestPyPI
python -m twine upload --repository testpypi dist/*
# Test installation
pip install --index-url https://test.pypi.org/simple/ dnd-5e-core
# Vérifier
python -c "from dnd_5e_core.entities import Character; print('✅ Package OK')"# Upload sur PyPI
python -m twine upload dist/*
# Vérifier sur https://pypi.org/project/dnd-5e-core/
# Test installation
pip install dnd-5e-corecd ../DnD-5th-Edition-API
# Mettre à jour requirements-dist.txt
# dnd-5e-core>=0.1.0 # Déjà présent
# Test
pip install -r requirements-dist.txt
python main.pySolution:
# Vérifier l'installation
pip show dnd-5e-core
# Réinstaller en mode développement
pip install -e ../dnd-5e-coreSolution: Ajouter le module à hiddenimports dans le .spec file.
hiddenimports=[
'missing_module',
# ...
],Solution: Vérifier que les données sont dans datas du .spec:
datas=[
('path/to/data', 'data'), # Format: (source, destination)
],Solutions:
- Activer UPX compression:
upx=True - Exclure modules inutiles:
excludes=['matplotlib', 'tkinter'] - Vérifier que data/ n'est pas dupliqué (doit être dans dnd-5e-core)
Solution: Test avec --debug=imports:
pyinstaller main.spec --debug=imports
./dist/dnd-console # Voir les imports manquantsSolution:
chmod +x dist/dnd-console
chmod +x dist/dnd-pygame- Tests unitaires passent
- Jeux fonctionnent en mode développement
- dnd-5e-core est à jour
- Version bump dans setup.py et init.py
- Build réussi sur macOS
- Build réussi sur Windows
- Build réussi sur Linux
- Executables testés sur chaque OS
- Tailles des executables vérifiées
- Tag Git créé
- GitHub Release créée
- Executables uploadés
- Documentation à jour
- CHANGELOG.md mis à jour
- Tests passent
- Version bump
- Build package
- Upload TestPyPI
- Test installation TestPyPI
- Upload PyPI production
- Tag Git créé
| Jeu | Windows | macOS | Linux |
|---|---|---|---|
| Console | ~15 MB | ~15 MB | ~15 MB |
| Pygame | ~25 MB | ~25 MB | ~25 MB |
- Temps de build: 2-5 minutes par jeu
- Temps de startup: < 2 secondes
- Mémoire utilisée: 50-100 MB
- Windows: 10, 11
- macOS: 10.15+ (Catalina et plus)
- Linux: Ubuntu 20.04+, Debian 10+, Fedora 33+
Dernière mise à jour: 24 décembre 2025
Version: 1.0