Files
imajviewer/docs/rapor-github-acik-kaynak.md

5.7 KiB
Raw Blame History

Rapor — imajViewer'ı GitHub'da Açık Kaynak Yapmak

Tarih: 2026-08-06 Konu: GitHub'a açık kaynak repo koymak için gerekenler + mevcut repo durumu + geçmiş/silinme sorusu + "pro" hale getirme planı

1. Sorunun cevabı: dosya silersem GitHub'a eski dosyalar gider mi?

Çalışma ağacından gider, geçmişten GİTMEZ.

  • Aynı repo geçmişini (aynı commit zincirini) GitHub'a push edersen: sildiğin dosyalar son sürümde (en son commit'te) görünmez, ama git geçmişindeki eski commit'lerde aynen durur. GitHub'da eski commit'lere tıklayan herkes o dosyaları görür ve indirebilir.
  • Üstelik bu geçmiş 391 MB binary taşıyor (aşağıda detay). GitHub'a geçmişle gitmek hem bu yükü hem de "eski dosyalar hâlâ orada" sorununu getirir.
  • Öneri: GitHub için geçmişsiz / tek commit'li temiz başlangıç yap. Ya git init ile yeni repo (sıfır geçmiş), ya da squash ile tek commit. O zaman ne sildiysen tamamen gider.

2. GitHub'a açık kaynak repo koymak için gerekenler (checklist)

Öğe Durum Not
LICENSE dosyası YOK README'de "MIT" yazıyor ama kökte LICENSE dosyası yok. GitHub lisansı bunu algılamaz
README ⚠️ Var Gitea URL'leri içeriyor, Türkçe, badge yok (detay: madde 4)
CONTRIBUTING.md YOK Katkı kuralları (kod stili, test, PR süreci)
CODE_OF_CONDUCT.md YOK GitHub topluluk standartları için beklenir
SECURITY.md YOK Güvenlik açığı bildirim yolu (private advisory)
CHANGELOG.md YOK 1.0.0 → 1.1.0 geçmişi yazılı değil
CI (GitHub Actions) YOK Sadece .gitea/workflows/ var — GitHub bunu ÇALIŞTIRMAZ, .github/workflows/ gerekir
Issue/PR template YOK .github/ISSUE_TEMPLATE/ + PULL_REQUEST_TEMPLATE.md
.gitignore Var İyi durumda (build/, .dart_tool/ ignore ediliyor)
Repo metadata description + topics (image-viewer, flutter, linux, windows) + lisans seçimi
Releases ⚠️ v1.1.0 tag + .deb/.exe asset'leri GitHub Releases'e taşınmalı
FUNDING.yml Opsiyonel

3. KRİTİK: Sızıntı / hijyen riskleri

  1. Gömülü token: git remote -v çıktısında origin URL'si https://git_alhan:1254baa3...@git.softmediadesign.com/... — token URL'e gömülü. Bu dosya .git/config'te; push ile GitHub'a gitmez (config transfer edilmez). Ama GitHub'a yeni remote eklerken bu URL'yi yanlışlıkla kopyalamamaya dikkat. Token'ı Gitea'dan yenilemek en temizi.
  2. Kişisel dosyalar repoda: imajviewer.desktop (yerel .desktop, mode 600), Implementation.md, PRD.md, update_plan_01.md, docs/session-*.md, docs/rapor-*.md — iç geliştirme notları. Açık kaynak repo'da hepsi durmamalı.
  3. Binary dosyalar git'te: deb/ (16 MB libflutter_linux_gtk.so vb. — build çıktısı) ve dist/ (.deb, .exe — sürüm paketleri) git ile takip ediliyor. Binary'ler git'e girmez; release asset'i olur. .gitignore'da *.deb/*.exe var ama !dist/*.deb istisnası ve deb/ dizini bunlarııkta bırakıyor.
  4. Mutlak yol: pubspec.yamlmsix_config.logo_path: C:/projects/imajviewer/... — yerel Windows yolu. GitHub runner'ında msix adımı kırılır; göreli yol olmalı.
  5. Geçmiş 391 MB: En büyük blob'lar: setup.exe 24 MB ×4 kopya, libflutter_linux_gtk.so 16 MB, .deb'ler 8-11 MB ×8, tar.gz 9 MB. GitHub'da dosya limiti 100 MB — şu an geçmiyor ama repo 1 GB'a yaklaşırsa GitHub uyarır, şişkinlik de kötü görünür.

4. README düzeltmeleri

  • Klon/curl komutlarındaki git.softmediadesign.com URL'leri GitHub URL'si olmalı
  • .deb kurulum adımındaki sürüm 1.0.0 yazılmış, güncel 1.1.0
  • Türkçe → açık kaynak için İngilizce (veya TR+EN iki dilli) önerilir
  • Badge'ler (build status, license, release) + ekran görüntüsü (imajviewer.png var)
  • "Gitea Actions" bölümü → "GitHub Actions" olarak yeniden yazılmalı

5. "Pro" hale getirme planı (uygulama adımları, onay sonrası)

  1. Kök temizliği: imajviewer.desktop sil; iç dokümanları (Implementation/PRD/ update_plan/docs) taşı ya da sil — karar gerekiyor (aşağıda).
  2. Binary'leri git'ten çıkar: git rm --cached deb/ dist/*.deb dist/*.exe, .gitignore'u düzelt (deb/ tamamen ignore; dist/'te sadece rebuild-deb.sh kalsın). Not: git rm --cached sadece ileriye dönük temizler; geçmişteki 391 MB durur — tam temizlik için ya filter-repo ya da temiz başlangıç gerekir.
  3. Lisans: Köke LICENSE (MIT) ekle.
  4. README'yi yeniden yaz: İngilizce, GitHub linkleri, badge, screenshot.
  5. Topluluk dosyaları: CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, CHANGELOG.md, .github/ (issue/PR template + workflows/build-windows.yml).
  6. CI'ı GitHub'a uyarla: .gitea/workflows/build-windows.yml.github/workflows/: GITEA_TOKENGITHUB_TOKEN (otomatik), release adımı softprops/action-gh-release ile GitHub Release + .deb/.exe asset.
  7. pubspec.yaml: logo_path'i göreli yap (CI'da msix kırılmasın).
  8. GitHub'a aktarım: Yeni boş GitHub repo → git remote add github <url> → temiz tek commit (squash/orphan) → git push github main. Gitea ayrı kalır.

6. Açık kararlar (senin onayın gerekiyor)

  1. README dili: İngilizce mi, TR mi, iki dilli mi? (açık kaynak görünürlüğü için İngilizce önerilir)
  2. docs/ ve kök dokümanlar: iç raporlar/session notları ne olacak? (yerel yedek alınır mı?)
  3. Geçmiş: temiz tek commit mi, yoksa tüm geçmiş GitHub'a taşınsın mı? (öneri: temiz tek commit)
  4. GitHub hesabı/org: repo hangi hesaba? Repo adı: imajviewer mi imajViewer mi?
  5. Lisans: MIT kesin mi? (README'de MIT yazıyor, dosya yok)