Skip to content

Latest commit

 

History

History
94 lines (75 loc) · 2.45 KB

File metadata and controls

94 lines (75 loc) · 2.45 KB

🔖 Version Management System

Problem gelöst

Die Anwendung zeigte immer Version "1.2.1" an, obwohl neuere GitHub Releases existierten.

✅ Neue dynamische Versionserkennung

🎯 Prioritätenreihenfolge:

  1. __version__.py - Dedicated version file
  2. VERSION - Plain text version file
  3. pyproject.toml - Project configuration
  4. Git Tags - Latest repository tag
  5. Fallback - Default version (1.9.0)

🔧 Implementierung:

def get_version():
    """Ermittelt die aktuelle Version dynamisch"""
    # 1. __version__.py Import
    # 2. VERSION Datei lesen
    # 3. pyproject.toml parsen
    # 4. Git-Tag ermitteln (git describe --tags --abbrev=0)
    # 5. Fallback zu "1.9.0"

📁 Versionsdateien synchronisiert

Aktuelle Version: 1.9.1

  • VERSION: 1.9.1
  • __version__.py: 1.9.1
  • pyproject.toml: 1.9.1
  • ✅ Git Tag: v1.9.1

🚀 Automatische Release-Synchronisation

Bei neuen GitHub Releases:

  1. GitHub Actions erstellt neuen Tag
  2. Versionsdateien werden automatisch aktualisiert
  3. App zeigt korrekte Version an

Workflow:

# Neuer Release wird erstellt → v1.9.2
# Automatisch synchronisiert:
echo "1.9.2" > VERSION
sed -i 's/__version__ = ".*"/__version__ = "1.9.2"/' __version__.py
sed -i 's/version = ".*"/version = "1.9.2"/' pyproject.toml

🧪 Versionsprüfung

Terminal-Test:

python3 -c "from bash_script_maker import __version__; print(__version__)"

App-Test:

  • Header zeigt: "Version 1.9.1 - Professioneller Bash-Script-Generator"
  • About-Dialog zeigt: "Version: 1.9.1"
  • Tooltips zeigen: "Bash-Script-Maker v1.9.1"

🔄 Zukünftige Verbesserungen

Option 1: GitHub API Integration

def get_latest_github_version():
    import requests
    api_url = "https://api.github.com/repos/securebitsorg/Bash-Script-Maker/releases/latest"
    # Hole neueste Release-Version

Option 2: Automatische Synchronisation

# .github/workflows/sync-version.yml
on:
  release:
    types: [published]
jobs:
  sync-version:
    - name: Update version files
    - name: Commit changes

✨ Vorteile der neuen Lösung

  • 🎯 Immer aktuelle Version in der App
  • 🔄 Automatische Synchronisation mit GitHub
  • 🛡️ Mehrere Fallback-Optionen für Robustheit
  • 📦 Konsistente Versionierung über alle Dateien
  • 🧪 Einfache Testbarkeit der Versionslogik

Version Management implementiert in v1.9.1 🚀