# 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ı açıkta bırakıyor.
4. **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ı.
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_TOKEN` → `GITHUB_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)
