Releases: superuser-d0/archlence
Release list
Archlence v0.0.2
Archlence v0.0.2
Archlence v0.0.2 ile Windows'a özgü ve veri kaybına yol açabilecek iki kritik hata giderildi.
Bu sürüm hâlâ bir ön yayımdır (pre-release) ve kararlı kullanım için önerilmemektedir.
Öne çıkan değişiklikler
- Test paketi artık Linux'un yanı sıra Windows ortamında da CI üzerinde çalıştırılıyor.
- Windows CI desteği sayesinde veri güvenliğini ve uygulamanın süreç yaşam döngüsünü etkileyen iki önemli hata tespit edilerek düzeltildi.
- v0.0.1 sürümünden v0.0.2'ye yükseltme sırasında kullanıcı verilerinin korunduğunu doğrulayan otomatik smoke testi eklendi.
Finansal doğruluk ve güvenilirlik
Türkçe hata mesajlarının Windows'ta işlemleri durdurması engellendi
Windows konsolu, bazı Türkçe sistemlerde varsayılan olarak cp1252 kodlamasını kullanabiliyor. Bu kodlama; ı, ğ ve ş gibi bazı Türkçe karakterleri desteklemiyor.
Uygulamadaki hata mesajlarının önemli bir bölümü except blokları içerisinde konsola yazdırılıyordu. Hata mesajı yazdırılırken yeni bir kodlama hatası oluştuğunda, yakalanan asıl istisnanın yerine bu hata dışarı sızabiliyor ve devam eden işlemi tamamen durdurabiliyordu.
Somut olarak, abonelik radarı bir işlem sırasında hata verdiğinde işlemin tamamının kaybolmasına neden olabilecek bir durum bulunuyordu.
Konsol çıktısı artık UTF-8 kullanacak şekilde yapılandırılıyor. Bir karakterin yine de kodlanamaması durumunda karakter ? ile değiştirilir; ancak süreç durmaz ve asıl işlem korunur.
Windows tek-örnek kilidindeki kapanış hatası giderildi
Uygulamanın aynı anda birden fazla kez açılmasını engelleyen tek-örnek kilidi, Windows'ta kapanış sırasında çökme riski taşıyordu.
Kilit dosyasındaki bir bayt önce kilitleniyor, ardından dosya kırpılıyordu. Windows'un bayt aralığı kilitleme API'si bu durumda kilidi serbest bırakırken hata verebiliyordu. Bu hata yakalanmadığı için uygulama kapanış sırasında çökebiliyordu.
Kilit mekanizması artık dosya boyunca korunan ve hiçbir zaman kırpılmayan sabit bir bayt kullanıyor. Böylece kilit güvenli şekilde serbest bırakılıyor ve uygulama kapanışı temiz biçimde tamamlanıyor.
Performans
run_tests.pydosyasının Windows'takimultiprocessingdavranışı düzeltildi.- Daha önce alt süreç oluşturan her test, Windows'un
spawnbaşlatma yöntemi nedeniyle test paketinin tamamını yeniden çalıştırabiliyordu. - Windows CI günlüğünde bu nedenle
Ran 599 testsçıktısı üç kez görülebiliyordu. - Yapılan düzenlemeyle test süresi CI ortamında üç kata kadar kısaldı.
Bu ölçüm yalnızca CI görevi üzerinde yapılmıştır. Kullanıcı makinelerinde ayrıca performans ölçümü gerçekleştirilmemiştir.
UI ve erişilebilirlik
Bu sürümde kullanıcıya doğrudan görünen bir arayüz değişikliği bulunmuyor.
Yapılan düzeltmeler; arka plan hata yönetimi, test altyapısı, veri güvenliği ve uygulamanın süreç yaşam döngüsüyle ilgilidir.
Test ve paketleme
- Test paketi artık hem Linux hem de Windows CI ortamlarında çalıştırılıyor.
run_tests.py, Windows'takimultiprocessingsistemininspawnbaşlatma yöntemiyle güvenli şekilde çalışıyor.- Testler artık
ARCHLENCE_HOMEortam değişkeni kullanılarak platformdan bağımsız biçimde geçici bir dizine yönlendiriliyor. - Önceki test izolasyonu yöntemi Windows'ta etkisiz kalabiliyor ve testlerin gerçek kullanıcı profiline veri yazmasına neden olabiliyordu.
- v0.0.1 → v0.0.2 yükseltme smoke testi gerçek bir taban sürüm kullanacak şekilde otomatikleştirildi.
- Test sırasında önce v0.0.1 kuruluyor, kullanıcı profiline bir sentinel kaydı ekleniyor, ardından v0.0.2 mevcut kurulumun üzerine yükleniyor.
- Yükseltme tamamlandıktan sonra sentinel kaydının ve kullanıcı verilerinin bozulmadan korunduğu doğrulanıyor.
Çalışma sırasında bulunan ve düzeltilen ek sorunlar
Test paketindeki bazı yardımcı fonksiyonların SQLite bağlantılarını açık bıraktığı tespit edildi.
with sqlite3.connect(...) kullanımı bağlantıyı kapatmaz; yalnızca bağlantı üzerinde bir transaction bağlamı oluşturur. Linux'ta açık durumdaki bir dosya silinebildiği için bu sorun görünür olmuyordu. Windows ise açık SQLite dosyalarını kilitli tuttuğundan testler geçici dosyaları temizlerken başarısız olabiliyordu.
İlgili bağlantılara açık kapatma çağrıları eklendi ve Windows'taki test temizleme hataları giderildi.
Bilinen sınırlamalar
- Bu sürüm henüz kararlı değildir ve ön yayım (pre-release) olarak sunulmaktadır.
- Yükseltme testi bu sürümle birlikte otomatikleştirilmiştir ve sonraki sürümlerde standart yükseltme doğrulaması olarak kullanılacaktır.
- Windows ve Linux paketleri dijital olarak imzalanmamıştır. Windows SmartScreen uyarısı görülebilir.
- Fiyat servisi hâlâ tek bir veri sağlayıcısına bağlıdır.
- Eski profillerin ve yedeklerin okunabilmesi için kullanılan legacy CBC desteği deprecated durumundadır.
- UI katmanındaki geniş kapsamlı
exceptblokları veprint()kullanımlarından kaynaklanan teknik borç tamamen giderilmemiştir.
Kurulum dosyaları
Windows
ArchlenceSetup-0.0.2.exe
Linux
Archlence-0.0.2-x86_64.AppImage
Checksum doğrulaması
İndirdiğiniz dosyaların bütünlüğünü kontrol etmek için paketlerle aynı dizinde bulunan SHA256SUMS.txt dosyasını kullanabilirsiniz:
sha256sum -c SHA256SUMS.txtSBOM
Yazılım bileşenleri listesi aşağıdaki dosya adıyla yayımlanmaktadır:
Archlence-0.0.2-sbom.cdx.json
Archlence v0.0.1
Archlence v0.0.1
Bu sürüm bir ön yayımdır (pre-release). Sürüm numarası bilerek 0.0.x'e
çekildi: önceki 1.x etiketleri, kullanıcı testinde ortaya çıkan ve gündelik
kullanımı bozan hatalar nedeniyle geri çekildi. Kararlı sayılmaz.
Öne çıkan değişiklikler
- Tutar alanına yazarken rakamların karışmasına yol açan imleç hatası
düzeltildi (girilen tutar artık birebir korunuyor). - Takvim, aylık bütçe, kategori ayarları ve işlem ekleme akışlarındaki
donma/kasma nedenleri kaldırıldı. - Varlık alımının hangi hesaptan karşılanacağı düzeltildi; "Yetersiz Bakiye"
hatasıyla varlık eklenememesi sorunu giderildi.
Finansal doğruluk ve güvenilirlik
- Tutar girişi bozulması: binlik ayraç maskesi Kivy'nin
on_text
olayında çalıştığı için imleç bir karakter geride kalıyor, sonraki hane
yanlış konuma giriyordu. Yazılan1234567alana1.235.674olarak
giriyordu — yani kullanıcı doğru rakamı yazdığı hâlde hesaba başka bir
tutar kaydediliyordu. Maskeleme artık düzenleme tamamlandıktan sonra
çalışıyor; gerçek bir SDL2/OpenGL penceresinde ölçülerek doğrulandı. - Absürt tutar koruması: tam kısım 12 haneyle sınırlandı. Üzerindeki
değerlerfloat64'ün tam sayı kesinlik sınırını (2^53) aşıyor ve bakiye
aritmetiğini sessizce bozuyordu. Sınır giriş anında uygulanır; mevcut
kayıtlar etkilenmez. - Varlık alımı hesap seçimi: alım koşulsuz
DEFAULT_ACCOUNT_ID(=1)
hesabından düşülüyordu. Uygulama artık varsayılan hesap oluşturmadığı için
o satır hiç bulunmayabiliyor, ya da kullanıcının parası başka hesapta
olabiliyordu; her iki durumda da her varlık alımı "Yetersiz Bakiye" ile
reddediliyordu. Artık tutarı karşılayabilen vadesiz hesap seçilir, hiçbiri
yetmiyorsa mesaj eksik tutarı ve hesabı adıyla söyler. - Geçmişe dönük işlem ekleme kaldırıldı: geçmiş tarihli kayıt bakiyeyi
anında değiştiriyor ama bakiye defterinde geriye dönük doğru yere
oturmuyordu. İleri tarihli (bekleyen) işlem akışı korunmuştur.
Performans
Aşağıdakilerin tamamı çağrı sayımıyla ölçülmüş ve regresyon testine
bağlanmıştır; süre ölçümü değil, iş miktarı ölçümüdür.
- Takvim: her gün dokunuşu 42 hücrelik ızgaranın tamamını yeniden kuruyor
ve sınırsız iş parçacığı + SQLite bağlantısı açıyordu. Artık yalnız
etkilenen iki hücre yeniden boyanıyor; 12 hızlı dokunuş 12 yerine 1
veritabanı okuması açıyor. - Aylık bütçe: her ay butonu tam liste yeniden inşası tetikliyordu;
12 hızlı geçiş artık 1 yeniden inşaya iniyor. - Kategori ayarları: her anahtar dokunuşu tam grafik yeniden çizimi
tetikliyordu; 10 hızlı dokunuş artık 1 tazelemeye iniyor. - İşlem ekleme: dört ağır tazeleme tek karede çalışıyordu; her biri artık
kendi karesinde çalışıyor, tek kare bloklanmıyor.
UI ve erişilebilirlik
- Varlık eklenemediğinde genel "Varlık eklenirken hata oluştu!" yerine
gerçek sebep gösteriliyor (ör. yetersiz bakiye ve eksik tutar). - İşlem tarihi seçicisi geçmiş tarihleri artık hiç göstermiyor.
Test ve paketleme
- Test raporlaması onarıldı. Kivy
import kivysırasındasys.stderri
kendi günlükleyicisine yönlendiriyor; test koşucusu akışı o noktadan
aldığı için ~69. testten sonraki tüm çıktı kayboluyordu — kalan ~505
testin adı, hata mesajları, yığın izleri veRan N tests/OK|FAILED
özeti dahil. Çıkış kodu doğru kalıyordu, ancak günlüğe bakan hiç kimse
neyin başarısız olduğunu göremiyordu. Gerçek akış artık her türlü Kivy
içe aktarımından önce yakalanıyor. - Fiyat/portföy hata yolları
print()yerine kalıcı dönen günlük dosyasına
yazıyor. Paketconsole=Falseile derlendiği için bu mesajlar Windows'ta
tamamen kayboluyordu. - Test paketi: 595 test, tamamı geçiyor (bu sürümde 26 yeni regresyon testi).
Çalışma sırasında bulunup düzeltilen ek sorunlar
tests/test_formatters.py'deki sahte metin alanı Kivy'yi ters modelliyordu
(imleci metinden önce güncelliyordu) ve bu yüzden imleç testleri, üretimde
tutarı bozan hatayı yeşil gösteriyordu. Sahte, gerçekinsert_text
sıralamasına çekildi.tests/test_asset_price_worker.pyprint()çağrısını gözleyerek
"loglandı" doğruluyordu; paketlenmiş uygulamada bu "kayboldu" anlamına
geliyordu. Test gerçek günlükleyiciyi doğrulayacak şekilde güncellendi.
Bilinen sınırlamalar
- Kararlı değildir. Ön yayımdır; günlük finans takibi için önerilmez.
- Windows'ta altın/varlık ekleme düzeltmesi kullanıcı tarafından doğrulanmayı
bekliyor. Bir hata olursa günlük dosyası artık gerçek sebebi içerir:
%LOCALAPPDATA%\Archlence\Archlence\Logs\archlence.log - Paketler imzasızdır; Windows SmartScreen uyarısı görülebilir.
- Fiyat servisi tek sağlayıcılıdır.
- Legacy CBC okuma eski profiller/backup'lar için deprecated olarak kalır.
- UI katmanındaki geniş exception/
print()teknik borcu tamamen
sıfırlanmadı. - Finansal
Decimalkuralları tanımlı, ancak tüm para yolları henüz
Decimaltabanlı değildir.
Kurulum ve checksum doğrulaması
- Windows:
ArchlenceSetup-0.0.1.exe - Linux:
Archlence-0.0.1-x86_64.AppImage - İndirme sonrasında aynı dizindeki
SHA256SUMS.txtiçin
sha256sum -c SHA256SUMS.txtçalıştırın. SBOM
Archlence-0.0.1-sbom.cdx.jsonadıyla yayımlanır.