Μετάβαση στο περιεχόμενο

Εκδόσεις

Κάθε αντικείμενο που δημιουργείται από αυτό το αποθετήριο έχει μια αντίστοιχη εγγραφή στη σελίδα GitHub Releases. Αυτή η σελίδα είναι η επίσημη ροή για ό,τι έχει κυκλοφορήσει, πότε, και τι άλλαξε.

Όλες οι εκδόσεις — web εφαρμογές, το API, και εγγενείς εφαρμογές — αναγράφονται στο github.com/jonot-io/jonot/releases.

Εγγενείς εφαρμογές — ετικέτες σημαντικής έκδοσης, προωθούνται χειροκίνητα από τον μηχανικό που κόβει την έκδοση:

  • apps/host (υπολογιστή): host-v<semver> — π.χ. host-v1.2.3
  • apps/native-kiosk: android-kiosk-v<semver> — π.χ. android-kiosk-v1.4.0
  • apps/native-desk: android-desk-v<semver> — π.χ. android-desk-v1.4.0

Web εφαρμογές και API — χρονοσημασμένοι κυλιόμενοι δείκτες που δημιουργούνται αυτόματα μετά από κάθε επιτυχημένη παραγωγική ανάπτυξη:

  • apps/api (Worker): api-r<YYYYMMDD-HHMM>-<sha7> — π.χ. api-r20260523-1542-abc1234
  • Web SPA (9 εφαρμογές): web-<app>-r<YYYYMMDD-HHMM>-<sha7> — π.χ. web-admin-r20260523-1542-abc1234

Εγγενείς εφαρμογές (host, android-kiosk, android-desk)

Ενότητα με τίτλο «Εγγενείς εφαρμογές (host, android-kiosk, android-desk)»

Οι εκδόσεις για εγγενή αντικείμενα ενεργοποιούνται με την προώθηση μιας ετικέτας που ταιριάζει με το πρόθεμα του αντικειμένου. Η ροή εργασίας CI χτίζει, υπογράφει, και δημοσιεύει στο κατάλληλο κατάστημα, και έπειτα δημιουργεί μια έκδοση GitHub με συνημμένα δυαδικά αρχεία.

Για να κόψετε μια έκδοση:

Terminal window
git tag host-v1.0.0
git push origin host-v1.0.0

Αντικαταστήστε το host με android-kiosk ή android-desk όπως αρμόζει, και αναβαθμίστε την έκδοση ώστε να ταιριάζει με την εγγραφή versionName / libs.versions.toml στην εφαρμογή.

Κάθε έκδοση GitHub για μια εγγενή εφαρμογή περιλαμβάνει:

  • android-kiosk / android-desk — υπογεγραμμένο AAB, χαρτογράφηση ProGuard, και το ημερολόγιο αλλαγών του Play Store (whatsnew-en-US.txt).
  • host.deb, .rpm, SHA256SUMS, και SHA256SUMS.asc (υπογεγραμμένο με GPG).

Οι προωθήσεις στο main αναπτύσσονται αυτόματα στο περιβάλλον ανάπτυξης. Η παραγωγή προωθείται μετακινώντας με ισχύ μια κινητή ετικέτα έκδοσης στο επιθυμητό commit και προωθώντας την:

Terminal window
# Αποστολή όλων (όλες οι εννέα SPA + API):
git tag -f release <sha> && git push -f origin release
# Αποστολή μόνο του API:
git tag -f release-api <sha> && git push -f origin release-api
# Αποστολή μιας μόνο SPA (π.χ. admin):
git tag -f release-admin <sha> && git push -f origin release-admin

Η ετικέτα-ομπρέλα release αποστέλλει όλες τις εννέα SPA και το API σε μία μόνο προώθηση, παρακάμπτοντας το όριο GitHub που καταστέλλει το CI όταν προωθούνται περισσότερες από τρεις ετικέτες ταυτόχρονα. Μη αναγνωρισμένα ονόματα ετικετών αποτυγχάνουν στο βήμα επίλυσης αντί να αναπτύσσονται σιωπηλά.

Ένας δείκτης έκδοσης web-<app>-r… ή api-r… δημιουργείται μετά από κάθε επιτυχημένη παραγωγική ανάπτυξη και επισημαίνεται --prerelease ώστε να μην εκτοπίζει το σήμα “Τελευταία έκδοση” της εγγενής σημαντικής έκδοσης. Αυτοί οι δείκτες είναι το επίσημο ημερολόγιο αλλαγών — αρχεία του τι κυκλοφόρησε, όχι πύλες.

Η έκδοση του API επίσης επισυνάπτει ένα αρχείο migrations.txt που παραθέτει κάθε αρχείο μετάβασης D1 παρόν σε αυτό το commit, ώστε να μπορείτε να απαντήσετε “κυκλοφόρησε η μετάβαση N;” από τη διεπαφή Releases.

Οι σημειώσεις έκδοσης δημιουργούνται αυτόματα από το GitHub από τους τίτλους των συγχωνευμένων pull request μεταξύ της προηγούμενης ετικέτας έκδοσης και της τρέχουσας. Τα προθέματα Conventional Commit (feat:, fix:, perf:, …) στους τίτλους PR ομαδοποιούν οπτικά τις αλλαγές εντός του σώματος των σημειώσεων.