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

Συνεισφορά

Ρύθμιση

Κάνε μία μικρή αλλαγή στο σωστό σημείο και στείλ’ την ως pull request.

  • Άνοιξε πρώτα ένα issue, ή σχολίασε σε ένα που υπάρχει. Γράψε τι θες να αλλάξεις και γιατί.
  • Περίμενε απάντηση, για να μη φτιάξεις κάτι που δεν θα γίνει δεκτό.
  • Ολοκλήρωσε τη Ρύθμιση για να μπορείς να κάνεις build και να τρέξεις το HolyArrs.

Οι ερωτήσεις πάνε στο Discord. Οι ιδέες πάνε στο r/HolyArrs. Τα issues είναι για σφάλματα και για το roadmap.

  1. Βρες το module όπου ανήκει η αλλαγή σου. Τα ονόματα στο Modules ταιριάζουν με ονόματα φακέλων, άρα μια λάθος ειδοποίηση στο Discord είναι αλλαγή στο alerts.

  2. Κάνε την αλλαγή στα app/backend/internal/<module>/ και app/frontend/src/lib/<module>/. Κράτα τη σε μία διόρθωση ή μία λειτουργία.

  3. Κάνε build τη διαδικτυακή εφαρμογή, μετά το πρόγραμμα, και δοκίμασε την αλλαγή στο πρόγραμμα περιήγησης. Δες τη Ρύθμιση.

  4. Τρέξε τους ελέγχους στις Δοκιμές.

    Δεν θα πρέπει να δεις καμία αποτυχία.

  5. Αν άλλαξες μια σελίδα, τρέξε το end-to-end project της, για παράδειγμα npm --prefix app/frontend run e2e -- --project=movies.

  6. Άνοιξε το pull request. Σύνδεσε το issue, γράψε τι άλλαξε και πώς το δοκίμασες, και πρόσθεσε ή ενημέρωσε δοκιμές για την αλλαγή.

  7. Στο πρώτο σου pull request, ένα bot σου ζητά να υπογράψεις τη συμφωνία άδειας συνεισφέροντα. Απάντησε με τη μία πρόταση που ζητά.

Αλλαγή Πήγαινε στο
Μια νέα διαδρομή Modules
Ένα νέο module Modules. Άνοιξε πρώτα ένα issue
Μια κρατημένη λειτουργία Ρύθμιση
Μια έκδοση Κυκλοφορία εκδόσεων. Μόνο για συντηρητές
  • Γράψε σχόλια που εξηγούν γιατί ο κώδικας κάνει αυτό που κάνει. Όχι αριθμούς του 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, γίνε χορηγός ή κέρασέ με έναν καφέ.