Açık kaynak deposuna katkıda bulunma

Tamamlandı

Katkıda bulunabileceğiniz alanı belirlediğinizde, bir sonraki adım katkınızı hazırlamaktır. Projeye katılma isteğinizi belirtme, çekme isteği oluşturma ve kabul edilme şansınızı artırma konularını nasıl yapabileceğinizi gözden geçireceğiz.

Açık kaynak projesine bir çalışmayla katkıda bulunma söz konusu olduğunda, başarının önemli faktörlerinden biri de iletişimdir. Önerdiğiniz değişiklikleri veya geliştirmeleri başkalarına iletme konusunda rahat hissetmeyebilirsiniz. Sıklıkla bu diyalog tartışmalara ve ilk vizyonunuzdan ödünler vermenize yol açar.

Açık kaynak projesine katılmış olan diğer kişilerle etkin iletişimden kaçınmak, zaman ayırıp başka birinin zaten üzerinde çalışmakta olduğu görevlerde çalışma riski doğurur. Projenin değerleri veya en iyi yöntemleriyle uyumlu olmayan özellikler veya geliştirmeler üzerinde çalışıyor da olabilirsiniz. Her iki durumda da herkesin zamanı harcanmış olur. Buna karşılık, etkin bir iletişim kurmak çalışmanızın iyi karşılanmasını ve etkili olmasını sağlar.

Diğer proje üyeleriyle yeni özellikler ve değişiklikler hakkında iletişim kurarken başarılı olacağınızdan nasıl emin olabilirsiniz? İlk olarak açık fikirli olmaya çalışın. Geri bildirime açık olun ve sabırlı olun. Açık kaynak proje bakımcılarının büyük olasılıkla gündüz işleri ve sürdürmek istedikleri özel hayatları vardır. Hemen yanıt alamazsanız bakımcılara ping yapmadan önce biraz daha uzun süre bekleyin.

Amacınızı bakımcılara iletme

Gerçekten çalışmaya başlamadan önce her zaman katkıda bulunma amacınızı ileterek başlangıç yapın. README dosyasında aksi belirtilmediği sürece sorun izleyicisi genellikle bunu yapmak için en uygun yerdir.

  • Mevcut bir sorun üzerinde çalışmak istiyorsanız , Atananlar bölümüne bakarak bu soruna kimsenin atanmadığını denetleyin. Ayrıca Bağlı pull request'ler bölümünü de kontrol edin. Bağlantılı bir çekme talebi, birisinin zaten üzerinde çalıştığı anlamına gelir. Sorun üzerinde çalışmakla ilgilendiğini belirten biri olup olmadığını görmek için yorumları gözden geçirin. Her şey netse, konu üzerinde çalışmakla ilgilendiğinizi belirtmek için bir yorum gönderin. Bu şekilde, daha sonra gelecek kişilere birinin sorun üzerinde çalıştığını söylemiş olursunuz. Ayrıca gerekirse bakımcılar size rehberlik ve öneriler içeren yanıtlar verebilir.

    Atananlar ve Bağlantılı çekme talepleri bölümlerini gösteren ekran görüntüsü.

  • Yeni bir özellik veya henüz sorun izleyicisinde yer almayan bir hata üzerinde çalışmak istiyorsanız yeni sorun oluşturun. Önerilmiş bir sorun şablonu varsa, bu şablona uyduğunuzdan emin olun ve sorun üzerinde çalışmak istediğinizi açıkça ifade edin. Bu yeni bir özellik teklifiyse veya sorun birçok değişiklik gerektiriyorsa, sonraki adıma geçmeden önce bakımcıların onayını aldığınızdan emin olun.

GitHub deposunda bir pull isteği oluşturun

Projeye yardımcı olma amacınızı ilettikten sonra, artık asıl katkınız üzerinde çalışmaya başlamak için hazırsınız.

Katkınız çekme isteği veya PR (çekme isteği) biçiminde olacaktır. Çekme isteği GitHub’da aşağıdaki gibi şeyleri içeren özel bir yerdir:

  • Değişiklikleriniz için bir başlık ve açıklama.
  • Önerdiğiniz değişiklikleri içeren bir veya birden fazla taahhüt.
  • Herkesin değişikliklerle ilgili bir tartışmaya katılabileceği açıklamalar.
  • Değişikliklerinizle ilgili ayrıntılı geri bildirimleri bulabileceğiniz ve sonunda önerileri işleyebileceğiniz kod incelemeleri.
  • Örneğin bakımcıların uygulamaya koymuş olabilecekleri otomatik testlerden gelen durum denetimleri. Durum denetimleri farklı amaçlara hizmet edebilir. Örneğin, değişikliklerinizin projenin kurallarına uygun olduğundan veya değişikliklerinizin kodu bozmadığından emin olabilirler.

