Gerrit/İleti yönergeleri sunma

This page is a translated version of the page Gerrit/Commit message guidelines and the translation is 70% complete.
Outdated translations are marked like this.
For repositories that have have a .gitmessage file in the repo (e.g. mediawiki/core), you can encourage yourself to a good commit hygiene, by running the following command in your checked out repo
 git config commit.template .gitmessage
If you like it, you are encouraged to add it to more repos


Yaptığınız değişikliğin taahhüt mesajı önemli bir rol oynar. Diğer insanların sizin değişikliğiniz hakkında ilk görecekleri şey.

component: Short subject line

More details. The blank line between the subject and body is
mandatory. The subject line is used to represent the commit in
code-review requests, search results, git rebase, logs, and more.

Bug: T54321

Yapı

Konu

İşlem mesajının ilk satırı konu olarak bilinir. Konu 80 karakterden kısa olmalıdır (50-70 hedefi).

  • Konu satırındaki değişikliğinizi özetleyin. Bunun sonsuza kadar depoda olacağını unutmayın.
  • İsteğe bağlı olarak, konunun önüne ilgili bileşen öneki ekleyin. Bileşen, taahhüdünüzün değişeceği genel alandır.
  • Konu satırınızdaki zorunlu ruh hâlini kullanın. Avoid stating a fact, like "Badge hides zero" or "Zero in badges", which is ambigious and does not describe a change (good or bad? before or after?). Consider instead "Hide zeroes in badges", "Show zeroes in badges", or "Badge: Restore display of zero".
    Zorunlu ruh hâli, birisine talimat veriyormuşsunuz gibi geliyor ve "Değiştir", "Düzelt", "Ekle", "Kaldır", "Belge", "Yeniden Düzeltme" gibi kelimelerle başlayabilir.
  • Your subject line should be short, clearly state what your commit is changing.
    It should not be possible to use the same subject line for two commits that do different things. Consider "Fix FooBar docs to use @chainable" instead of "Fix a function doc". People will read your subject line out of context, as it passes by in change feeds, code review emails, git-blame logs, release notes, deployment changelog, etc. A good subject line helps decide quickly whether this commit among many will be relevant to a given interest or concern.
  • Konu satırını nokta/tam nokta (.) ile sonlandırmayın.
İyi örnekler, "API'yi sorgulamak için Badge::query ekle", "SimpleBadge içinde API sorgusunu önleyin" ve "SimpleBadge::add'de sıfırları destekleyin". Kötü örnekler "Badge::query yöntemi eklendi", "Badge::sorgu yöntemi düzeltildi", "Rozet API'yi sorgulayabilir", "Rozet API sorguları yapmaz" veya "Rozet eklerken sıfırlar çalışır" olurdu.
  • "Add Badge::query to query the API"
  • "Avoid API query in SimpleBadge"
  • "Support zeroes in SimpleBadge::add"
  • "badger: Add accessibility labels to form fields"
  • "rdbms: Avoid infinite loop on null input"
  • "htmlform: Change colours to match April 2020 design"
  • "Added Badge::query method", "Badge can query the API"
  • "Badge doesn't do API queries"
  • "Fixed Badge::query method", "Zeroes work when adding badges"
  • "Implement accessibility fixes"
  • "Fix crash"
  • "Use a better design"

Gövde

Gövde metnini yazarken aşağıdaki soruları düşünün:

  • Bu değişiklik neden yapılmalıdır? Mevcut kodda sorun nedir?
  • Neden bu şekilde değiştirilmeli? Başka yollar var mı?
  • Başka yaklaşımlar düşündünüz mü? Öyleyse, neden bu kadar iyi olmadıklarını açıklayın.
  • Bir yorumcu kodunuzun doğru çalışıp çalışmadığını nasıl test edebilir veya doğrulayabilir?

