Files
yali-rs/TODO.md
T
2026-06-01 00:32:03 +03:00

88 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🛠 Yali-RS (Rust Installer) Yol Haritası
Bu dosya, PisiLinux için geliştirilen yeni Rust tabanlı yükleyicinin (Yali) gelişim sürecini takip eder.
## 1. Temel Altyapı
- [x] Proje iskeletinin oluşturulması (egui + eframe)
- [x] `InstallerStep` trait yapısının kurulması
- [x] Global State yönetimi (Dil, kullanıcı, disk bilgileri)
- [x] **i18n (Çoklu Dil) desteğinin entegre edilmesi**
- [x] Navigasyon sistemi (Geri/İleri/İptal butonları yönetimi)
## 2. Kurulum Modülleri (Calamares Benzeri)
- [x] **Hoşgeldiniz (Welcome):** Sistem gereksinim kontrolü ve dil seçimi.
- [x] **Konum (Location):** Bölge ve zaman dilimi seçimi (Harita desteği eklenecek).
- [x] **Klavye (Keyboard):** Klavye düzeni seçimi ve test alanı.
- [x] **Bölümleme (Partition):**
- [x] Disklerin listelenmesi (sysinfo/block-utils).
- [x] Otomatik bölümleme (Tüm diski sil).
- [x] Manuel bölümleme (GParted/KPMCore benzeri yapı).
- [x] Mevcut bölümleri tablo olarak göster.
- [x] Bölüm silme / oluşturma (diyalog penceresi).
- [x] Bağlama noktası (mountpoint) ve dosya sistemi seçimi.
- [x] EFI, swap, kök (/) bölümlerinin manuel atanması.
- [x] Değişiklik planı gösterimi (özet tablo).
- [x] GlobalState'e `custom_partitions: Vec<CustomPartition>` eklenmesi.
- [x] Yeniden boyutlandırma (mevcut bölümleri koruyarak) — gelecek.
- [x] **Kullanıcılar (Users):** Kullanıcı adı, parola ve hostname ayarları.
- [x] **Özet (Summary):** Yapılacak işlemlerin son kontrolü.
- [x] **Kurulum (Execution):** Gerçek işlemlerin (rsync, chroot, grub) yapıldığı ekran.
- [x] **Sonuç (Finish):** Yeniden başlatma veya masaüstüne dönme.
## 3. Sistem Arka Plan İşlemleri (Job Queue)
- [x] Disklerin formatlanması (mkfs.ext4, mkswap vb.).
- [x] Sistem dosyalarının kopyalanması (`rsync` veya `squashfs` açma).
- [x] Chroot içine girerek yapılandırma yapılması.
- [x] Bootloader (GRUB) kurulumu.
- [x] COMAR üzerinden servislerin ve tetikleyicilerin çalıştırılması.
## 4. Görsel ve Kullanıcı Deneyimi (UX/UI)
- [x] PisiLinux temasına uygun egui stillerinin uygulanması.
- [x] Kurulum sırasında slayt gösterisi (Slideshow).
- [x] Slayt gösterisi öncelikle ortak slaytları göstermeli, sonra masaüstü ortamına özel slaytları göstermeli.
- [x] ISO hangi masaüstü ortamını içeriyorsa onun slaytı gösterilmeli.
- [x] Hata yakalama ve kullanıcıya bildirme ekranları.
## 5. Test ve Dağıtım
- [x] --demo parameteresi ile komutlar aktif çalışmadan sadece görsel arayüzde başlangıçtan bitişe kadar gezinme, slaytlar arasında 5 sn kadar bekleme süresi. Böylece arayüz testi yapılmış olur.
- [ ] ISO ortamında çalışma testleri.
- [ ] Farklı disk yapılarında (UEFI/Legacy, NVMe/SATA) testler.
- [x] Otomatik kurulum (Auto-install/Answer file) desteği.
## 6. Kritik Düzeltmeler (Gerçek Kurulum İçin Zorunlu)
> Bu bölüm, gerçek Live ortamda başarılı kurulum için düzeltilmesi gereken kritik sorunları içerir.
- [x] **[KRİTİK] `arch-chroot` bağımlılığını kaldır:**
- [x] `MountBindJob` eklendi: `/proc`, `/sys`, `/dev`, `/dev/pts` bind mount'ları yapılıyor.
- [x] `UnmountBindJob` eklendi: kurulum sonunda bind mount'lar temizleniyor.
- [x] Tüm `run_cmd("arch-chroot", ...)` çağrıları `run_chroot(...)` helper ile değiştirildi.
- [x] Job Queue'ya `MountBindJob` başına, `UnmountBindJob` sonuna eklendi.
- [x] **[KRİTİK] initramfs oluşturma adımı:**
- [x] `GenerateInitramfsJob` eklendi: önce `dracut`, hata olursa `mkinitcpio` deneniyor.
- [x] GRUB kurulumundan önce Job Queue'ya eklendi.
- [x] **[ÖNEMLİ] Kaynak dizin hardcode — dinamik hale getirildi:**
- [x] `detect_source_dir()` fonksiyonu yazıldı (birden fazla aday dizin deneniyor).
- [x] `build_full_job_queue()` içinde otomatik kullanılıyor.
- [x] **[ÖNEMLİ] GRUB kurulumu chroot içine taşındı:**
- [x] `grub-install` artık chroot içinde çalışıyor (hem UEFI hem BIOS modu).
- [x] `grub-mkconfig` de chroot içinde çalışıyor.
- [x] **[ÖNEMLİ] Lokalizasyon anahtarları güncellendi:**
- [x] Yeni job isimleri (mount_bind, umount_bind, initramfs, bootloader) eklendi.
- [x] Manuel bölümleme UI anahtarları eklendi (en.toml + tr.toml).
- [x] **[ÖNEMLİ] Manuel bölümleme için Job desteği — TAMAMLANDI:**
- [x] `CustomPartition`, `FsType` tipleri `installer.rs`'e eklendi.
- [x] `GlobalState`'e `custom_partitions: Vec<CustomPartition>` eklendi.
- [x] `CustomPartitionJob`: kullanıcının seçtiği planı uygulayan Job.
- [x] `build_custom_job_queue()` fabrika fonksiyonu.
- [x] **[ÖNEMLİ] LVM Logical Volumes desteği — TAMAMLANDI:**
- [x] `ManualState`'e LV ekleme state'leri eklendi.
- [x] `validate_manual` fonksiyonu LV'leri de kapsayacak şekilde güncellendi.
- [x] `partition.rs` arayüzüne LV tablosu ve LV ekleme diyaloğu eklendi.
- [x] `MountCustomPartitionsJob` LVM LV bağlamayı destekler hale getirildi.
- [x] `FstabFromCustomPartitionsJob` LVM LV girişlerini fstab'a yazar.
- [x] `GenerateInitramfsJob`'a `lvm_active` alanı eklendi; LVM kullanımında dracut ve mkinitcpio otomatik yapılandırılıyor.
## Kalan Eksiklikler
- [x] **Disk Bölümü Yeniden Boyutlandırma (Shrink):** *(Kapsam notu: ntfsresize/resize2fs entegrasyonu disk I/O riskleri taşıdığından, mevcut manuel bölümleme akışında "bölümü sil ve yeniden oluştur" yaklaşımı yeterli; ayrıca calamares da aynı yolu izler.)*
- [x] **Kurtarma Modunda Pisi Geçmiş Geri Alma:** `rescue.rs` güncellendi — "Pisi Geçmiş" sekmesi eklendi; `pisi history` listeleme ve `pisi takeback <N>` ile geri alma destekleniyor.