Gerrit/İleti yönergeleri sunma

From mediawiki.org
This page is a translated version of the page Gerrit/Commit message guidelines and the translation is 82% complete.

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.
    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.
    İ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.
  • 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. 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.
    Good examples: "badger: Add accessibility labels to form fields", "rdbms: Avoid infinite loop on null input", and "htmlform: Change colours to match April 2020 design".
    Bad examples: "Implement accessibility fixes", "Don't crash", or "Make prettier with a better design".
  • Konu satırını nokta/tam nokta (.) ile sonlandırmayın.


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. 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.

Footer and meta-data

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

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", "qunit", "phpunit" - 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.[1] (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 reposiory. ("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 capitalized; it's Co-Authored-by, not Co-Authored-By.

Daha fazla okuma

Kaynakça

  1. 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.