Crearea și trimiterea unui patch în WordPress Core

Dacă sunteți cineva care folosește WordPress pentru a-și câștiga existența și pentru a-ți spune povestea, văzând că o schimbare pe care ați scris-o adăugată la baza de coduri WordPress este un lucru destul de interesant. Știu că a fost pentru mine. 

În acest tutorial, veți afla câteva lucruri simple pe care trebuie să le cunoașteți pentru a crea un patch pentru WordPress care poate fi acceptat în software-ul de bază.

În timp ce WordPress este un software open source pe care oricine îl poate descărca și modifica, doar o mână de contribuitori de bază pot să-și angajeze schimbările în WordPress. Dacă doriți să modificați fișierele de bază ale WordPress, puteți să o propuneți fie prin crearea unui bilet care detaliază modificarea propusă și atașarea unui plasture, fie prin atașarea unui patch la un bilet existent.

Un fișier patch sau diff este un fișier care detaliază modificările aduse sursei pe care un sistem de control al versiunilor, cum ar fi SVN sau GIT, le poate utiliza pentru a aplica modificările. Crearea unui patch este ușor prin linia de comandă sau printr-un instrument GUI precum SourceTree.

Pentru acest articol, voi detalia cum să utilizați aplicația excelentă GIT GUI SourceTree pentru a verifica cea mai recentă versiune de WordPress și a crea fișierul dvs. de patch-uri. Puteți folosi instrumentul GUI ales sau linia de comandă, dacă preferați.

Găsiți sau creați un bilet în Core Trac

Când trimiteți patch-ul dvs. la WordPress core, acesta trebuie să fie atașat la un bilet în tracker-ul de emisiuni WordPress, numit trac. Prin urmare, primul pas în prezentarea unui plasture este găsirea sau crearea unui bilet.

Deși este posibil ca un nou bilet cu o funcție nouă să fie acceptat, nu este foarte probabil. WordPress are literalmente milioane de utilizatori și are sens doar că dezvoltatorii plumb sunt foarte precauți în ceea ce privește introducerea de noi caracteristici. Aproape toate caracteristicile noi sunt acum dezvoltate separat ca plugin-uri în primul rând și numai după teste extinse și dezvoltare sunt acestea au fuzionat în miez.

Cel mai bun pariu pentru obținerea unui patch acceptat este crearea unui patch pentru un bilet existent. Recent tracțiunea de bază a fost reproiectată pentru a face mai ușor găsirea de bilete cu reparații ușoare și cele care sunt cel mai probabil incluse în următorul articol de lansare și următoarea versiune de WordPress. 

Raportarea bug-urilor

Dacă doriți să creați un nou bilet în tracțiunea de bază, ceea ce este un lucru minunat de făcut dacă ați găsit un bug nou, puteți face acest lucru aici. Asigurați-vă că ați căutat trac pentru toate rapoartele aceleiași probleme înainte de a crea un nou bilet și că ați confirmat existența erorii cu cea mai actualizată versiune de WordPress. 

Prin asta nu vreau să spun cea mai recentă versiune, ci ramura master în terminologia GIT sau portbagaj în terminologia SVN. Voi detalia cum să obțineți ultima versiune mai târziu în acest tutorial.

Cel puțin trebuie să completați câmpul rezumat, care este titlul biletului, și câmpul de descriere, care este conținutul biletului. În descrierea biletului, să fie cât mai descriptivă posibil. 

La atelierul colaboratorului WordCamp Orlando din 2013, la care am participat, dezvoltatorii WordPress, Mark Jaquith și Andrew Nacin, au creat această listă a ceea ce se întâmplă în raportul de bug-uri:

  • pași pentru a reproduce problema, începând cu cea mai veche etapă
  • descrierea bug-ului
  • ceea ce ați văzut față de ceea ce vă așteptați
  • mesaje de eroare sau coduri de eroare
  • Erori PHP (care a fost avertismentul de pe pagină, ce sa întâmplat în jurnal, există vreo eroare JavaScript sau Apache / nginx?)
  • ce browser?
  • (versiunea dvs. PHP, versiunea MySQL Apache sau nginx)
  • Se întâmplă fără pluginuri și temă prestabilită?
  • capturi de ecran pentru probleme legate de interfața cu utilizatorul
  • să fie clară și concisă
  • ajungeți la punctul mai întâi, apoi detalii.
  • numărul de bilet asociat 
  • o eroare pe bilet 
  • permalink setări
  • Este activat sau nu multisite?
  • WP_DEBUG sau echivalentul activat?
  • rolul de utilizator conectat când sa produs problema (sau a schimbat rolurile în baza de date)

