⚠ Bu capstone GitHub da gerçek bir PR içerir. Ebeveyn eşliğinde veya öğretmen gözetiminde.
Modül 10 · Capstone · ⏱ 30 dk

C3: Bir OSS projesine 1 PR

C3 OSS PR

Bu derste neler öğreneceksin

  • Açık bir DE aracı (dbt dlt Bruin Kestra) seçer
  • Issue bulur + çözer
  • PR açar + review alır

Ebeveyn Notu

Bu capstone gerçek bir GitHub hesabı ve gerçek bir PR içerir. Bir ebeveyn veya öğretmen yanında olsun:

  • GitHub hesabı açılırken e-posta ve kullanıcı adı seçiminde yardım.
  • Açık kaynak topluluklarının iletişim kuralları (nazik olmak, kod yazarken deneyimli birinin gözden geçirmesi).
  • Kişisel bilgi paylaşımı (lokasyon, okul adı, doğum yılı) paylaşılmamalı.

Süreç eğiticidir; katıl, her adımı beraber konuş, “neden böyle yazdık?” diye sor.

Neden Açık Kaynağa PR?

Bir veri mühendisi olarak ilk iş başvurusunda ne diyeceksin? “Kendi başıma 3 proje yaptım” güzel. Ama “bir açık kaynak projeye kabul edilmiş PR’ım var” çok daha güçlü. Çünkü:

  • Başkalarının koduna katkı yapabildiğini gösterir.
  • Topluluk standartlarına uyum (PR template, lint, test) gösterir.
  • GitHub profil timeline’ında görünür — işe alımcı bakar.

Adım 1: Proje Seç (küçük ve davetkar)

İlk PR için küçük, aktif, “good first issue” etiketli bir proje seç. Öneriler:

ProjeNeden iyi?Dil
dbt-utils”good first issue” çok, 100+ stars/aySQL + Python
dlt veri kaynakları50+ kaynak, helper PR’ları kolayPython
BruinYeni ama davetkar, “help wanted” varGo + SQL
KestraDevasa ama plugin PR’ları küçükJava + YAML

Filtre: son 30 günde PR merge edilmiş olsun, “good first issue” etiketi olsun, iletişim dili İngilizce.

Adım 2: Issue Bul

  1. Repo’ya git, Issues sekmesi.
  2. Filtrele: label:"good first issue" + is:open.
  3. İlk 5 issue’yu oku. “Bunu ben yapabilirim” dediğini seç.
  4. Yorum yaz:
Hi! I'd like to work on this. I'm learning data engineering
and this is my first PR. I'll start with a draft PR soon.

Senior maintainer cevap verirse sabırlı ol, 1-3 gün gecikme normal.

Adım 3: Fork + Branch

# 1) GitHub'da "Fork" butonu ile kendi hesabına kopyala
git clone https://github.com/`<senin-kullanıcı>`/`<repo>`.git
cd `<repo>`

# 2) Yeni branch (ana branch'e dokunma)
git checkout -b fix/issue-1234-add-null-check

# 3) Değişikliği yap
# ... kod düzenle, test ekle ...

# 4) Test'leri çalıştır (repo'nun CONTRIBUTING.md'sinde yazar)
pytest tests/
# veya
make test

Küçük ipucu: değişikliğin mümkün olduğunca küçük olsun. Sadece sorunu çöz, başka şey “iyileştirme”.

Adım 4: PR Aç

PR başlığı: Fix #1234: Add null check to XYZ function (issue numarasıyla).

PR açıklaması:

## What
- Adds a `not_null` check to the `xyz` macro.
- Returns empty string instead of failing silently.

## Why
- Closes #1234
- Without this check, downstream models can break.

## How to test
- `dbt run --select xyz`
- `pytest tests/test_xyz.py`

## Checklist
- [x] Tests added
- [x] Docs updated
- [x] PR is small (< 200 lines diff)

Maintainer muhtemelen 1-3 tur review yapacak: “şu satırı şöyle değiştir, test ekle, doc güncelle”. Her turda yeni commit at. Asla tartışma; sadece “tamam, düzelttim” de.

Adım 5: Merge + Kutlama

PR merge olduktan sonra:

  • GitHub profil timeline’ında görünür.
  • Maintainer’a teşekkür yorumu yaz.
  • Blog yazısı veya LinkedIn postu: “İlk açık kaynak PR’ım merge oldu — dbt-utils’a null check ekledim.”
  • Capstone C1’in README’sine bu PR’ın linkini ekle.

Tipik Hatalar

HataÇözüm
”PR çok büyük”Sadece sorunu çöz, başka şey ekleme
”Test yazmayı unuttum”Her PR’da en az 1 test
”Lint fail”Repo’nun .pre-commit-config.yaml’a uy
”Commit mesajı kötü""Add null check” değil, “Fix #1234: add null check to xyz"
"Review’a cevap vermedim”24 saat içinde cevap, uzun sürerse “yarın dönüyorum” yaz

Ne Öğrendik?

  • Açık kaynak proje fork + PR döngüsü.
  • Topluluk standartları: test, lint, doc üçlüsü.
  • Sabırlı iletişim (maintainer’lar gönüllü, cevap gecikir).
  • Profil timeline’ı = sürekli portfolyo.

Sıradaki

Tebrikler! Kursun 3 capstone’unu da tamamladın. Artık bir veri mühendisinin temel beceri setine sahipsin. Bir sonraki adım:

  • Kendi projene 1-2 yeni özellik ekle.
  • LinkedIn profiline 3 capstone’unu ekle (Featured bölümü).
  • DataTalksClub canlı cohort’una (Ocak 2027) katıl.

İyi yolculuklar!