Συνεισφορά
Ρύθμιση
Κάνε μία μικρή αλλαγή στο σωστό σημείο και στείλ’ την ως pull request.
Πριν ξεκινήσεις
Σύνδεσμος προς Πριν ξεκινήσεις- Άνοιξε πρώτα ένα issue, ή σχολίασε σε ένα που υπάρχει. Γράψε τι θες να αλλάξεις και γιατί.
- Περίμενε απάντηση, για να μη φτιάξεις κάτι που δεν θα γίνει δεκτό.
- Ολοκλήρωσε τη Ρύθμιση για να μπορείς να κάνεις build και να τρέξεις το HolyArrs.
Οι ερωτήσεις πάνε στο Discord. Οι ιδέες πάνε στο r/HolyArrs. Τα issues είναι για σφάλματα και για το roadmap.
Στείλε το πρώτο σου pull request
Σύνδεσμος προς Στείλε το πρώτο σου pull request-
Βρες το module όπου ανήκει η αλλαγή σου. Τα ονόματα στο Modules ταιριάζουν με ονόματα φακέλων, άρα μια λάθος ειδοποίηση στο Discord είναι αλλαγή στο
alerts. -
Κάνε την αλλαγή στα
app/backend/internal/<module>/καιapp/frontend/src/lib/<module>/. Κράτα τη σε μία διόρθωση ή μία λειτουργία. -
Κάνε build τη διαδικτυακή εφαρμογή, μετά το πρόγραμμα, και δοκίμασε την αλλαγή στο πρόγραμμα περιήγησης. Δες τη Ρύθμιση.
-
Τρέξε τους ελέγχους στις Δοκιμές.
Δεν θα πρέπει να δεις καμία αποτυχία.
-
Αν άλλαξες μια σελίδα, τρέξε το end-to-end project της, για παράδειγμα
npm --prefix app/frontend run e2e -- --project=movies. -
Άνοιξε το pull request. Σύνδεσε το issue, γράψε τι άλλαξε και πώς το δοκίμασες, και πρόσθεσε ή ενημέρωσε δοκιμές για την αλλαγή.
-
Στο πρώτο σου pull request, ένα bot σου ζητά να υπογράψεις τη συμφωνία άδειας συνεισφέροντα. Απάντησε με τη μία πρόταση που ζητά.
Επιλογές
Σύνδεσμος προς ΕπιλογέςΠού πηγαίνει μια αλλαγή
Σύνδεσμος προς Πού πηγαίνει μια αλλαγή| Αλλαγή | Πήγαινε στο |
|---|---|
| Μια νέα διαδρομή | Modules |
| Ένα νέο module | Modules. Άνοιξε πρώτα ένα issue |
| Μια κρατημένη λειτουργία | Ρύθμιση |
| Μια έκδοση | Κυκλοφορία εκδόσεων. Μόνο για συντηρητές |
Πώς είναι ένα καλό pull request
Σύνδεσμος προς Πώς είναι ένα καλό pull request- Γράψε σχόλια που εξηγούν γιατί ο κώδικας κάνει αυτό που κάνει. Όχι αριθμούς του roadmap, ημερομηνίες, ονόματα ή em dashes στα σχόλια.
- Άφησε τη διατύπωση της εφαρμογής ως έχει, εκτός αν το issue αφορά τη διατύπωση.
- Κράτα όπως είναι τις διαδρομές API που έχουν ήδη κυκλοφορήσει, τα ονόματα πεδίων, τα κλειδιά ρυθμίσεων, τα ονόματα πινάκων και τα ονόματα εργασιών. Πρόσθεσε, μην μετονομάζεις ποτέ.
Αν δεν δουλεύει
Σύνδεσμος προς Αν δεν δουλεύειΣύμπτωμα. Αποτυγχάνει ένας έλεγχος δομής. Αιτία. Το μήνυμα ονομάζει το αρχείο και τον κανόνα. Λύση. Μετακίνησε τον κώδικα, ή πέρασε απλά δεδομένα από το ψηλότερο module. Δες το Modules.
Σύμπτωμα. Η διαδικτυακή εφαρμογή φαίνεται παλιά. Αιτία. Το πρόγραμμα σερβίρει το build που έχει ενσωματώσει. Λύση. Κάνε ξανά build τη διαδικτυακή εφαρμογή πριν από το πρόγραμμα.
Σύμπτωμα. Οι end-to-end δοκιμές δεν ξεκινούν.
Αιτία. Το πρόγραμμα περιήγησης των δοκιμών δεν είναι εγκατεστημένο.
Λύση. Τρέξε npx --prefix app/frontend playwright install chromium.
Για έμπειρους
Σύνδεσμος προς Για έμπειρουςΚανόνες που πρέπει να τηρεί ένα pull request
- Ένα module μιλά σε άλλο module μόνο μέσω του service του (Go) ή του
index.tsτου (web). Ποτέ μέσω του store ή των αρχείων του. - Η SQL μένει μόνο στα αρχεία
store*.goενός module, πάνω στους δικούς του πίνακες. - Ένα κομμάτι του web μπαίνει στο
lib/uiμόνο όταν το χρησιμοποιούν 2 ή περισσότερα modules. - Κανένα πακέτο
util,common,sharedήhelpers. - Κάθε εξωτερική κλήση περνά από το
core/outbound.
Οι δοκιμές ελέγχουν αυτούς τους κανόνες, οπότε ένα λάθος import αποτυγχάνει το build. Η πλήρης λίστα και τα ονόματα των ελέγχων βρίσκονται στο Modules.
Τι τρέχει το CI
| Job | Τρέχει |
|---|---|
| Web | check, lint, test, build και την end-to-end σουίτα |
| Go | go build, go vet και go test -timeout 60m ./... σε amd64 και arm64, native και με εξομοίωση |
| Race | go test -race ./... |
| Contract | Την αντιστοιχία με το openapi.json, ελέγχους scope σε κάθε διαδρομή, τη σουίτα προγραμμάτων λήψεων |
| Fault and scale | Τρεξίματα με κατάρρευση, αργή εγγραφή, προβληματική εξωτερική υπηρεσία και μνήμη |
| Image | Μια image ανάπτυξης χτίζεται, ξεκινά και αναφέρει την έκδοσή της |
Οι λεπτομέρειες των μεγάλων τρεξιμάτων βρίσκονται στις Δοκιμές.
Σχετικά
Σύνδεσμος προς ΣχετικάΤο HolyArrs είναι δωρεάν. Αν σου γλίτωσε χρόνο, βάλε του αστέρι στο GitHub, γίνε χορηγός ή κέρασέ με έναν καφέ.