Çekme isteği oluşturulduktan sonra yeni commitlerle, yorumlarla veya kod incelemeleriyle güncellenebilir. Bu süreç, proje sorumluları veya proje yöneticileri pull isteğini onaylayıp birleştirene ya da değişiklikleri reddedip pull isteğini kapatana kadar devam eder. Pull isteğiniz birleştirildiğinde, değişiklikleriniz projenin kod tabanına entegre edildi demektir.

Adım adım pull isteği oluşturun

  1. Katkıda bulunmak istediğiniz projenin GitHub sayfasını açın.

  2. GitHub hesabınızda bir depo kopyası oluşturmak için Çatal düğmesini seçin. Varsayılan olarak, kendi kopyanız olmadığı sürece ortak bir depoda değişiklik yapma izniniz olmadığından bu adım gereklidir. Projenin çatalını oluşturarak üzerinde değişiklik yapabileceğiniz bir kopya oluşturmuş olursunuz.

    GitHub projesinin Çatal düğmesini gösteren ekran görüntüsü.

  3. Hesap profili menüsünden Depolarınız'ı seçin.

    Profil açılan menüsünü ve Depolarınız adlı girdiyi gösteren ekran görüntüsü.

  4. Depo çatalını seçin.

  5. Git deposunu yerel makinenize "kopyalama" hakkında bilgi almak için Kod düğmesini seçin.

    GitHub projesini kopyalama seçeneklerini gösteren ekran görüntüsü.

  6. Depo URL'sini kopyalamak için pano simgesini seçin ve bir terminale girin:

    git clone <REPOSITORY_URL>
    

    Bu komut yerel makinenizde deponun bir kopyasını oluşturur.

    Alternatif olarak, bir uygulamayı kullanmayı tercih ediyorsanız GitHub Desktop'ı da kullanabilirsiniz. Alternatif olarak, seçenek size önerildiyse GitHub Codespaces'ı da kullanabilirsiniz. Visual Studio Code kullanıcısıysanız, GitHub Codespaces size tanıdık gelecektir.

  7. Projenin kopyalanması bittikten sonra proje klasörüne girin:

    cd <PROJECT_FOLDER>
    
  8. (İsteğe bağlı) Aşağıdaki komutu kullanarak yeni bir dal oluşturun:

    git checkout -b <BRANCH_NAME>
    

    Bu adım zorunlu değildir, ancak kesinlikle önerilir. Bir yeni dal ile her biri farklı bir dal kullanan birçok katkı üzerinde ayrı ayrı çalışabilirsiniz.

  9. Projede istediğiniz değişiklikleri yapın ve taahhüt edin veya yükleyin.

    git add .
    git commit -m "<COMMIT_MESSAGE>"
    

    Bu komutlar değişikliklerinizi komit için hazırlar ve ardından belirtilen iletiyle bir komit oluşturur. İşleme iletisinde değişikliklerinizi doğru bir şekilde açıklamaya özen gösterin. İzlemeniz gereken commit mesajı kuralları için CONTRIBUTING dosyasında bahsedilip edilmediğini kontrol etmek de iyi bir fikirdir.

  10. Şu komutu kullanarak değişikliklerinizi uzak depoya gönderin:

    git push --set-upstream origin <BRANCH_NAME>
    

    Bu komut GitHub’daki yukarı akış deposunda yeni bir dal oluşturur (çatalınız) ve tüm işlemelerinizi oraya gönderir.

    Not

    Yukarı akış deposundan söz ettiğimizde, yerel deponuza bağlı uzak depoya başvururuz. origin, 4. adımda Git tarafından oluşturulan depo URL’sinin varsayılan diğer adıdır.

    Daha önce dal oluşturmadıysanız yalnızca git push girin.

  11. GitHub'da proje çatallanızı açın ve görüntülenen öneri kutusunda Karşılaştır ve pull request düğmesini seçin.

    GitHub'da öneri kutusunu gösteren çekme isteği ekran görüntüsü.

  12. Başlığı ve açıklamayı doldurun ve Çekme isteği oluştur'u seçin.

    Çekme isteği oluşturma arabirimini gösteren ekran görüntüsü.

    Çekme isteği açıklaması için bir şablon varsa, zaman ayırıp tüm gerekli bilgileri doldurun. Eğer şu anda yoksa, bakımcıların hangi değişiklikleri neden önerdiğinizi anlaması için yeterli bağlamı sağladığınızdan emin olun. İlgili sorunla bağlantı kurmak için #<ISSUE_NUMBER> kullanarak numarasını belirttiğinizden emin olmalısınız. Sorun numarasını başlığının yanında bulabilirsiniz.

    Sorun numarasını gösteren ekran görüntüsü.

