Fare una patch #

Hai scoperto un bug o qualcos'altro che vuoi modificare in Matplotlib .. — eccellente!

Hai trovato un modo per risolverlo, anche meglio!

Vuoi parlarcene, meglio di tutti!

Il modo più semplice è creare una patch o un insieme di patch. Qui spieghiamo come. Creare una patch è il modo più semplice e veloce, ma se hai intenzione di fare qualcosa di più di semplici cose rapide, considera invece di seguire il modello Git per lo sviluppo .

Fare patch #

Panoramica n.

# tell git who you are
git config --global user.email [email protected]
git config --global user.name "Your Name Comes Here"
# get the repository if you don't have it
git clone https://github.com/matplotlib/matplotlib.git
# make a branch for your patching
cd matplotlib
git branch the-fix-im-thinking-of
git checkout the-fix-im-thinking-of
# hack, hack, hack
# Tell git about any new files you've made
git add somewhere/tests/test_my_bug.py
# commit work in progress as you go
git commit -am 'BF - added tests for Funny bug'
# hack hack, hack
git commit -am 'BF - added fix for Funny bug'
# make the patch files
git format-patch -M -C main

Quindi, invia i file di patch generati alla mailing list di Matplotlib , dove ti ringrazieremo calorosamente.

Nel dettaglio #

  1. Dì a git chi sei in modo che possa etichettare i commit che hai fatto:

    git config --global user.email [email protected]
    git config --global user.name "Your Name Comes Here"
    
  2. Se non ne hai già uno, clona una copia del repository Matplotlib :

    git clone https://github.com/matplotlib/matplotlib.git
    cd matplotlib
    
  3. Crea un "ramo di funzionalità". Qui sarà dove lavorerai sulla correzione del bug. È bello e sicuro e ti lascia l'accesso a una copia non modificata del codice nel ramo principale:

    git branch the-fix-im-thinking-of
    git checkout the-fix-im-thinking-of
    
  4. Apporta alcune modifiche e confermale man mano che procedi:

    # hack, hack, hack
    # Tell git about any new files you've made
    git add somewhere/tests/test_my_bug.py
    # commit work in progress as you go
    git commit -am 'BF - added tests for Funny bug'
    # hack hack, hack
    git commit -am 'BF - added fix for Funny bug'
    

    Nota le -amopzioni per commit. Il mflag segnala solo che stai per digitare un messaggio sulla riga di comando. La abandiera - puoi semplicemente crederci - o vedere perché la bandiera -a? .

  5. Al termine, verifica di aver eseguito il commit di tutte le modifiche:

    git status
    
  6. Infine, trasforma i tuoi commit in patch. Vuoi tutti i commit da quando sei ramificato dal mainramo:

    git format-patch -M -C main
    

    Ora avrai diversi file nominati per i commit:

    0001-BF-added-tests-for-Funny-bug.patch
    0002-BF-added-fix-for-Funny-bug.patch
    

    Invia questi file alla mailing list Matplotlib .

Al termine, per tornare alla copia principale del codice, basta tornare al mainramo:

git checkout main

Passaggio dall'applicazione di patch allo sviluppo #

Se ti accorgi di aver eseguito alcune patch e di avere uno o più rami di funzionalità, probabilmente vorrai passare alla modalità di sviluppo. Puoi farlo con il repository che hai.

Fork il repository Matplotlib su github — Crea la tua copia (fork) di Matplotlib . Quindi:

# checkout and refresh main branch from main repo
git checkout main
git pull origin main
# rename pointer to main repository to 'upstream'
git remote rename origin upstream
# point your repo to default read / write to your fork on github
git remote add origin [email protected]:your-user-name/matplotlib.git
# push up any branches you've made and want to keep
git push origin the-fix-im-thinking-of

Quindi puoi, se lo desideri, seguire il flusso di lavoro di sviluppo .