Trimiterea de conținut
The content of this page may be outdated and some links may be invalid.
A newer version of this page exists in
English. To see the changes to the English page since this page was last updated: visit
GitHub compare b7589cf4..92dd44d5
and search for More information ...
content/en/docs/contributing/pull-requests.md.
Pentru a contribui cu o nouă documentație sau pentru îmbunătățirea uneia existente, trimite un pull request (PR)
- Dacă schimbarea ta este mică, sau ești nefamiliarizat cu Git, vezi cum se Folosește GitHub pentru a învăța cum să editezi o pagină.
- Altfel, vezi cum se Lucreză de pe un fork local pentru a învăța cum să faci schimbări în mediul tău local de dezvoltare.
Politica de contribuție folosind IA generativă
Dacă ești un contribuitor nou, te rugăm să ții cont de următoarele:
Primele 3 contribuții către repository-ul nostru trebuie în principal să fie scrise de oameni, fiind permisă doar o asistență minoră din partea inteligenței artificiale. (AIL1). Asta înseamnă că tot codul tău ar trebui scris de mână, dar IA-ul ar putea ajuta cu completări de cod, formatare, linting și urmărirea bunelor practici. Descrierea PR-ului tău trebuie fie în întregime scrisă de un om, fără vreo implicare din partea IA-ului (AIL0).
Bineînțeles, poți folosi unelte de IA pentru a adresa întrebări și pentru a învăța despre repository-ul nostru, proiectul nostru, cum să contribui și multe altele.
Am implementat această cerință pentru a te ajuta să înveți în timp ce contribui și pentru a ajuta administratorii și aprobatorii să-și protejeze timpul și capacitatea de lucru, care reprezintă o resursă limitată.
Administratorii pot face o excepție, când contribuția ta este “drive-by” și poate fi adăugată fără prea mult efort adițional din partea lor.
IA generativă este permisă, dar tu ești responsabil pentru revizuirea și validarea întregului conținut generat de IA — Dacă nu-l înțelegi, nu-l trimite!
Pentru detalii, vezi Politica de contribuție folosind IA generativă.
Cum să contribui
Figura următoare ilustrează cum să contribui cu documentație nouă.
flowchart LR
subgraph first[Cum să contribui]
direction TB
T[ ] -.-
B[Creează un fork al repository-ului în GitHub] --- C[Scrie documente în markdown<br> și construiește site-ul cu Hugo]
C --- D[Împinge sursele la fork]
D --- E[Deschide un pull request]
E --- F[Semnează <a href="../prerequisites/#cla">CLA-ul CNCF</a>]
end
classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px;
classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold
classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000
class A,B,C,D,E,F,G,H grey
class S,T spacewhite
class first,second whiteFigura 1. Contribuții cu conținut nou.
Setează statusul pull request-ului tău la Draft pentru a înștiința administratorii că respectivul conținut nu este încă gata pentru revizuire. Administratorii pot în continuare să lase comentarii sau revizuiri, deși nu vor revizui conținutul în întregime până când nu elimini statutul de draft.
Utilizarea GitHub
Modifică și trimite schimbări din browser-ul tău
Dacă nu ești foarte experimentat cu fluxurile de lucru cu Git, aici se regăsește o metodă mai ușoară de pregătire și deschidere a unui nou pull request (PR). Figura 2 ilustrează pașii și detaliile urmează.
flowchart LR
A([fa:fa-user Contribuitor<br>Nou]) --- id1[(open-telemetry/opentelemetry.io<br>GitHub)]
subgraph tasks[Modificări folosind GitHub]
direction TB
0[ ] -.-
1[1\. Modifică această pagină] --> 2[2\. Folosește editorul de markdown<br>din GitHub pentru a face schimbări]
2 --> 3[3\. Completează în Propune schimbare de fișier]
end
subgraph tasks2[ ]
direction TB
4[4\. Selectează Propune schimbare de fișier] --> 5[5\. Selectează Creează pull request] --> 6[6\. Completează în Deschide un pull request]
6 --> 7[7\. Selectează Creează pull request]
end
id1 --> tasks --> tasks2
classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px;
classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold
classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff;
classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000
class A,1,2,3,4,5,6,7 grey
class 0 spacewhite
class tasks,tasks2 white
class id1 k8sFigura 2. Pașii pentru deschiderea unui PR folosind GitHub.
Pe pagina unde vezi issue-ul, selectează opțiunea Editează această pagină din panoul de navigare din partea dreaptă.
Dacă nu ești un membru al proiectului, GitHub oferă opțiunea de creare a unui fork al repository-ului. Selectează Fork this repository.
Efectuează schimbările în editorul din GitHub.
Completează formularul Propune schimbare de fișier.
Selectează Propune schimbare de fișier.
Selectează Creează pull request.
Va apărea ecranul Deschide un pull request. Descrierea ta îi ajută pe cei ce revizuiesc să înțeleagă schimbările tale.
Selectează Creează pull request.
Înainte de a îmbina un pull request, membrii comunității OpenTelemetry îl revizuiesc și-l aprobă.
Dacă un revizuitor solicită să faci modificări:
- Du-te la tab-ul Fișiere schimbate.
- Selectează iconița creion (de editare) în oricare fișier schimbat din pull request.
- Aplică schimbările cerute. Dacă există o sugestie de cod, aplic-o.
- Trimite schimbările.
Când revizuirea este completă, un revizuitor va adăuga schimbările din PR-ul tău, care se vor putea vedea câteva minute mai târziu.
Rezolvarea problemelor semnalate de verificările PR-ului
După ce ai trimis un PR, GitHub rulează niște verificări ale build-ului. Anumite verificări ce eșuează, precum probleme de formatare, pot fi rezolvate automat.
Adaugă următorul comentariu în PR-ul tău:
/fix
Acesta va declanșa ca bot-ul OpenTelemetry să încerce să rezolve problemele de build. Bot-ul răspunde cu un comentariu despre progres care face referire la comanda de rezolvare, apoi actualizează același comentariu cu rezultatul - fiecare comandă de rezolvare pe care o emiți primește propriul comentariu de la bot. Sau poți emite una dintre următoarele comenzi de rezolvare pentru a trata o problemă specifică:
/fix:code-excerpts
/fix:dict
/fix:expired
/fix:filenames
/fix:format
/fix:i18n
/fix:l10n
/fix:markdown
/fix:refcache
/fix:submodule
/fix:text
Comanda de rezolvare trebuie să fie prima linie a comentariului tău; poți adăuga text explicativ în liniile ce urmează. Emiterea unei noi comenzi de rezolvare în timp ce una rulează deja o anulează pe cea ce rulează astfel că cea mai recentă comandă câștigă; atunci când se poate, comentariul bot-ului asociat acțiunii anulate este actualizat pentru a indica anularea.
Poți de asemenea să rulezi comenzi fix local. Pentru lista completă de
comenzi de rezolvare, rulează npm run -s '_list:fix:*'.
Dezvoltare pe mediul local
Dacă ești mai experimentat cu Git sau dacă schimbările tale sunt mai mari decât câteva linii, lucrează de pe un fork local.
Asigură-te că ai git instalat pe calculatorul tău. Poți de
asemenea să folosești o interfață pentru Git.
Figura 3 arată pașii de urmat atunci când lucrezi de pe un fork local. Detaliile pentru fiecare pas urmează.
flowchart LR 1[Fă un fork al repository-ului<br>open-telemetry/opentelemetry.io] --> 2[Creează o clonă locală<br>și setează upstream-ul] subgraph changes[Schimbările tale] direction TB S[ ] -.- 3[Creează o ramură<br>de exemplu: ramura_mea_noua] --> 3a[Modifică folosind<br>un editor de text] --> 4["Previzualizează schimbările tale<br>local folosind Hugo<br>(localhost:1313)"] end subgraph changes2[Commit / Push] direction TB T[ ] -.- 5[Trimite schimbările tale] --> 6[Împinge commit-ul la<br>origin/ramura_mea_noua] end 2 --> changes --> changes2 classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff; classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 class 1,2,3,3a,4,5,6 grey class S,T spacewhite class changes,changes2 white
Figura 3. Lucrul de pe un fork local pentru a aplica modificările.
Fă un fork al repository-ului
- Navighează la repository-ul
opentelemetry.io. - Selectează Fork.
Clonează și setează upstream-ul
Într-o fereastră de terminal, clonează fork-ul tău și instalează dependențele necesare:
git clone git@github.com:<utilizatorul_tau_github>/opentelemetry.io.git cd opentelemetry.io npm installSetează repository-ul
open-telemetry/opentelemetry.iocaupstream-ul remote:git remote add upstream https://github.com/open-telemetry/opentelemetry.io.gitConfirmă repertoriile pentru
originșiupstream:git remote -vRezultatul este similar cu:
origin git@github.com:<utilizatorul_tau_github>/opentelemetry.io.git (fetch) origin git@github.com:<utilizatorul_tau_github>/opentelemetry.io.git (push) upstream https://github.com/open-telemetry/opentelemetry.io.git (fetch) upstream https://github.com/open-telemetry/opentelemetry.io.git (push)Preia commit-uri de pe ramura
origin/maina fork-ului și de peupstream/mainalopen-telemetry/opentelemetry.io:git fetch origin git fetch upstreamAcest lucru te asigură că repository-ul tău local este la zi înainte să începi să faci modificări. Împinge schimbările de pe upstream la origin regulat pentru a păstra fork-ul sincronizat cu upstream-ul
Creează o ramură
Creează o ramură. Acest exemplu presupune că ramura de bază este
upstream/main:git checkout -b <ramura_mea_noua> upstream/mainFă schimbările tale folosind un editor de cod sau text.
În orice moment, folosește comanda git status pentru a vedea ce fișiere ai
modificat.
Trimite schimbările tale
Când ești gata să trimiți un pull request, urcă schimbările tale.
În repository-ul tău local, verifică ce fișiere trebuie să urci:
git statusRezultatul este similar cu:
On branch <ramura_mea_noua> Your branch is up to date with 'origin/<ramura_mea_noua>'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: content/en/docs/file-you-are-editing.md no changes added to commit (use "git add" and/or "git commit -a")Adaugă fișierele listate sub Changes not staged for commit la setul de schimbări:
git add <your_file_name>Repetă asta pentru fiecare fișier.
După ce ai adăugat toate fișierele, creează un commit:
git commit -m "Mesajul tău de commit"Împinge ramura ta locală cu commit-ul nou la fork-ul tău:
git push origin <ramura_mea_noua>Odată ce schimbările sunt trimise, GitHub te înștiințează că poți crea un PR.
Deschide un PR nou
Figura 4 arată pașii pentru a deschide un PR din fork-ul tău pe opentelemetry.io.
flowchart LR subgraph first[ ] direction TB 1[1\. Mergi la repository-ul opentelemetry.io] --> 2[2\. Selectează 'New Pull Request'] 2 --> 3[3\. Selectează 'compare across forks'] 3 --> 4[4\. Selectează fork-ul tău din<br>meniul drop-down de selecție al repository-ului head] end subgraph second [ ] direction TB 5[5\. Selectează ramura ta din<br>meniul drop-down de comparație] --> 6[6\. Selectează Creează Pull Request] 6 --> 7[7\. Adaugă o descriere<br>la PR-ul tău] 7 --> 8[8\. Selectează Creează pull request] end first --> second classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold class 1,2,3,4,5,6,7,8 grey class first,second white
Figura 4. Pașii pentru a deschide un PR din fork-ul tău la opentelemetry.io.
Într-un browser web, navighează la repository-ul
opentelemetry.io.Selectează New Pull Request.
Selectează compare across forks.
Din meniul drop-down pentru repository-ul head , selectează fork-ul tău.
Din meniul drop-down compare, selectează ramura ta.
Selectează Creează Pull Request.
Adaugă o descriere pentru pull request-ul tău:
- Title (50 de caractere sau mai puțin): Creează un rezumat al intenției schimbărilor.
- Description: Descrie schimbările în detaliu.
- Dacă există un GitHub issue de care se leagă, include
Fixes #12345sauCloses #12345în descriere astfel ca automatizările din GitHub să închidă issue-ul menționat după ce PR-ul a fost unit. Dacă există și alte PR-uri conexe, menționează‑le și pe acelea. - Dacă dorești sfaturi despre ceva specific, include în descriere orice întrebare la care ai vrea ca revizuitorii să se gândească.
- Dacă există un GitHub issue de care se leagă, include
Selectează butonul Creează pull request.
Pull request-ul tău este disponibil în secțiunea Pull requests.
După deschiderea unui PR, GitHub rulează teste automate and încearcă să lanseze o previzualizare folosind Netlify.
- Dacă build-ul de Netlify eșuează, selectează Details pentru mai multe informații.
- Dacă build-ul de Netlify reușește, selectează Details pentru a deschide o versiune intermediară a website-ului OpenTelemetry cu schimbările tale aplicate. Așa verifică revizuitorii schimbările tale.
Și alte verificări pot eșua. Vezi lista cu toate verificările de PR.
Rezolvă problemele
Înainte să trimiți o schimbare la repertoriu, rulează următoarea comandă și (i) remediază orice problemă semnalată, (ii) trimite orice fișier schimbat de către script:
npm run test-and-fix
Pentru a testa și repara separat toate problemele din fișierele tale, rulează:
npm run test # Checks but does not update any files
npm run fix # May update files
Pentru a lista toate script-urile NPM disponibile, rulează npm run. Vezi
PR checks pentru mai multe informații despre verificările de
pull request și cum să repari erorile automat.
Vizualizează schimbările tale
Vizualizează schimbările local înainte să le trimiți sau să deschizi un pull request. O previzualizare îți permite să identifici erorile de build sau de formatare Markdown.
Pentru a construi și servi site-ul pe mediul local folosind Hugo, rulează următoarea comandă:
npm run serve
Navighează la http://localhost:1313 în browser-ul tău web pentru a vedea versiunea locală. Hugo monitorizează modificările și reconstruiește site-ul după caz.
Pentru a opri instanța locală de Hugo, mergi înapoi în terminal și tastează
Ctrl+C, sau închide fereastra de terminal.
Lansări ale site-ului și previzualizări din PR
Dacă trimiți un PR, Netlify lansează o previzualizare astfel că poți revizui schimbările tale. Odată ce schimbările din PR-ul sunt trimise, Netlify lansează versiunea actualizată a site-ului pe server-ul de producție.
Notă: Previzualizările din PR includ pagini draft, dar build-urile de producție nu.
Pentru a vedea log-uri despre deploy și mai multe, vizitează panoul proiectului – Necesită un login pe Netlify.
Îndrumări pentru PR
Înainte ca schimbările dintr-un PR să fie integrate, uneori este necesar să se treacă prin câteva iterații de revizuire-și-editare. Pentru a face acest proces cât mai facil pentru noi cât și pentru tine, te rugăm să aderi la următoarele:
- Dacă PR-ul tău nu este un fix rapid, atunci lucrează de pe un fork: Apasă butonul Fork din antetul repository-ului și clonează fork-ul local. Când ești gata, trimite un PR către repository-ul upstream.
- Nu lucra pe ramura
maina fork-ului tău, creează o ramură specifică pentru PR. - Asigură-te că administratorii au dreptul să modifice schimbările din pull request-ul tău.
Schimbări de la revizuitori
Uneori revizuitorii trimit schimbări la pull request-ul tău. Înainte de a face orice altă schimbare, preia acele schimbări.
Preia schimbări de pe fork-ul tău remote și aplică un rebase pe ramura ta de lucru:
git fetch origin git rebase origin/<ramura-ta>După rebase, trimite schimbările noi către fork-ul tău folosind force-push:
git push --force-with-lease origin <ramura-ta>
Poți de asemenea să rezolvi din interfața GitHub conflictele datorate integrării schimbărilor .
Conflictele datorate integrării schimbărilor și rebase
Dacă alt contribuitor trimite schimbări la același fișier în alt PR, poate genera un conflict de integrare a schimbărilor. Trebuie să rezolvi toate aceste conflicte în PR-ul tău.
Actualizează fork-ul tău și integrează schimbările în ramura ta locală folosind rebase:
git fetch origin git rebase origin/<ramura-ta>Apoi trimite schimbările la fork-ul tău folosind force-push:
git push --force-with-lease origin <ramura-ta>Preia schimbările de pe ramura
upstream/maina repository-uluiopen-telemetry/opentelemetry.ioși integrează-le în ramura ta folosind rebase:git fetch upstream git rebase upstream/mainInspectează rezultatele după rebase:
git statusAcest lucru duce la o serie de fișiere marcate ca fiind în conflict.
Deschide fiecare fișier în conflict și caută marcajele de conflict:
>>>,<<<, și===. Rezolvă conflictele și apoi șterge marcajul de conflict.Pentru mai multe informații, vezi Cum sunt prezentate conflictele.
Adaugă fișierele în setul de schimbări:
git add <numele-fișierului>Continuă rebase-ul:
git rebase --continueRepetă pașii 2 până la 5 după caz.
După aplicarea tuturor schimbărilor, comanda
git statusarată că procesul de rebase este complet.Trimite schimbările din ramura ta către fork-ul tău folosind force-push:
git push --force-with-lease origin <ramura-ta>Pull request-ul nu va mai arăta vreun conflict.
Cerințe pentru integrarea schimbărilor
Schimbările din pull request sunt integrate atunci când sunt conforme cu următoarele criterii:
- Toate revizuirile făcute de aprobatori, administratori, membrii comitetului tehnic sau experți au statusul “Approved”.
- Nici o conversație nerezolvată.
- Să fie aprobat de către cel puțin un aprobator.
- Nici o verificare de PR care să eșueze.
- Ramura PR-ului este la zi cu ramura de bază.
- Schimbările paginilor de documentație nu acoperă traducerile.
Important
Nu te îngrijora prea mult despre verificările de PR care eșuează. Membrii comunității te vor ajuta să le rezolvi, fie oferindu-ți instrucțiuni despre cum să le repari, fie reparându-le pentru tine.
Comentariu
A fost utilă această pagină?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!