5.7 KiB
5.7 KiB
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 initile 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
- Gömülü token:
git remote -vçıktısında origin URL'sihttps://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. - 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ı. - Binary dosyalar git'te:
deb/(16 MB libflutter_linux_gtk.so vb. — build çıktısı) vedist/(.deb, .exe — sürüm paketleri) git ile takip ediliyor. Binary'ler git'e girmez; release asset'i olur..gitignore'da*.deb/*.exevar ama!dist/*.debistisnası vedeb/dizini bunları açıkta bırakıyor. - Mutlak yol:
pubspec.yaml→msix_config.logo_path: C:/projects/imajviewer/...— yerel Windows yolu. GitHub runner'ında msix adımı kırılır; göreli yol olmalı. - 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.comURL'leri GitHub URL'si olmalı .debkurulum adımındaki sürüm1.0.0yazılmış, güncel1.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ı)
- Kök temizliği:
imajviewer.desktopsil; iç dokümanları (Implementation/PRD/ update_plan/docs) taşı ya da sil — karar gerekiyor (aşağıda). - 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 --cachedsadece ileriye dönük temizler; geçmişteki 391 MB durur — tam temizlik için ya filter-repo ya da temiz başlangıç gerekir. - Lisans: Köke
LICENSE(MIT) ekle. - README'yi yeniden yaz: İngilizce, GitHub linkleri, badge, screenshot.
- Topluluk dosyaları: CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md,
CHANGELOG.md,
.github/(issue/PR template + workflows/build-windows.yml). - CI'ı GitHub'a uyarla:
.gitea/workflows/build-windows.yml→.github/workflows/:GITEA_TOKEN→GITHUB_TOKEN(otomatik), release adımısoftprops/action-gh-releaseile GitHub Release + .deb/.exe asset. - pubspec.yaml:
logo_path'i göreli yap (CI'da msix kırılmasın). - 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)
- README dili: İngilizce mi, TR mi, iki dilli mi? (açık kaynak görünürlüğü için İngilizce önerilir)
docs/ve kök dokümanlar: iç raporlar/session notları ne olacak? (yerel yedek alınır mı?)- Geçmiş: temiz tek commit mi, yoksa tüm geçmiş GitHub'a taşınsın mı? (öneri: temiz tek commit)
- GitHub hesabı/org: repo hangi hesaba? Repo adı:
imajviewermiimajViewermi? - Lisans: MIT kesin mi? (README'de MIT yazıyor, dosya yok)