Biome 2.6.6 dirilis 6 November 2026 dan isinya dua belas aturan lint baru yang semuanya masih berstatus nursery, ditambah peningkatan performa pada mesin lint dan lint CSS. Aturan yang paling mudah dipahami adalah noArrayMethodsOnArguments, yang menangkap pemanggilan method array pada objek arguments, kesalahan yang berakhir sebagai TypeError saat kode berjalan. Karena semuanya nursery, tidak satu pun aktif secara bawaan: kamu harus memilihnya sendiri di konfigurasi.
TL;DR
- Biome CLI 2.6.6 terbit 6 November 2026, dua belas aturan nursery baru.
- Semua aturan baru berstatus nursery, jadi tidak menyala tanpa opt-in di
biome.json. - Banyak di antaranya menangkap kondisi yang selalu benar atau selalu salah, jenis bug yang lolos dari review manual.
- Ada perbaikan performa untuk lint JavaScript dan lint CSS.
- Rilis ini juga memperbaiki aturan CSS
useGenericFontNamesdan beberapa isu lain.
Apa saja aturan baru di Biome 2.6.6?
Dua belas aturan baru, semuanya di grup nursery. Enam yang paling relevan untuk kode aplikasi biasa dirangkum di tabel berikut, dengan contoh pola yang ditangkap sesuai dokumentasi masing-masing aturan.
| Aturan | Yang ditangkap | Contoh pola |
|---|---|---|
noArrayMethodsOnArguments | Method array dipanggil pada arguments | arguments.reduce(...) di dalam function |
noConstantComparisons | Kondisi yang tidak mungkin benar atau selalu benar | statusCode <= 400 && statusCode > 500 |
noErasingOperation | Operasi yang hasilnya pasti nol | const total = price * 0 |
noNegatedArrayPredicate | Negasi pada some dan every | !array.some((item) => cek(item)) |
noNumberArgumentOutOfRange | Argumen angka di luar rentang method | value.toString(64) |
noSharedBranchCode | Kode sama di awal atau akhir setiap cabang | if dan else yang sama-sama memanggil cleanup() |
Sisanya menyasar ekosistem yang lebih spesifik: aturan untuk komponen Svelte, aturan untuk skrip Next.js, dan dua aturan yang berkaitan dengan berkas package. Kalau proyekmu tidak memakai kerangka kerja tersebut, aturan itu tidak akan relevan, tetapi tidak ada salahnya melihat daftar lengkapnya di dokumentasi aturan Biome sebelum memutuskan.
Kenapa aturan nursery tidak langsung aktif?
Karena status nursery adalah penanda bahwa aturan itu belum dianggap stabil oleh pemelihara. Perilakunya bisa berubah antar rilis, termasuk kemungkinan dihapus atau digabung, sehingga mengaktifkannya secara bawaan akan membuat hasil lint berubah tanpa kamu mengubah apa pun. Itu bertentangan dengan prinsip alat lint yang harus bisa diprediksi di CI.
Konsekuensi praktisnya: setelah naik ke 2.6.6, hasil lint proyekmu tidak berubah kecuali kamu menambahkan aturan baru ke konfigurasi. Kalau kamu mengharapkan aturan baru langsung menangkap masalah, itu tidak akan terjadi. Ini perlu dinyatakan jelas karena banyak pengumuman rilis disalahartikan sebagai "aturan baru otomatis aktif".
Cara mengaktifkannya bergantung pada konfigurasi grup. Secara umum, aturan nursery diaktifkan dengan menyebut namanya di bagian linter.rules.nursery pada biome.json, atau lewat flag saat menjalankan perintah lint untuk uji coba cepat sebelum menuliskannya ke konfigurasi.
Aturan mana yang paling layak dicoba lebih dulu?
Mulai dari yang menangkap bug yang tidak akan pernah muncul di review. Tiga kandidat teratas: noConstantComparisons, noErasingOperation, dan noNegatedArrayPredicate.
noConstantComparisons menangkap kondisi yang tidak mungkin benar, seperti membandingkan nilai yang sama dengan dua batas yang saling bertentangan. Pola itu biasanya lahir dari salah tulis saat mengubah ambang, dan hasilnya adalah cabang kode yang tidak pernah dijalankan. Tidak ada error, tidak ada tes yang gagal, hanya perilaku yang tidak sesuai niat.
noErasingOperation menangkap operasi yang hasilnya pasti nol, misalnya perkalian dengan nol atau operasi bitwise AND dengan nol. Pada kode nyata, pola ini hampir selalu salah tulis, entah variabel yang tertukar atau konstanta yang keliru.
noNegatedArrayPredicate lebih soal keterbacaan, tetapi versi yang disarankan juga menghindari kesalahan logika pada rantai kondisi. Aturan ini menyarankan memindahkan negasi ke dalam callback, sehingga maksud kode terbaca langsung tanpa perlu berpikir dua kali.
Bagaimana memasangnya di proyek yang sudah berjalan?
Jangan aktifkan semua sekaligus. Urutan yang aman:
- Naikkan versi Biome dan jalankan lint tanpa perubahan konfigurasi untuk memastikan tidak ada regresi pada aturan yang sudah aktif.
- Aktifkan satu aturan nursery, jalankan lint pada seluruh repositori, dan catat temuannya tanpa langsung memperbaiki.
- Nilai apakah temuan itu bug nyata atau pola yang disengaja. Aturan nursery sering punya kasus tepi, jadi tinjauan manual tetap diperlukan.
- Perbaiki bug nyata, dan untuk pola yang disengaja, tambahkan pengecualian di tempat yang sempit, bukan mematikan aturannya secara global.
- Ulangi untuk aturan berikutnya, satu per satu, dengan commit terpisah agar mudah dikembalikan.
Langkah kelima bukan formalitas. Kalau sepuluh aturan baru diaktifkan dalam satu commit dan salah satunya menghasilkan ratusan temuan palsu, seluruh perubahan akan dikembalikan dan tidak ada yang tersisa. Satu aturan per commit membuat kemajuan tetap terlihat meskipun sebagian usulan harus dibatalkan.
Apakah ada perubahan performa yang terukur?
Catatan rilis menyebut peningkatan performa pada lint JavaScript dan lint CSS, tanpa menyertakan angka pembanding. Artinya klaim kecepatan itu benar sebagai arah perubahan, tetapi besarnya tidak bisa dikutip dari catatan rilis. Kalau waktu lint adalah alasanmu naik versi, ukur sendiri pada repositorimu dan bandingkan hasilnya.
Yang bisa dipastikan: perbaikan performa tidak mengubah hasil lint. Kalau setelah upgrade keluaran lint berubah padahal konfigurasi sama, penyebabnya bukan performa, melainkan perbaikan aturan atau perubahan pada kode yang dianalisis. Memisahkan dua hal itu akan menghemat waktu diagnosis.
💬 Komentar (0)
Belum ada komentar. Jadilah yang pertama! 💬