l10n.gr

Ζωντανή ανάπτυξη με l10n-gr dev

Γράφετε κώδικα στο PyCharm ή σε όποιο IDE προτιμάτε, και το staging του έργου τον φορτώνει λίγα δευτερόλεπτα μετά την αποθήκευση. Έτσι δοκιμάζετε το API του l10n.gr σε πραγματική βάση, χωρίς να περιμένετε το pipeline.

Πώς λειτουργεί

Το l10n-gr dev τρέχει στον υπολογιστή σας, μέσα στο αποθετήριο του έργου. Δουλεύετε και αποθηκεύετε κανονικά. Όταν πατήσετε Enter στο τερματικό του, το εργαλείο στέλνει τις αλλαγές σας στο console. Εκεί περνούν τους ίδιους ελέγχους με το pipeline. Αν δεν βρεθεί εύρημα που μπλοκάρει, το staging τις φορτώνει.

Το staging φορτώνει τις νέες εκδοχές όλων των αρχείων σας. Ένα νέο module εγκαθίσταται, και όσα modules αλλάξατε αναβαθμίζονται, μαζί με τα πακέτα Python που δηλώνουν στο __manifest__.py. Το log του staging εμφανίζεται στο ίδιο τερματικό, με τους ίδιους κανόνες όπως στην ενότητα «Logs».

Το staging παραμένει απομονωμένο σε όλη τη συνεδρία: τα εξερχόμενα email, οι προγραμματισμένες ενέργειες και οι διαβιβάσεις προς την ΑΑΔΕ και τον πάροχο μένουν απενεργοποιημένα.

Ό,τι μπορεί να χρησιμοποιεί ο κώδικάς σας από το l10n.gr περιγράφεται στο API για συνεργάτες →

Εγκατάσταση

Εγκαταστήστε το εργαλείο με pip install l10n-gr, στο περιβάλλον Python του υπολογιστή σας ή του έργου σας στο PyCharm. Χρειάζεται μόνο η Python.

Έναρξη συνεδρίας

  1. Στο console ανοίξτε την ενότητα «Staging» του έργου και, στην κάρτα «Ζωντανή ανάπτυξη», πατήστε «Έναρξη συνεδρίας». Το console δείχνει ένα token μόνο μία φορά: αντιγράψτε το.
  2. Στο τερματικό του PyCharm, στον φάκελο του αποθετηρίου, τρέξτε l10n-gr dev --project acme, με το όνομα του δικού σας έργου στη θέση του acme. Στην πρώτη εκτέλεση το εργαλείο ζητά το token.
  3. Για να ξεκινά με ένα κλικ, δημιουργήστε στο PyCharm ένα Run configuration με την ίδια εντολή.
Η κάρτα «Ζωντανή ανάπτυξη» στο staging, με τη συνεδρία σε εξέλιξη και τις αλλαγές της

Κάθε έργο έχει μία μόνο ενεργή συνεδρία κάθε φορά. Η συνεδρία ισχύει μόνο για το staging του συγκεκριμένου έργου και δεν έχει πρόσβαση στην παραγωγή, στο Odoo shell ή στα αντίγραφα ασφαλείας.

Φόρτωση στο staging

Αποθηκεύετε όσα αρχεία θέλετε και το τερματικό τα μετρά. Όταν θέλετε να τα δείτε στο staging, πατάτε Enter στο τερματικό του l10n-gr dev. Ο έλεγχος και η φόρτωση διαρκούν από λίγα δευτερόλεπτα έως περίπου ένα λεπτό, ανάλογα με το μέγεθος της αλλαγής. Όσο το Odoo ξεκινά ξανά, το staging δεν απαντά. Αν προτιμάτε να φορτώνονται οι αλλαγές σε κάθε αποθήκευση, ξεκινήστε με l10n-gr dev --watch. Αν βρεθεί εύρημα που μπλοκάρει, το τερματικό το δείχνει με το αρχείο και τη γραμμή. Το staging κρατά την τελευταία αποδεκτή εκδοχή μέχρι να το διορθώσετε.

Κάθε αλλαγή, αποδεκτή ή όχι, καταγράφεται με τα αρχεία και τα ευρήματα του ελέγχου.

Τέλος συνεδρίας

Η συνεδρία τελειώνει όταν πατήσετε «Τέλος συνεδρίας» στο console ή Ctrl+C στο τερματικό, μετά από 8 ώρες χωρίς φόρτωση, ή όταν το pipeline κάνει deploy στο staging. Τότε το staging επιστρέφει στην εγκεκριμένη έκδοση: τα modules που εγκαταστάθηκαν στη συνεδρία απεγκαθίστανται και τα υπόλοιπα γυρίζουν στον κώδικα της έκδοσης. Η βάση του μένει ως έχει.

Για να κρατήσετε τη δουλειά σας, κάντε commit και push στο GitHub. Το pipeline την ελέγχει, κάνει deploy στο staging, και από εκεί την προωθείτε στην παραγωγή όπως κάθε άλλη αλλαγή. Στην παραγωγή δεν φτάνει ποτέ κώδικας απευθείας από μια ζωντανή συνεδρία.

Τι δεν περιλαμβάνει

Η συνεδρία δεν δίνει SSH, SFTP, απομακρυσμένο interpreter ή debugger, γιατί μέσα από αυτά θα ήταν ορατός ο κώδικας της σουίτας. Για να εντοπίσετε ένα σφάλμα, χρησιμοποιήστε το log και, για τα δεδομένα, το Odoo shell του console.