89 lines
5.7 KiB
Markdown
89 lines
5.7 KiB
Markdown
# 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)
|