Recommended:

  • … gövdeyi özneden bir boş satırla ayırın.
  • … mesajı satırlar maksimum 100 karakter uzunluğunda olacak şekilde sarın. Many editors/tools can do this automatically; 72 characters is a common width to wrap at.[1] Ancak, URL'leri 'uydurmak' için bozmayın, çünkü bu onları tıklanamaz hâle getirir; daha uzun olsalar bile onları saklayın.
  • I83f83377f2 gibi (kısa) bir Gerrit Change-Id veya 51e3fb9a71 gibi Git commit hash kullanarak diğer taahhütlere bakın. İlgili değişiklik henüz birleştirilmediyse, Git taahhüt karması birleştirildikten sonra değişeceğinden, her zaman Gerrit Change-Id kullanın, bu da çıkmaza yol açar.

Not recommended:

  • Don't refer to other commits with a URL or change number.
    • Instead, use the Gerrit Change-Id like I83f83377f2 or Git commit hash like 51e3fb9a71. This kind of hash is automatically converted to a link when viewing the change in Gerrit, Gitiles, and other repository browsers. Ayrıca, git show veya dahili metin düzenleyiciler gibi geliştirme sırasında Git deposunda kolay gezinmeye olanak tanır.
    • Öte yandan, bir URL yalnızca bir web tarayıcısında çözülebilir ve kod inceleme iş akışlarını bozan ve yerel bağlamdan ayrılan sabit bir konuma gider. For example, inside a Git browser the hash allows you to quickly go from one commit to a related one in the same tool, instead of being sent to Gerrit. The hashes can also be searched for in Gerrit to automatically find commits that refer to it.
    • Another issue is that change numbers can ambiguous or become automatically linked to a different commit than you intend. This is because commit hashes are sometimes numbers only, e.g. commit 665661 is different than change 665661.
  • Bir değişikliğin açıklaması olarak yalnızca bir URL kullanmayın.
    • Değişiklik, başka bir yerde yapılan bir tartışma veya bazı harici belgeler tarafından gerekçelendiriliyorsa, taahhüt mesajınızdaki önemli noktaları özetlemeye çalışın ve URL'ye de bakın.

The most important information of the footer is the Change-Id (mandatory) and Bug.

  • Aşağıdaki örneklerde olduğu gibi "Bug" ve "Change-Id" meta verilerini biçimlendirin ve boş bir satırdan sonra bunları gövdenin sonuna yerleştirin.

Find more information on individual meta-data fields below.

Örnekler

İyi örnek

jquery.badge: Add ability to display the number zero

Cupcake ipsum dolor sit. Amet tart cheesecake tiramisu chocolate cake
topping. Icing ice cream sweet roll. Biscuit dragée toffee wypas. 

Does not yet address T44834 or T176. Follow-up to Id5e7cbb1.

Bug: T42
Change-Id: I88c5f819c42d9fe1468be6b2cf74413d7d6d6907

Kötü örnek

Improved the code by fixing a bug.

Changed the files a.php and b.php

Bug: T42
Change-Id: I88c5f819c42d9fe1468be6b2cf74413d7d6d6907

Ek bilgi

If the repository you are contributing to has a .gitmessage file (example), use the following command to get a template to guide you in writing a commit message: git config commit.template=.gitmessage

Konu

Git komutunu görüntülediğimiz çoğu program, konu satırını düz metin olarak işler. Bu, URL'lerin çalışmadığı ve metnin sıklıkla seçilmesi/kopyalanmasının mümkün olmadığı anlamına gelir. Bu nedenle, konu satırında Phabricator görevlerinden, Git taahhütlerinden veya URL'lerinden bahsetmeyin. Bunun yerine, gövde metninden veya altbilgi meta verilerinden bahsedin. Bu şekilde, evrensel olarak seçilebilir, kopyalanabilir veya tıklayabilirler.

Bileşen

Konu satırına, taahhüdünüz tarafından projenin hangi alanının değiştirildiğini belirten bir bileşenle başlayabilirsiniz.

