update/
Skrypty do aktualizacji wersji, zarządzania zmianami i publikacji pakietu.
Zawartość
version.sh
— główny skrypt do aktualizacji wersji i publikacji pakietusrc.py
— skrypt do aktualizacji numeru wersji w plikach źródłowychchangelog.py
— skrypt do generowania i aktualizacji pliku CHANGELOG.mdgit.sh
— skrypt do publikacji nowej wersji na GitHubpypi.sh
— skrypt do publikacji pakietu na PyPIenv_manager.py
— moduł do zarządzania konfiguracją projektuconfig.py
— moduł konfiguracyjny dla skryptów aktualizacyjnych
Konfiguracja projektu
Konfiguracja projektu jest przechowywana w pliku .env
w głównym katalogu projektu. Plik ten jest tworzony automatycznie przy pierwszym uruchomieniu skryptów, na podstawie pliku .env.example
.
Dostępne zmienne konfiguracyjne:
PROJECT_NAME
— nazwa projektuPACKAGE_PATH
— ścieżka do katalogu pakietu (względem katalogu głównego projektu)
Jeśli plik .env
nie istnieje lub zmienne nie są zdefiniowane, skrypty spróbują wykryć wartości automatycznie lub zapytają użytkownika.
Użycie
Aby zaktualizować wersję i opublikować pakiet:
# Uruchom główny skrypt aktualizacji
bash update/version.sh
Skrypt wykona następujące operacje:
- Wczyta konfigurację projektu z pliku
.env
lub zapyta użytkownika - Utworzy i aktywuje środowisko wirtualne
- Zaktualizuje numer wersji w plikach źródłowych
- Wygeneruje wpis w CHANGELOG.md
- Opublikuje zmiany na GitHub
- Opublikuje pakiet na PyPI
Rozwiązywanie problemów
Jeśli podczas publikacji na GitHub pojawi się błąd:
Updates were rejected because the remote contains work that you do not have locally
Należy wykonać git pull
przed ponownym uruchomieniem skryptu:
git pull
bash update/version.sh
Jeśli tag już istnieje:
fatal: tag 'vX.Y.Z' already exists
Należy usunąć istniejący tag przed ponownym uruchomieniem skryptu:
git tag -d vX.Y.Z
git push origin --delete vX.Y.Z
bash update/version.sh
Zarządzanie konfiguracją
Aby ręcznie utworzyć lub zaktualizować plik .env
:
python update/env_manager.py
Skrypt wyświetli aktualną konfigurację projektu i utworzy plik .env
, jeśli nie istnieje.