Durum denetimlerinden geçme

Çekme isteğini oluşturduktan sonra aşağıdaki gibi en altında durum denetimleri bulunan bir bölüm görebilirsiniz:

Çekme isteğindeki durum denetimlerinin sonuçlarını gösteren ekran görüntüsü.

Bu durum denetimleri projede tutarlı bir kalite elde etmek için bakımcıların devreye soktuğu otomatik denetimlerdir.

Çekme isteğinizin kabul edilmesini sağlamak için tüm otomatik denetimlerden geçmesi gerekir. Yukarıdaki ekran görüntüsünde olduğu gibi başarısız oluyorsa, hata hakkında daha fazla bilgi edinmek ve düzeltmek için yapmanız gerekenleri öğrenmek için Ayrıntılar düğmesini seçin.

Başarısız olan bir test hakkında ne yapılacağını bilmiyorsanız, her zaman yorumları kullanarak durumu düzeltmek için bakımcıların rehberliğini veya yardımını isteyebilirsiniz.

Pull request'lerle ilgili rehberlik veya inceleme isteyin

Yaptığınız bazı değişikliklerden emin olmayabilir ve bakımcıların fikrini almak isteyebilirsiniz. Bunu yapmanın en iyi yolu doğrudan pull istekleri üzerinde yorumda bulunmaktır. Değişikliklerinizin devam eden bir çalışma olduğunu düşünüyorsanız, diğer katkıda bulunanlardan rehberlik veya yardım istemek yerine taslak çekme isteği oluşturma seçeneğiniz de vardır.

Taslak çekme isteği seçeneğini gösteren ekran görüntüsü.

Çekme isteğiniz proje bakımcılarına ulaştıktan sonra bakımcılar konuşmaya yanıt verebilir veya doğrudan değişikliklerinizi gözden geçirebilir. Çekme isteği incelemesinin birden çok olası sonucu vardır.

  • Değişiklikleriniz onaylandı. Tebrikler!
  • Çekme isteğiniz bazı değişiklikler gerektiriyor. Cesaretiniz kırılmasın! Sağlanan geri bildirimi yakından inceleyin. İstenen değişiklikleri yaparsanız çekme isteğinizin kabul edilme şansı artar. Dalınıza yeni commit’ler gönderirseniz, pull request daha fazla değişiklikle otomatik olarak güncellenir.
  • Gözden geçiren, bazı yorumlarda bulundu. Bu genellikle değişiklikleriniz veya bu değişiklikleri yapmanızın ardındaki sebeple ilgili daha fazla ayrıntı gerektiği anlamına gelir.

Çekme isteğinizle ilgili yorumları yanıtla

Tüm iletişimlerinizde saygılı davranmayı ve kullanım kurallarına uymayı unutmayın. Değişiklikleriniz kabul edilmeden önce büyük olasılıkla bakımcılar veya diğer katkıda bulunanlarla tartışmalar devam edecektir.

Açık kaynağa katkıda bulunmak için sabır gerekir. Bazen hemen geri bildirim alamazsınız. Bakımcılara e-posta, X veya daha hızlı bir yanıt almayı umarak başka bir yolla özel olarak ulaşmayın. Bu zararlı bir davranış olarak kabul edilir. Ayrıca konuları herkese açık olarak tartışmak, diğer katkıda bulunanlara veya konuya ilgi gösteren kişilere değişikliklerin ardındaki süreci ve izlenecek en iyi yöntemleri öğrenme fırsatı verir.