build: github acik kaynak hazirligi — LICENSE/CI/topluluk dosyalari eklendi, binary'ler takipten cikarildi, README EN, kok dokumanlar docs/'a tasindi

This commit is contained in:
Alhan committed 2026-08-06 05:49:43 +03:00
1 parent cd3f573f57
commit 8972ef7225
35 files changed
+560 -151

No files matched your search

+88
View File
@@ -0,0 +1,88 @@
# 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)