Einen Patch erstellen #

Sie haben einen Fehler entdeckt oder etwas anderes, das Sie in Matplotlib ändern möchten ... — ausgezeichnet!

Sie haben einen Weg gefunden, das Problem zu beheben – sogar noch besser!

Sie wollen uns davon erzählen – am besten!

Am einfachsten ist es, einen Patch oder eine Reihe von Patches zu erstellen. Hier erklären wir wie. Das Erstellen eines Patches ist am einfachsten und schnellsten, aber wenn Sie mehr als nur schnelle Dinge tun möchten, sollten Sie stattdessen das Git-Entwicklungsmodell befolgen.

Patches erstellen #

Übersicht #

# 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

Senden Sie dann die generierten Patch-Dateien an die Matplotlib-Mailingliste – wo wir Ihnen herzlich danken werden.

Im Detail #

  1. Sagen Sie git, wer Sie sind, damit es die von Ihnen vorgenommenen Commits kennzeichnen kann:

    git config --global user.email [email protected]
    git config --global user.name "Your Name Comes Here"
    
  2. Wenn Sie noch keine haben, klonen Sie eine Kopie des Matplotlib- Repositorys:

    git clone https://github.com/matplotlib/matplotlib.git
    cd matplotlib
    
  3. Erstellen Sie einen "Feature-Zweig". Hier arbeiten Sie an Ihrem Bugfix. Es ist nett und sicher und lässt Ihnen Zugriff auf eine unveränderte Kopie des Codes im Hauptzweig:

    git branch the-fix-im-thinking-of
    git checkout the-fix-im-thinking-of
    
  4. Nehmen Sie einige Änderungen vor und übertragen Sie sie, während Sie fortfahren:

    # 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'
    

    Beachten Sie die -amOptionen bis commit. Das mFlag signalisiert nur, dass Sie eine Nachricht in die Befehlszeile eingeben werden. Die aFlagge – Sie können einfach glauben – oder sehen Sie, warum die -a-Flagge? .

  5. Wenn Sie fertig sind, überprüfen Sie, ob Sie alle Ihre Änderungen festgeschrieben haben:

    git status
    
  6. Machen Sie schließlich Ihre Commits zu Patches. Sie möchten alle Commits seit der Verzweigung von der mainVerzweigung:

    git format-patch -M -C main
    

    Sie haben jetzt mehrere Dateien, die nach den Commits benannt sind:

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

    Senden Sie diese Dateien an die Matplotlib-Mailingliste .

Wenn Sie fertig sind, kehren Sie einfach zum Zweig zurück, um zur Hauptkopie des Codes zurückzukehren main:

git checkout main

Vom Patchen zur Entwicklung wechseln #

Wenn Sie feststellen, dass Sie einige Patches durchgeführt haben und einen oder mehrere Funktionszweige haben, möchten Sie wahrscheinlich in den Entwicklungsmodus wechseln. Sie können dies mit dem Repository tun, das Sie haben.

Verzweigen Sie das Matplotlib -Repository auf GitHub – Erstellen Sie Ihre eigene Kopie (Verzweigung) von Matplotlib . Dann:

# 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

Dann können Sie, wenn Sie möchten, dem Entwicklungsworkflow folgen .