Rețineți că nu toate acestea sunt relevante pentru fiecare eroare, dar există informații mai relevante pe care le puteți adăuga mai bine.

Cu excepția cazului în care sunteți sigur de ce să setați în ele, trebuie să lăsați câmpurile de mai jos descrierea în monoterapie și să lăsați un contribuitor de bază să le folosească pentru a clasifica biletul în consecință. Aș recomanda să utilizați eticheta "Are Patch" sau "Nevoie Patch" bazată pe faptul dacă atașați sau nu un patch-uri pentru a repara bug-ul sau nu.

Verificarea celor mai noi WordPress de la GitHub Utilizând un instrument GUI

Înainte de a crea un patch pentru orice bilet, este important să aveți cea mai recentă versiune absolută a WordPress, deoarece există multe schimbări făcute în fiecare zi. Este imposibil să știți dacă lucrările de remediere sau bug-ul dvs. există în continuare, dacă nu utilizați codul cel mai actualizat. Patch-ul dvs. probabil nu va fi acceptat dacă modifică codul care sa modificat deja.

WordPress este gestionat în SVN, dar acest cod este oglindit ca un depozit GIT în două locuri:

  1. git: //core.git.wordpress.org/
  2. https://github.com/WordPress/WordPress

Depozitarul GitHub este cel mai ușor de utilizat. Rețineți că, deși este replica oficială GitHub, aceasta nu este încă utilizată pentru urmărirea problemelor și nu ar trebui să trimiteți cereri de tragere.

Există multe modalități de a obține cea mai recentă versiune de WordPress prin SVN sau Git. Personal, consider că cel mai ușor lucru este să folosiți instrumentul GIT GUI SourceTree pentru a clona oglinda GitHub. Acest lucru este la fel de simplu ca selectarea "New / Clone" din meniul fișierului, introducerea adresei pentru replica Git în câmpul "Calea sursă / URL" și apoi specificarea unei căi locale pentru clonare, care ar fi în interiorul XAMMP sau Vagrant mediu de testare.

Vorbind despre Vagrant, configurația VVV populară WordPress Vagrant are un mediu de testare preconfigurat pentru core-ul WordPress, inclusiv ultimul cod și testele unității.

Crearea unui fișier de corecție

După ce ați făcut modificările în WordPress care sunt necesare pentru a rezolva problema pe care încercați să o remediați și ați testat, trebuie să creați un fișier de patch-uri care să fie încărcat pe bilet. SourceTree include o modalitate de a crea un fișier de patch-uri sau puteți utiliza linia de comandă.

În SourceTree, puteți crea un fișier de patch-uri prin accesarea copiei de lucru și clic-dreapta pe fișierele care s-au schimbat. Din meniul cu clic dreapta, selectați "Creare patch".

Alternativ, în terminalul dvs., navigați la directorul rădăcină pentru WordPress repo și utilizați această comandă pentru a crea diff:

git diff -non-prefix ~ / nume.path 

Indiferent de modul în care creați fișierul dvs. de patch-uri, trebuie să îl denumiți după numărul biletului pentru care este destinat. Dacă este cel de-al doilea patch încărcat în bilet, adăugați .2 la sfârșitul numărului, sau .3 dacă este al treilea și așa mai departe. De exemplu, cel de-al cincilea patch pentru biletul # 12358 va fi numit # 12358.5

Încărcarea unui Patch în Trac

Acum, când patch-ul dvs. este gata să meargă, trebuie să-l încărcați pe biletul din tracțiunea centrală. Pe orice bilet existent, sub descriere este un buton "Atașați fișierul" pe care îl puteți utiliza pentru a încărca patch-ul. Pe ecranul următor, asigurați-vă că adăugați o descriere a ceea ce face patch-ul.

Fii pacient și fii înțeles

WordPress este un proiect masiv, deci nu este rezonabil să te aștepți imediat la un răspuns la patch-ul tău. De asemenea, înțelegeți că standardele pentru un patch care sunt angajate în WordPress trebuie să fie foarte mari pentru a servi cel mai bine tuturor utilizatorilor săi.

După ce ați trimis patch-ul dvs., aveți răbdare și înțelegeți orice feedback pe care îl primiți. Dezvoltatorii plumb sunt foarte abordabili, dacă aveți întrebări despre patch-ul dvs. sau de ce nu a fost îmbunătățit, nu ezitați să întrebați unul dintre ei în canalul # wordpress-dev IRC.

În timp ce așteptați pentru răspunsuri și trebuie să faceți schimbări pot fi frustrant, merită să fie atunci când patch-ul dvs. este angajat să WordPress și descrierea modificărilor vă confirmă. 

Cod