Ekim ayı geldiğinde, açık kaynak dünyasında heyecan verici bir etkinlik başlar: Hacktoberfest! DijitalOkyanus tarafından düzenlenen bu etkinlik, geliştiricileri ve teknoloji meraklılarını açık kaynak projelere katkıda bulunmaya teşvik eder. İster deneyimli bir yazılımcı olun ister kod yazmaya yeni başlayan biri, Hacktoberfest açık kaynak dünyasına adım atmak ve ilk Pull Request’inizi (PR) göndermek için mükemmel bir fırsattır. Bu rehberde, Hacktoberfest’e nasıl katılacağınızı ve GitHub üzerinden ilk PR’ınızı nasıl başarıyla göndereceğinizi adım adım öğreneceksiniz.
Açık kaynak projelerine katkıda bulunmak, sadece kod yazma becerilerinizi geliştirmekle kalmaz, aynı zamanda küresel bir geliştirici topluluğunun parçası olmanızı sağlar. Yeni teknolojiler öğrenir, diğer geliştiricilerle işbirliği yapar ve gerçek dünya sorunlarına çözüm üretme deneyimi kazanırsınız. Hacktoberfest, bu yolculuğa başlamak için düşük eşikli, eğlenceli ve ödüllendirici bir ortam sunar.
Hacktoberfest’e Hazırlık ve GitHub Temelleri
Hacktoberfest maceranıza başlamadan önce, temel bazı araçlara ve bilgilere sahip olmanız gerekiyor. Bu bölüm, GitHub hesabınızı oluşturmaktan Git’i kurmaya ve doğru projeyi bulmaya kadar tüm hazırlık adımlarını kapsar.
GitHub Hesabı Oluşturma
GitHub, dünyanın en büyük yazılım geliştirme platformlarından biridir ve açık kaynak projelerinin kalbidir. Hacktoberfest’e katılmak ve Pull Request göndermek için bir GitHub hesabınızın olması şarttır. Eğer henüz bir hesabınız yoksa, github.com/join adresine giderek kolayca bir hesap oluşturabilirsiniz. Kayıt işlemi sırasında bir kullanıcı adı, e-posta adresi belirlemeniz ve bir parola oluşturmanız istenir. E-posta adresinizi doğruladığınızdan emin olun, çünkü bu, hesabınızın güvenliği ve GitHub’daki işlemleriniz için önemlidir.
Git Kurulumu
Git, dağıtık bir versiyon kontrol sistemidir. Yani, projenizin kod tabanındaki değişiklikleri takip etmenizi, farklı versiyonlar arasında geçiş yapmanızı ve diğer geliştiricilerle işbirliği yapmanızı sağlar. GitHub ile etkileşim kurmak ve yerel bilgisayarınızda kod değişiklikleri yapmak için Git’e ihtiyacınız olacak. Git’i işletim sisteminize göre kurmak için aşağıdaki adımları izleyebilirsiniz:
- Windows: Git for Windows adresinden kurulum dosyasını indirip varsayılan ayarlarla kurabilirsiniz.
- macOS: Homebrew kullanıyorsanız terminalde
brew install gitkomutunu çalıştırabilirsiniz. Veya Git for macOS adresinden kurulum dosyasını indirebilirsiniz. - Linux: Çoğu Linux dağıtımında Git varsayılan olarak yüklü gelir. Yüklü değilse, terminalde
sudo apt install git(Debian/Ubuntu) veyasudo yum install git(Fedora/CentOS) gibi komutları kullanabilirsiniz.
Kurulum tamamlandıktan sonra, terminalinizi açın ve aşağıdaki komutları kullanarak Git’i kendi bilgilerinizle yapılandırın:
git config --global user.name "Adınız Soyadınız"
git config --global user.email "eposta@adresiniz.com"
Bu bilgiler, yaptığınız her kod değişikliğinin (commit) kimin tarafından yapıldığını belirtmek için kullanılacaktır.
Hacktoberfest İçin Doğru Projeyi Bulma
Hacktoberfest’e katılmanın en önemli adımlarından biri, katkıda bulunabileceğiniz uygun bir proje bulmaktır. GitHub’da milyonlarca açık kaynak proje bulunuyor ve aralarından doğru olanı seçmek göz korkutucu görünebilir. İşte size birkaç ipucu:
- Hacktoberfest Etiketi: Hacktoberfest için özel olarak hazırlanmış veya katkıya açık olan projeleri bulmak için GitHub arama çubuğuna
label:hacktoberfestyazabilirsiniz. - Başlangıç Dostu Etiketler: Yeni başlayanlar için uygun sorunları bulmak için
good first issue,beginner-friendlyveyahelp wantedgibi etiketleri arayın. Bu etiketler genellikle daha küçük, iyi tanımlanmış ve kolay çözülebilir sorunları gösterir. - İlgi Alanlarınız: Kendi ilgi alanlarınıza veya bildiğiniz programlama dillerine uygun projeler seçmek, süreci daha keyifli hale getirecektir. Python, JavaScript, Java veya C# gibi dillerde uzmanlığınız varsa, bu dillerdeki projelere odaklanın.
- README ve Katkı Rehberleri: Bir projeye karar verdiğinizde, projenin
README.mddosyasını ve varsaCONTRIBUTING.md(katkı rehberi) dosyasını dikkatlice okuyun. Bu belgeler, projenin amacı, nasıl kurulacağı, nasıl katkıda bulunulacağı ve beklenen kodlama standartları hakkında önemli bilgiler içerir.
Unutmayın, küçük bir dokümantasyon düzeltmesi, yazım hatası giderme veya basit bir kod düzeltmesi bile değerli bir katkıdır ve ilk PR’ınız için harika bir başlangıç olabilir.
Projeyi Klonlama ve Değişiklik Yapma
Uygun bir proje bulduktan sonra, sıra projenin kod tabanını yerel bilgisayarınıza indirmeye ve üzerinde değişiklikler yapmaya gelir. Bu süreçte dikkatli olmak ve doğru adımları izlemek önemlidir.
Projeyi Fork Etme
Doğrudan bir projenin ana deposunda değişiklik yapmak yerine, genellikle projenin kendi kopyasını (fork) oluşturmanız gerekir. Fork etmek, orijinal projeyi etkilemeden kendi değişikliklerinizi yapabileceğiniz kişisel bir kopya oluşturmanızı sağlar. Bu sayede, yaptığınız değişiklikler üzerinde tam kontrol sahibi olursunuz ve orijinal proje yöneticilerinin izni olmadan ana depoyu etkilemezsiniz.
Bir projeyi fork etmek için:
- GitHub’da seçtiğiniz projenin sayfasına gidin.
- Sayfanın sağ üst köşesinde bulunan “Fork” butonuna tıklayın.
- Açılan pencerede, fork’unuzu oluşturmak istediğiniz hesabı seçin (genellikle kendi hesabınız).
Bu işlemden sonra, projenin bir kopyası kendi GitHub hesabınızda görünecektir.
Fork Edilen Depoyu Yerel Ortama Klonlama
Fork ettiğiniz depoyu kendi bilgisayarınıza indirmek için klonlama işlemini yapmanız gerekir. Bu, projenin tüm kodunu yerel geliştirme ortamınıza aktarır.
- GitHub’daki kendi fork’unuzun sayfasına gidin.
- “Code” butonuna tıklayın ve HTTPS sekmesindeki URL’yi kopyalayın.
- Terminalinizi veya komut istemcinizi açın ve projenizi kaydetmek istediğiniz dizine gidin (örneğin,
cd Belgeler/GitHubProjelerim). - Aşağıdaki komutu kullanarak depoyu klonlayın (URL’yi kendi kopyaladığınız URL ile değiştirin):
git clone https://github.com/KullaniciAdiniz/ProjeAdi.git
Bu komut, projenin bir kopyasını bilgisayarınızdaki mevcut dizine indirecektir.
Yeni Bir Dal (Branch) Oluşturma
Kod tabanında değişiklik yapmadan önce, ana daldan (genellikle main veya master) ayrı yeni bir dal (branch) oluşturmak iyi bir uygulamadır. Bu, yaptığınız değişikliklerin ana kod tabanını doğrudan etkilememesini sağlar ve birden fazla özellik veya hata düzeltmesi üzerinde paralel olarak çalışmanıza olanak tanır. Yeni bir dal oluşturmak ve o dala geçmek için:
cd ProjeAdi
git checkout -b yeni-ozellik-veya-hata-duzeltmesi
yeni-ozellik-veya-hata-duzeltmesi yerine, yaptığınız değişikliği açıklayan kısa ve anlamlı bir isim kullanın (örneğin, readme-guncelleme, fix-login-bug).
Değişiklikleri Yapma
Artık projenin kodunu yerel ortamınızda ve kendi dalınızda çalışmaya hazırsınız. Tercih ettiğiniz kod düzenleyiciyi (VS Code, Sublime Text, Atom vb.) kullanarak projenin dosyalarını açın ve üzerinde çalışın. Hacktoberfest için genellikle aşağıdaki türde değişiklikler uygun olabilir:
- Dokümantasyon Güncellemesi:
README.md,CONTRIBUTING.mdveya diğer dokümantasyon dosyalarındaki yazım hatalarını düzeltme, eksik bilgileri tamamlama veya açıklamaları netleştirme. - Küçük Hata Düzeltmeleri: Projede tanımlanmış küçük bir hatayı giderme.
- Basit Özellik Ekleme: Proje sahibinin “good first issue” olarak işaretlediği küçük bir özellik ekleme.
- Kod İyileştirmesi: Mevcut kodda küçük bir performans veya okunabilirlik iyileştirmesi (örneğin, gereksiz boşlukları silme, değişken isimlerini düzeltme).
Değişikliklerinizi yaparken, projenin kodlama standartlarına ve yönergelerine uymaya özen gösterin. Değişiklikleriniz bittiğinde, kaydetmeyi unutmayın.
Değişiklikleri Kaydetme ve GitHub’a Gönderme
Yaptığınız değişiklikler yerel bilgisayarınızda hazır olduğunda, bunları Git aracılığıyla takip edip GitHub’daki fork’unuza göndermeniz gerekir. Bu süreç, “add”, “commit” ve “push” adımlarından oluşur.
Değişiklikleri Aşamaya Ekleme (Staging)
Git, değişikliklerinizi kaydetmeden (commit etmeden) önce hangi dosyaların kaydedileceğini seçmenize olanak tanır. Bu işleme “staging” denir. Terminalinizde, projenizin kök dizininde olduğunuzdan emin olun ve aşağıdaki komutları kullanın:
- Hangi dosyaların değiştiğini görmek için:
git status - Tüm değişiklikleri aşamaya eklemek için:
git add . - Belirli bir dosyayı aşamaya eklemek için:
git add dosya_adi.txt
git status komutunu tekrar çalıştırarak değişikliklerin yeşil renkte göründüğünü, yani aşamaya eklendiğini doğrulayabilirsiniz.
Değişiklikleri Kaydetme (Commit Etme)
Aşamaya eklediğiniz değişiklikleri kalıcı olarak kaydetmek için “commit” işlemi yapılır. Her commit, yapılan değişiklikleri ve bu değişikliklerin neden yapıldığını açıklayan bir mesaj içerir. İyi bir commit mesajı, projenin geçmişini anlamayı kolaylaştırır.
git commit -m "Kısa ve açıklayıcı commit mesajı"
Örnek bir commit mesajı: git commit -m "README'deki yazım hatasını düzelt" veya git commit -m "Login sayfasındaki hata düzeltildi #123" (eğer bir GitHub sorununu çözüyorsa).
Değişiklikleri GitHub’a Gönderme (Push Etme)
Yerel bilgisayarınızdaki commit’leri GitHub’daki fork’unuza göndermek için “push” komutunu kullanın. Bu, yerel dalınızdaki değişiklikleri uzak depodaki aynı adlı dala aktarır.
git push origin yeni-ozellik-veya-hata-duzeltmesi
Eğer bu, yeni oluşturduğunuz bir dalın ilk push’u ise, Git size genellikle aşağıdaki komutu kullanmanızı önerir:
git push --set-upstream origin yeni-ozellik-veya-hata-duzeltmesi
Bu komut, yerel dalınızı uzak depodaki karşılığına bağlar, böylece sonraki push’larda sadece git push yazmanız yeterli olur. İşlem başarılı olduğunda, terminalinizde bir başarı mesajı göreceksiniz ve GitHub’daki fork’unuzu ziyaret ettiğinizde yeni dalınızın ve değişikliklerinizin orada olduğunu göreceksiniz.
İlk Pull Request’inizi Oluşturma
Tüm değişikliklerinizi GitHub’daki fork’unuza gönderdikten sonra, sıra geldi bu değişiklikleri orijinal projeye dahil etmek için bir Pull Request (PR) oluşturmaya. Bu, açık kaynak katkı sürecinin en heyecan verici adımlarından biridir!
GitHub Arayüzünden Pull Request Oluşturma
Değişikliklerinizi GitHub’a push ettiğinizde, GitHub genellikle size otomatik olarak bir Pull Request oluşturma seçeneği sunar:
- Kendi GitHub fork’unuzun sayfasına gidin.
- Sayfanın üst kısmında, “This branch is 1 commit ahead of original_owner/main.” (Bu dal, orijinal_sahip/main’den 1 commit önde.) gibi bir mesaj göreceksiniz. Bu mesajın yanında “Contribute” (Katkıda Bulun) veya “Compare & pull request” (Karşılaştır ve çekme isteği oluştur) butonu bulunur. Bu butona tıklayın.
- Eğer bu mesajı görmüyorsanız, “Pull requests” sekmesine gidin ve “New pull request” (Yeni çekme isteği) butonuna tıklayın. Ardından, “base repository” (temel depo) olarak orijinal projeyi, “head repository” (kaynak depo) olarak kendi fork’unuzu ve “compare” (karşılaştırılacak) dal olarak da üzerinde çalıştığınız dalı seçin.
- Açılan sayfada, Pull Request’inizin başlığını ve açıklamasını girmeniz istenir.
İyi bir Pull Request başlığı ve açıklaması yazmak çok önemlidir:
- Başlık: Değişikliğin özünü kısa ve net bir şekilde özetleyin (örneğin, “README’deki yazım hatasını düzelt” veya “Kullanıcı kayıt formuna doğrulama eklendi”).
- Açıklama: Yaptığınız değişiklikleri ayrıntılı olarak açıklayın.
- Ne değiştirdiniz?
- Neden değiştirdiniz?
- Hangi sorunu çözüyor veya hangi özelliği ekliyor?
- Eğer bir GitHub sorunuyla (issue) ilgiliyse, açıklamaya
Fixes #ISSUE_NUMARASIveyaCloses #ISSUE_NUMARASIekleyin. Bu, PR birleştirildiğinde ilgili sorunun otomatik olarak kapanmasını sağlar. - Gerekirse ekran görüntüleri veya GIF’ler ekleyin.
Tüm bilgileri girdikten sonra “Create pull request” (Çekme isteği oluştur) butonuna tıklayın. Tebrikler, ilk Pull Request’inizi oluşturdunuz!
Geri Bildirimleri Yönetme
Pull Request’inizi gönderdikten sonra, proje bakıcıları (maintainers) tarafından gözden geçirilecektir. Bu “code review” süreci, kodunuzun kalitesini artırmak, olası hataları bulmak ve projenin standartlarına uyduğundan emin olmak için önemlidir. Geri bildirimler genellikle GitHub’daki PR sayfasında yorumlar şeklinde gelir.
- Sabırlı Olun: Proje bakıcılarının yoğun olabileceğini unutmayın. Yanıt gelmesi biraz zaman alabilir.
- İletişim Kurun: Geri bildirimlere kibarca yanıt verin. Anlamadığınız bir şey varsa soru sormaktan çekinmeyin.
- Değişiklik Talepleri: Eğer değişiklik talepleri (requested changes) gelirse, bunları dikkatlice okuyun ve yerel ortamınızda gerekli düzeltmeleri yapın.
- Ekstra Commit’ler: Düzeltmeleri yaptıktan sonra, değişiklikleri aşamaya ekleyin, commit edin ve aynı dala tekrar push edin. Bu yeni commit’ler otomatik olarak mevcut Pull Request’inize eklenecektir.
Geri bildirimleri dikkate almak ve gerekli düzeltmeleri yapmak, PR’ınızın kabul edilme şansını artırır ve açık kaynak topluluğunda iyi bir izlenim bırakmanızı sağlar.
Pull Request’in Birleştirilmesi (Merge Edilmesi)
Pull Request’iniz tüm incelemelerden geçip onaylandığında, proje bakıcıları tarafından orijinal projenin ana dalına birleştirilecektir (merge edilecektir). Bu, yaptığınız değişikliklerin artık projenin resmi kod tabanının bir parçası olduğu anlamına gelir. Birleştirme işlemi tamamlandığında, genellikle GitHub üzerinden bir bildirim alırsınız.
Hacktoberfest kapsamında, birleştirilen veya “hacktoberfest-accepted” etiketiyle onaylanan 4 geçerli Pull Request, Hacktoberfest tişörtü veya ağaç dikme seçeneği kazanmak için yeterlidir. Bu, sadece bir ödül değil, aynı zamanda açık kaynak dünyasına yaptığınız katkının bir sembolüdür.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Hacktoberfest, açık kaynak dünyasına giriş yapmak, yeni beceriler öğrenmek ve küresel bir topluluğun parçası olmak için eşsiz bir fırsattır. İlk Pull Request’inizi göndermek göz korkutucu görünebilir, ancak bu rehberdeki adımları takip ederek süreci kolayca tamamlayabilirsiniz. Unutmayın, her büyük geliştirici bir zamanlar ilk PR’ını göndermiştir. Önemli olan başlamak, öğrenmek ve katkıda bulunmaya devam etmektir. Hacktoberfest sadece bir ay sürse de, açık kaynak yolculuğunuzun bir başlangıcı olabilir. Cesur olun, keşfedin ve kodlamanın keyfini çıkarın!
Sıkça Sorulan Sorular (SSS)
Hacktoberfest’e katılmak için ne kadar kod bilmem gerekiyor?
Çok fazla kod bilgisine sahip olmanıza gerek yok! Hacktoberfest, her seviyeden geliştiriciyi teşvik eder. Basit yazım hatalarını düzeltmek, dokümantasyonu iyileştirmek, küçük hataları gidermek veya hatta bir projenin README dosyasını daha anlaşılır hale getirmek gibi “kod dışı” katkılar bile değerli sayılır. Önemli olan, öğrenmeye ve katkıda bulunmaya istekli olmaktır.
Sadece kod katkısı mı yapabilirim? (Dokümantasyon, tasarım vb.)
Kesinlikle hayır! Hacktoberfest sadece kod yazmakla ilgili değildir. Dokümantasyon iyileştirmeleri, kullanıcı arayüzü (UI) veya kullanıcı deneyimi (UX) tasarımları, test yazma, hata ayıklama, örnekler oluşturma ve hatta çeviriler gibi çeşitli katkılar da kabul edilir. Önemli olan, projenin gelişimine herhangi bir şekilde değer katmaktır.
Pull Request’im kabul edilmezse ne olur?
PR’ınızın kabul edilmemesi gayet normal bir durumdur ve cesaretinizi kırmamalıdır. Bazen değişiklikler projenin kapsamına uygun olmayabilir, başka bir geliştirici benzer bir değişiklik yapmış olabilir veya projenin genel vizyonuyla uyuşmayabilir. Geri bildirimleri dikkatlice okuyun, onlardan ders çıkarın ve başka bir projeye veya aynı projenin başka bir sorununa odaklanın. Her reddedilen PR, bir öğrenme fırsatıdır.
Yanlış depoya PR gönderdim, ne yapmalıyım?
Eğer yanlış bir depoya Pull Request gönderdiyseniz, genellikle PR sayfasında “Close pull request” (Çekme isteğini kapat) butonunu kullanarak PR’ınızı kapatabilirsiniz. Ardından doğru depoya veya doğru dala yeni bir PR oluşturabilirsiniz.
Hacktoberfest’e ne zaman başlayabilirim?
Hacktoberfest her yıl 1 Ekim’de başlar ve 31 Ekim’de sona erer. Bu süre zarfında gönderdiğiniz ve kabul edilen Pull Request’ler sayaca dahil edilir. Ancak açık kaynak projelerine katkıda bulunmak için Hacktoberfest’i beklemenize gerek yok, yılın her günü katkıda bulunabilirsiniz!
Kaç PR yapmam gerekiyor?
Hacktoberfest’te ödül kazanmak için (genellikle bir tişört veya ağaç dikme seçeneği), etkinlik süresince en az 4 Pull Request’inizin başarılı bir şekilde birleştirilmesi veya “hacktoberfest-accepted” etiketiyle işaretlenmesi gerekir. Ancak, asıl amaç öğrenmek ve açık kaynak topluluğuna katkıda bulunmaktır, sayı sadece bir teşviktir.