Release Notes - Charites v1.0.0-beta.3 (2026-09-07)
Welcome to Charites v1.0.0-beta.3, the third beta release of the compile-time static analyzer and design token linter for Astro, React TSX/JSX, and Tailwind CSS.
This release introduces the System & Environment Doctor (charites doctor), installs robust concurrency and version guards in scripts/install.sh, adds native archive unpacking (.tar.gz and .zip) for charites update, and documents real-world environment observations ("honest errors") surfaced during beta testing.
1. Beta Evaluation Rationale & Honest Field-Testing Retrospective
Note
Mengapa Rilis Ini Dinaikkan ke v1.0.0-beta.3?
Pengujian lapangan riil pada v1.0.0-beta.2 mengungkap beberapa kondisi lingkungan pengembang nyata yang memerlukan mitigasi sistem tingkat pertama:
- PATH Pollution & Collision: Lingkungan shell sering kali memuat duplikasi entri direktori di variabel
$PATH(misalnya~/.local/binyang terpanggil belasan kali dari.bashrcmajemuk) atau adanya beberapa salinan binercharitesdi direktori berbeda (~/.local/binvs/usr/local/binvs~/go/bin) yang berpotensi membingungkan versi mana yang aktif. - Installer Race Condition & State Guard: Script installer lama tidak memiliki pengecekan status "already installed" dan proteksi kunci konkurensi (lockfile), sehingga jika proses download/install berjalan di latar belakang bersamaan dengan perintah pencopotan (uninstall), file yang baru dicopot dapat langsung tercipta kembali tanpa disengaja.
- In-Place Update Archive Unpacking: Fitur pembaruan mandiri (
charites update) kini dilengkapi mesin ekstraksi bawaan untuk mengekstrak biner langsung dari paket arsip resmi GitHub (.tar.gzdan.zip) dengan pertahanan terhadap decompression bomb (io.LimitReader). - Root CLI Shorthand Aliases: Mendukung
-u,--update, serta-doctor,--doctorlangsung dari level root CLI untuk mempermudah eksekusi tanpa keharusan mengingat struktur subcommand.
2. Fitur Baru Utama (Highlights)
System & Environment Diagnostic Tool (charites doctor)
Perintah baru untuk memvalidasi kesehatan instalasi dan lingkungan shell pengembang:
charites doctor
# atau via shortcut:
charites -doctor
charites --doctorFitur audit yang dilakukan:
- $PATH Cleanliness: Mendeteksi entri direktori duplikat di
$PATHdan memberikan rekomendasi pembersihan. - Binary Discovery & Collision: Menemukan semua lokasi biner
charitesdi$PATH, menandai biner aktif, dan memperingatkan jika ada biner sekunder yang tertimpa (shadowed). - Write Permissions: Menguji apakah direktori biner dapat ditulis secara langsung untuk operasi
charites updatetanpa sudo. - API Reachability: Memvalidasi konektivitas ke GitHub Releases API (batas waktu 3 detik).
- Workspace Health: Mendeteksi konfigurasi
charites.yamllokal.
Installer Guards (scripts/install.sh)
- Already-Installed Guard: Jika versi yang sama sudah terpasang, installer akan memberi tahu dan keluar secara aman tanpa men-download ulang (dapat dipaksa dengan opsi
--forceatauCHARITES_FORCE=1). - Concurrency Lock Protection: Menggunakan lockfile
/tmp/charites-installer.lockberbasis PID untuk mencegah eksekusi installer ganda secara simultan. - Pencegahan Duplikasi Shell Profile: Menghindari penambahan baris
export PATHberulang ke~/.bashrc,~/.zshrc, atau~/.profile.
Archive Unpacking Engine pada charites update
- Mendukung pembaruan mandiri (in-place self-update) langsung dari arsip
.tar.gz(Linux/macOS) dan.zip(Windows) tanpa memerlukan perkakas dekompresi eksternal. - Menerapkan batas ukuran ekstraksi 100MB (
io.LimitReader) untuk mencegah kerentanan dekompresi bom (CWE-409 / gosec G110).
3. Update & Upgrade Commands
Bagi pengguna yang sudah memasang Charites versi sebelumnya:
A. In-Place Self-Update (Rekomendasi Utama)
charites update
# atau alias:
charites --update
charites -uB. Via Go Toolchain
go install github.com/will2469/charites/cmd/charites@v1.0.0-beta.3C. Linux & macOS (One-Line Updater / Installer)
curl -fsSL https://raw.githubusercontent.com/will2469/charites/main/scripts/install.sh | bashD. Windows (PowerShell)
irm https://raw.githubusercontent.com/will2469/charites/main/install.ps1 | iexE. Verifikasi Versi & Diagnosis Sistem
charites --version
charites doctor4. Fresh Installation (Pemasangan Baru)
# Go Developers:
go install github.com/will2469/charites/cmd/charites@v1.0.0-beta.3
# Linux & macOS:
curl -fsSL https://raw.githubusercontent.com/will2469/charites/main/scripts/install.sh | bash
# Windows PowerShell:
irm https://raw.githubusercontent.com/will2469/charites/main/install.ps1 | iex5. Changelog & Riwayat Rilis
- Rincian perubahan lengkap dapat dilihat di CHANGELOG.md.
- Arsip versi historis (seperti
v1.0.0-beta.1) tersimpan di direktori docs/05-release/changelogs/. - Unduhan biner dan checksums SHA-256 tersedia langsung di GitHub Releases.
Full Changelog: v1.0.0-beta.2...v1.0.0-beta.3