Cód tiomantaLink to this heading
This section is addressed to the mergers and to anyone interested in knowing how code gets committed into Django. The Treoirlínte a apply to all contributors, with or without commit rights.
If you're a community member who wants to contribute code to Django, look at Ag obair le Git agus GitHub instead.
Iarrataí tarraingthe aLink to this heading
Ós rud é go bhfuil Django á óstáil ar GitHub, cuirtear paistí ar fáil i bhfoirm iarratais tarraingthe.
Agus iarratas tarraingthe á dhéanamh agat, déan cinnte go gcomhlíonann gach tiomantas aonair na treoirlínte tiomanta Táthar ag súil go soláthróidh ranníocóirí na hiarratais tarraingthe is fearr Go praiticiúil féadfaidh cumaisc - a mbeidh níos eolaí ar na treoirlínte tiomanta - cinneadh a dhéanamh tiomantas a thabhairt suas go dtí an caighdeán iad féin.
B'fhéidir gur mhaith leat gníomhartha Jenkins nó GitHub a thástáil ar an iarratas tarraingthe le duine de na tógálaithe iarratais tarraingthe nach ritheann go huathoibríoch, mar shampla Oracle nó Selenium. Féach an `leathanach wiki CI `_ le haghaidh treoracha.
Má aimsíonn tú tú féin ag seiceáil iarratais tarraingthe go háitiúil níos minice, beidh an t-alias git seo cabhrach:
[alias]
pr = !sh -c \"git fetch upstream pull/${1}/head:pr/${1} && git checkout pr/${1}\"
Cuir é le do ~/.gitconfig, agus socraigh upstream mar django/django. Ansin is féidir leat git pr #### a rith chun an t-iarratas tarraingthe comhfhreagrach a sheiceáil.
Ag an bpointe seo, is féidir leat oibriú ar an gcód. Úsáid git rebase -i agus git commit --amend chun a chinntiú go bhfuil an leibhéal cáilíochta ag súil leis ag na gealltanais. Nuair a bheidh tú réidh:
Linux / macOS
$ # Pull in the latest changes from main.
$ git checkout main
$ git pull upstream main
$ # Rebase the pull request on main.
$ git checkout pr/####
$ git rebase main
$ git checkout main
$ # Merge the work as "fast-forward" to main to avoid a merge commit.
$ # (in practice, you can omit "--ff-only" since you just rebased)
$ git merge --ff-only pr/XXXX
$ # If you're not sure if you did things correctly, check that only the
$ # changes you expect will be pushed to upstream.
$ git push --dry-run upstream main
$ # Push!
$ git push upstream main
$ # Delete the pull request branch.
$ git branch -d pr/xxxx
Windows
...\> REM Pull in the latest changes from main.
...\> git checkout main
...\> git pull upstream main
...\> REM Rebase the pull request on main.
...\> git checkout pr/####
...\> git rebase main
...\> git checkout main
...\> REM Merge the work as "fast-forward" to main to avoid a merge commit.
...\> REM (in practice, you can omit "--ff-only" since you just rebased)
...\> git merge --ff-only pr/XXXX
...\> REM If you're not sure if you did things correctly, check that only the
...\> REM changes you expect will be pushed to upstream.
...\> git push --dry-run upstream main
...\> REM Push!
...\> git push upstream main
...\> REM Delete the pull request branch.
...\> git branch -d pr/xxxx
Fórsa brú go dtí an brainse tar éis athbhunú ar an bpríomhlíonra ach roimh chumasc agus brú go dtí an sruth. Ligeann sé seo do na hashes geallta ar an bpríomhlíonra agus an brainse a mheaitseáil a dhúnann an t-iarratas tarraingt go huathoibríoch.
Mura gá iarraidh tarraingthe a chumasc mar ghealltanais iolracha, is féidir leat cnaipe “Squash agus cumaisc” GitHub a úsáid ar an suíomh Gréasáin. Cuir an teachtaireacht <committing-guidelines>tiomanta in eagar de réir mar is gá chun comhlíonadh la:ref: `na treoirlínte `agus bain an uimhir iarratais tarraingthe a chuirtear isteach go huathoibríoch le chéad líne na teachtaireachta.
Agus stair thiomanta iarratais tarraingthe á athscríobh agat, is é an aidhm stair thiomanta Django a dhéanamh chomh inúsáidte agus is féidir:
Má tá gealltanais anar-anall i bpaiste, ansin iad sin a athscríobh i gceann amháin. Mar shampla, má chuireann tiomantas cód éigin leis agus má shocraíonn an dara tiomantas saincheisteanna stíleacha a tugadh isteach sa chéad thiomantas, ba chóir na gealltanais sin a scriosadh sula ndéantar iad a chumasc.
Athruithe ar leithligh ar ghealltanais éagsúla trí ghrúpáil loighciúil: má dhéanann tú glantachán stíle ag an am céanna agus a dhéanann tú athruithe eile ar chomhad, beidh sé níos fusa athbhreithniú a dhéanamh ar an stair trí na hathruithe a roinnt ina dhá ghealltanas éagsúla.
Bí cúramach le cumaisc brainsí suas srutha sna hiarratais tarraingthe.
Ba chóir go rith na tástálacha agus ba chóir doiciméid a thógáil tar éis gach Níor chóir do na tástálacha ná na doiciméid rabhaidh a eisiúint.
Is fearr paistí triobhála agus beaga de ghnáth a dhéanamh i dtiomantas amháin. Féadfar obair mheánmhéide go mór a roinnt ina iliomad gealltanais má tá ciall aige.
Buaileann praiticiúlacht íonacht, mar sin tá sé faoi gach cumaisc cinneadh a dhéanamh cé mhéad staire atá le déanamh le haghaidh iarratas tarraingthe. Is iad na príomhphointí ná an pobal a mhealladh, obair a dhéanamh, agus stair tiomanta inúsáidte a bheith agat.
Treoirlínte aLink to this heading
These guidelines apply to all commits to Django's Git repository, whether submitted by a contributor via a pull request or landed directly by a merger:
Ná athraigh stair foilsithe brainsí
django/djangotrí bhrú fórsa. Más gá duit go hiomlán (ar chúiseanna slándála mar shampla), plé an cás leis an bhfoireann ar dtús.For any medium-to-big changes, where "medium-to-big" is according to your judgment, please bring things up on the Django Forum before making the change.
If you bring something up and nobody responds, please don't take that to mean your idea is great and should be implemented immediately because nobody contested it. Everyone doesn't always have a lot of time to read discussions immediately, so you may have to wait a couple of days before getting a response.
Write detailed commit messages in the past tense, not present tense, and end the subject line with a period.
Correct: "Fixed Unicode bug in RSS API."
Incorrect: "Fixes Unicode bug in RSS API." (present tense)
Incorrect: "Fixing Unicode bug in RSS API." ("-ing" form)
Incorrect: "Fixed Unicode bug in RSS API" (missing trailing period)
The commit message should be in lines of 72 chars maximum. There should be a subject line, separated by a blank line and then paragraphs of 72 char lines. The limits are soft. For the subject line, shorter is better.
In the body of the commit message more detail is better than less, and should explain why the change was made, not what was changed or how. The code itself shows what changed; the commit message should provide the context and reasoning that the code cannot.
Credit the contributors in the commit message: "Thanks A for the report and B for review." Use git's Co-Authored-By as appropriate, including anyone whose earlier work the change builds on.
Mar shampla:
Fixed #18307 -- Added git workflow guidelines. Refactored the Django's documentation to remove mentions of SVN specific tasks. Added guidelines of how to use Git, GitHub, and how to use pull request together with Trac instead. Thanks to Full Name for the report, and to Reviewer for reviews.Maidir le tiomantas do bhrainse, réimsigh an teachtaireacht tiomanta le hainm na brainse. Mar shampla: “[1.4.x] Seasta #xxxxx -- Tacaíocht bhreise le haghaidh léamh intinne.”
Tiomann teorainn don athrú is gráinneach a dhéanann ciall. Ciallaíonn sé seo, bain úsáid as gealltanais bheaga go minic seachas tiomantas móra is annamh. Mar shampla, má éilíonn athrú beag ar leabharlann Y a chur i bhfeidhm gné X, déan an t-athrú a dhéanamh ar leabharlann Y ar dtús, ansin déan gné X i dtiomantas ar leithligh. Téann sé seo* bealach fad* chun cabhrú le gach duine d'athruithe a leanúint.
Socruithe fabht ar leithligh ó athruithe gné. B'fhéidir go gcaithfear fabhtshocruithe a chur ar ais chuig an mbrainse chobhsaí, de réir: ref: `supportted-versions-policy `.
Má dhúnann do thiomantas ticéad sa rianaitheoir ticéad Django, cuir tús le do theachtaireacht tiomanta leis an téacs “Seasta #xxxxx “, áit is é “xxxxx” uimhir an ticéad a shocraíonn do thiomantas. Sampla: “Seasta #123 -- Gné whizbang curtha leis.”. Tá Trac curtha againn ionas go ndúnfaidh aon teachtaireacht tiomanta san fhormáid sin an ticéad tagartha go huathoibríoch agus go gcuirfidh trácht air leis an teachtaireacht iomlán tiomanta.
Maidir le daoine fiosracha, táimid ag baint úsáide as `breiseán Trac `_ chuige seo.
Má thagraíonn do thiomantas ticéad sa rianaitheoir ticéad Django ach ní dhúnnaí* an ticéad, cuir an abairt “Refs #xxxxx “san áireamh, áit ar “xxxxx” uimhir an ticéid a thagann do thiomantas. Cuirfidh sé seo trácht ar an ticéad cuí go huathoibríoch.
Scríobh teachtaireachtaí tiomanta do chúlphortanna ag baint úsáide as an bpatrún seo:
[<Django version>] Fixed <ticket> -- <description> Backport of <revision> from <branch>.Mar shampla:
[1.3.x] Fixed #17028 -- Changed diveintopython.org -> diveintopython.net. Backport of 80c0cbf1c97047daed2c5b41b296bbc56fe1d7e3 from main.Tá `script ar an wiki`_ chun é seo a uathoibri< https://code.djangoproject.com/wiki/MergerTips#AutomatingBackports> ú.
Má shocraíonn an tiomantas aischéimniú, cuir é seo san áireamh sa teachtaireacht tiomanta:
Regression in 6ecccad711b52f9273b1acb07a57d3f806e93928.(bain úsáid as an hash tiomanta inar tugadh isteach an aischéimniú).
Tiomantas a thabhairt ar aisLink to this heading
Níl aon duine foirfe; déanfar botúin.
Ach déan iarracht an-chrua a chinntiú nach dtarlóidh botúin. Díreach toisc go bhfuil beartas aisghabhála againn ní mhaolaítear do fhreagracht chun díriú a dhéanamh ar an gcaighdeán is airde is féidir. I ndáiríre: déan do chuid oibre a sheiceáil faoi dhó, nó déan í a sheiceáil trí chumasc eile** roimhe** déanann tú é sa chéad áit!
Nuair a aimsítear tiomantas mícheart, lean na treoirlínte seo le do thoil:
Más féidir, cuir ar an údar bunaidh a thiomantas féin a chur ar ais.
Ná cuir athruithe údair eile ar ais gan cead ón údar bunaidh.
Úsáid git revert - déanfaidh sé seo tiomantas ar ais, ach beidh an tiomantas bunaidh fós mar chuid de stair an tiomanta.
If the original author can't be reached (within a reasonable amount of time -- a day or so) and the problem is severe -- crashing bug, major test failures, etc. -- then ask for objections on the Django Forum then revert if there are none.
Má tá an fhadhb beag (gné a thiomann tar éis reoite gné, abair), fan amach í.
If there's a disagreement between the merger and the reverter-to-be then try to work it out on the Django Forum . If an agreement can't be reached then it should be put to a vote.
Má thug an tiomantas leochaileacht slándála dearbhaithe, nochtaithe isteach ansin féadfar an tiomantas a chur ar ais láithreach gan cead ó aon duine.
Féadfaidh an cothabhálaí brainse scaoilte gealltanais a chur ar ais don bhrainse scaoilte gan cead má bhriseann an tiomantas an brainse scaoilte.
Má bhrúiteann tú brainse ábhar ar dhearmad chuig django/django`, scrios é. Mar shampla, má rinne tú: git push upstream feature_antigravity`, déan brú droim:
git push upstream:feature_antigravity.