Come Stanford gestisce il proprio fork

2 dicembre 2014 | Di

Stanford esegue un'istanza della base di codice OpenEdX che un team di ingegneri sviluppa attivamente. Manteniamo il nostro fork a github.com/Stanford-Online/edx-platform e cerchiamo di mantenere il nostro fork vicino a edX master unendo mensilmente dal repository principale della piattaforma edX di edX (github.com/edx/edx-platform). Preferiamo inviare il codice tramite pull request (PR) al repository principale di edX, ma a volte ciò non è possibile, poiché creiamo periodicamente funzionalità personalizzate specifiche di Stanford. Attraverso l'iterazione, abbiamo adottato un processo di rilascio chiaramente definito che ospita flussi di lavoro sia per l'unione dal repository edX principale che per mantenere il nostro separato Mastercard ramo. Poiché gestiamo un sito Web con un numero elevato di utenti, riteniamo che la stabilità delle versioni sia fondamentale. Ciò significa che ci sforziamo molto per mantenere il codice dannoso fuori dal rilasciare branch e il processo di rilascio lo facilita.

Poiché inviamo PR a edX oltre che a noi stessi, dobbiamo avere accesso ai repository di edX dai nostri ambienti di sviluppo, quindi la maggior parte degli sviluppatori di Stanford esegue ambienti git con almeno due telecomandi (o talvolta più con telecomandi personali e quelli di colleghi): origine, il repository del codice di Stanford; e a monte, il repository di codice edX, da cui possiamo controllare il ramo principale per fare PR in edX. Usiamo anche questo a monte remote per unire le modifiche al codice da edX durante il nostro processo di rilascio.

È qui che ho visto la necessità di un diagramma che spieghi il processo di rilascio. Sono una persona visiva e tirare fuori qualcosa è il modo in cui capisco le cose. Ecco il mio diagramma per aiutare a descrivere il nostro flusso di lavoro di sviluppo e rilascio:

È particolarmente utile perché i nostri sviluppatori, a turno, sono responsabili delle versioni nel nostro sistema "Release Master" a rotazione. Il diagramma mantiene il nostro ciclo di rilascio coerente tra le versioni e riduce al minimo gli errori.

Ecco un piano di rilascio che utilizza il diagramma come guida:

1. Per prima cosa creiamo un rc diramazione del nostro ramo principale, prendendo qualsiasi sviluppo in cui è stato fuso Mastercard dall'ultima uscita.

1a. Se vogliamo unire il a monte rilasciare ramificarsi nel rc filiale, lo facciamo qui.

A questo punto abbiamo una release candidate che possiamo testare e, una volta sicuri che non si romperà nulla, quindi installarla sulle nostre macchine di produzione.

2. Ora uniamo il ramo rc in ramo rilasciare (questo dovrebbe essere un semplice avanzamento rapido; in caso contrario, la versione precedente ha avuto un problema!).

3. Ora il file rilasciare ramo (e il fuso a monte codice) possono essere nuovamente uniti in Mastercard branch per mantenere entrambi i rami sincronizzati tra loro.

Si noti che i rami di funzionalità vengono creati al di fuori di Mastercard e unito di nuovo per essere rilasciato nel normale ciclo di rilascio. Gli hotfix, d'altra parte, sono diramati rilasciare, fusa nuovamente in rilasciare, è stato immediatamente spostato in produzione e quindi unito di nuovo a Mastercard per mantenere la sincronicità. Nota anche questo rilasciare cambia e a monte le fusioni non ce la fanno Mastercard a meno che non siano ritenuti sicuri dopo il test, che isola Mastercard anche dai bug.

E questo è tutto! Usiamo questo modello di ramificazione per ogni repository fork che manteniamo, che mantiene tutto coerente e prevedibile.

Caricamento in corso

Inizia la discussione su discutere.openedx.org

Tempo per altro? Dai un'occhiata agli articoli qui sotto.

Annuncio dei rappresentanti della community Open edX® TOC 2026
Dare potere a una nazione: come l'Ucraina ha ampliato una scuola nazionale online con la piattaforma Open edX®
Presentazione alla conferenza Open edX 2026: invito a presentare relatori!
Come la NASA ha esteso l'istruzione scientifica aperta a 20,000 ricercatori con la piattaforma Open edX
Partecipa alla conferenza Open edX 2026!

La conferenza Open edX del 2026 presenterà casi d'uso innovativi per uno dei migliori sistemi di gestione dell'apprendimento online open source al mondo, la piattaforma Open edX, e scoprirà gli ultimi progressi nella progettazione didattica, nella costellazione dei corsi e nei metodi per utilizzare ed estendere la piattaforma Open edX , comprese tecnologie rivoluzionarie, come l'intelligenza artificiale generativa.