Aşağıdakilerden biri olmalıdır:

  • "installer", "jobqueue", "objectcache", "resourceloader", "rdbms", vb. gibi includes/ veya includes/libs altındaki PHP sınıfları dizini
  • "Title", "User", "OutputPage", vb. gibi bir PHP sınıf adı; tipik olarak includes/ içinde alt dizini olmayan sınıflar için.
  • ResourceLoader modül adı ("mediawiki.Title", "mediawiki.util", vb. gibi).
  • Değişiklik türüyle ilgili birden çok alanı etkileyen genel anahtar kelime, örneğin:
    • "build" - package.json, .travis.yml, vb. güncellemeleri gibi geliştirme iş akışıyla ilgili dosyalarda yapılan değişiklikler için
    • "tests" or "test" (depending on directory name) - yalnızca birim veya entegrasyon test takımlarını veya test takımı çalıştırıcılarını etkileyen değişiklikler için.

Phabricator

Phabricator bir hataya veya göreve başvurmak için, taahhüt mesajında Txxx gösterimini kullanarak satır içinde belirtin (ör. "That was caused by T169.")

Bir taahhüdün çözüldüğünü (kısmen de olsa) veya bir hatayla özellikle ilgili olduğunu ifade etmek için, taahhüt mesajının sonuna altbilgiye Bug: Txxx ekleyin.[2] (Bir işlem mesajını değiştiriyorsanız, bunu, aralarında boş bir satır olmadan Change-Id: satırının hemen üstüne ekleyin. Genel yapı kurallarına uymayı ve gövdeyi konudan bir boş satırla ayırmayı unutmayın.)

Bug: T169

Bir bot otomatik olarak Phabricator'ın görevi hakkında önemli olaylar (birleştirilmiş, terk edilmiş vb.) hakkında bir yorum bırakacaktır. Bir yama iki veya daha fazla hatayı giderirse, her Bug: T12345 kaynağı altta kendi satırına koyun.

Bug: T299087
Bug: T299088

Çapraz kaynaklar

Ne zaman başka bir işleme başvurursanız, birleştirilmiş işlemin SHA-1 git karmasını kullanın. Hâlâ incelenmeyi bekliyorsa, git ayrı karması yerine Gerrit Change-Id karmasını kullanın, çünkü karma ayrı bir yama kümesiyle ilgilidir (yeniden temel alındığında değişir, böylece çıkmaz oluşturur).

Change-Id

Gerrit 'in git-review aracı otomatik olarak "Change-Id: Ixxx" anahtar kelimesini yeni taahhütlere ekleyecektir.

Bağımlılıklar

Depends-On: Ixxx

Çapraz repo bağımlılığı (taahhüdünüz farklı bir depodaki başka bir işleme bağlıysa) varsa, son paragrafa Depends-On: Ixxx... ekleyerek bunları beyan edin. ("Ixxx"... diğer taahhütlerin Change-Id.) Bu Zuul'a taahhüdü bununla birlikte test etmesini söyleyecektir.

To provide additional guidance to developers, you can indicate the inverse relationship using Needed-By: Iyyy... in last paragraph of the commit message in the other repository. ("Iyyy"... is the Change-Id of your commit.) Note that Zuul does not react to this, it is just for the benefit of human readers. Also, Gerrit will automatically add backlinks based on the presence of Depends-On, regardless of any Needed-By.

Başkalarına katkı vermek

Co-Authored-by: gerrit_username <gerrit_user_email@example.com>

Değişiklik üzerinde çalışan diğer geliştiricilere katkı vermek için bu satırı Change-id'den önce ekleyin. Satır sonu ile ayrılmış birden fazla ekleyebilirsiniz.

Note that unlike other words in commit message footers, the word by is not capitalised; it's Co-Authored-by, not Co-Authored-By.

Daha fazla okuma

Kaynakça

  1. This is a legacy from times when lines were provided on punched cards. Columns 1 to 72 where used for the statement and columns 73 to 80 for short comments. Size 72 is reasonable enough to understand the code at first glance.
  2. Tüm üstbilgi/altbilgilerde olduğu gibi, adı tek tek büyük harfle yazılmış ve aralarında tireler (örneğin, Hypothetical-Header-Or-Footer) yazın. Adı iki nokta üst üste (":"), ardından bir boşlukla izleyin. Git işlemine benzer şekilde, HTTP ve E-posta üstbilgileri gibi, altbilginin üzerine fazladan boş satırlar eklenmesi altbilgiyi keser ve eski bölümü gövdeye yanlış ekler.