Tools Review

Biome 2.6.6: Dua Belas Aturan Lint Nursery Baru

Biome 2.6.6: Dua Belas Aturan Lint Nursery Baru

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 useGenericFontNames dan 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.

AturanYang ditangkapContoh pola
noArrayMethodsOnArgumentsMethod array dipanggil pada argumentsarguments.reduce(...) di dalam function
noConstantComparisonsKondisi yang tidak mungkin benar atau selalu benarstatusCode <= 400 && statusCode > 500
noErasingOperationOperasi yang hasilnya pasti nolconst total = price * 0
noNegatedArrayPredicateNegasi pada some dan every!array.some((item) => cek(item))
noNumberArgumentOutOfRangeArgumen angka di luar rentang methodvalue.toString(64)
noSharedBranchCodeKode sama di awal atau akhir setiap cabangif 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:

  1. Naikkan versi Biome dan jalankan lint tanpa perubahan konfigurasi untuk memastikan tidak ada regresi pada aturan yang sudah aktif.
  2. Aktifkan satu aturan nursery, jalankan lint pada seluruh repositori, dan catat temuannya tanpa langsung memperbaiki.
  3. Nilai apakah temuan itu bug nyata atau pola yang disengaja. Aturan nursery sering punya kasus tepi, jadi tinjauan manual tetap diperlukan.
  4. Perbaiki bug nyata, dan untuk pola yang disengaja, tambahkan pengecualian di tempat yang sempit, bukan mematikan aturannya secara global.
  5. 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.

Perbaikan apa yang menyertai rilis ini?

Selain aturan baru dan performa, ada perbaikan pada aturan CSS useGenericFontNames, yang berkaitan dengan penamaan font generik di stylesheet. Perbaikan ini penting bagi proyek yang memakai Biome untuk memeriksa CSS, karena aturan yang salah lapor bisa memaksa pengecualian yang tidak perlu di seluruh berkas.

Ada juga perbaikan pada beberapa isu yang dilaporkan pengguna, termasuk masalah yang muncul saat aturan tertentu berinteraksi dengan sintaks yang lebih baru. Daftar lengkapnya ada di catatan rilis beserta nomor PR masing-masing, dan itu rujukan yang tepat bila kamu mengalami perilaku aneh setelah upgrade.

Untuk tim yang memakai Biome sebagai satu-satunya alat lint dan format, rilis ini menguntungkan tanpa banyak risiko selama aturan nursery tidak diaktifkan serentak. Untuk tim yang baru pindah, mulai dari preset yang stabil, lalu tambah aturan secara bertahap.

Bagaimana mengukur dampak aturan baru pada basis kode lama?

Ukur dalam tiga angka, bukan satu. Pertama, jumlah temuan per aturan pada satu kali lint penuh. Kedua, jumlah berkas yang tersentuh. Ketiga, jumlah temuan yang setelah ditinjau ternyata bug nyata. Angka ketiga yang menentukan apakah aturan itu layak dipertahankan, sementara dua angka pertama menentukan berapa besar pekerjaan yang harus dijadwalkan.

Cara termurah mendapatkannya: jalankan lint pada repositori tanpa memperbaiki apa pun, simpan keluarannya ke berkas, lalu hitung temuan per kode aturan. Dari sana terlihat aturan mana yang menghasilkan ratusan temuan pada kode lama. Aturan dengan temuan banyak tetapi hampir semuanya palsu sebaiknya tidak dimasukkan ke CI, meskipun secara teori aturannya bagus.

Perhatikan juga sebaran berkasnya. Aturan yang menemukan satu masalah per berkas pada dua ratus berkas berbeda lebih mahal diperbaiki daripada aturan yang menemukan dua ratus masalah di satu berkas hasil generate. Untuk berkas hasil generate, pengecualian langsung di jalur tersebut jauh lebih murah daripada memperbaiki sumbernya.

Apakah aturan baru ini mengubah hasil format?

Tidak. Semua aturan yang dibahas di sini berada di mesin lint, bukan formatter. Kalau setelah upgrade hasil format berubah, penyebabnya ada pada perbaikan formatter atau konfigurasi, bukan pada dua belas aturan nursery tersebut. Memisahkan dua hal ini penting saat melakukan bisect pada commit upgrade.

Praktik yang membantu: jalankan perintah format dan perintah lint secara terpisah di CI, dengan keluaran terpisah. Ketika satu gagal, kamu langsung tahu lapisan mana yang bermasalah tanpa membaca log panjang yang mencampur keduanya.

Bagaimana menulis pengecualian agar tidak menumpuk?

Biome menyediakan mekanisme pengecualian di tingkat baris lewat komentar khusus, dan pengecualian di tingkat konfigurasi. Aturan praktisnya: gunakan pengecualian baris untuk kasus yang benar-benar lokal, dan hindari mematikan aturan untuk seluruh proyek hanya karena satu berkas bermasalah.

Yang lebih penting, catat alasannya. Pengecualian tanpa alasan akan dipertanyakan ulang enam bulan kemudian, dan biasanya jawabannya tidak lagi diketahui siapa pun. Satu baris komentar yang menyebut alasan teknis cukup untuk mencegah pengecualian itu dihapus orang lain yang mengira itu sisa kode lama.

Tinjau pengecualian secara berkala. Setiap kali versi Biome naik, sebagian pengecualian mungkin sudah tidak diperlukan karena aturannya diperbaiki. Menghapusnya akan mengembalikan cakupan pemeriksaan tanpa menambah pekerjaan baru.

Siapa yang paling diuntungkan dari rilis ini?

Tim kecil yang tidak punya reviewer khusus. Aturan seperti noConstantComparisons dan noErasingOperation menangkap jenis kesalahan yang paling sering lolos saat review dilakukan cepat, karena kode terlihat masuk akal pada pembacaan pertama. Alat yang menandainya secara mekanis mengurangi ketergantungan pada kualitas review manusia di hari yang sibuk.

Tim yang lebih besar dengan proses review ketat tetap mendapat manfaat, tetapi porsinya lebih kecil, karena sebagian temuan itu biasanya sudah tertangkap diskusi. Bagi mereka, nilai rilis ini lebih pada perbaikan aturan CSS dan peningkatan performa lint.

Yang tidak diuntungkan: tim yang mengaktifkan semua aturan nursery sekaligus lalu menilai Biome sebagai alat yang terlalu berisik. Itu bukan kesimpulan yang adil terhadap alatnya, dan hasilnya hanya menunda adopsi aturan yang sebenarnya berguna.

FAQ

Apakah saya harus naik ke 2.6.6 sekarang?

Kalau memakai Biome untuk lint dan format harian, sebaiknya ya, karena perbaikan aturan CSS dan peningkatan performa berlaku tanpa perlu mengubah konfigurasi. Tidak ada alasan mendesak untuk menunda, dan tidak ada risiko besar selama aturan nursery dibiarkan mati.

Bagaimana cara mengaktifkan aturan nursery tanpa mengubah biome.json?

Periksa bantuan perintah lint pada versi yang kamu pasang. Flag untuk memilih grup aturan tersedia di CLI dan berguna untuk uji coba sementara, tetapi konfigurasi di berkas tetap lebih baik untuk CI karena hasilnya konsisten antar mesin.

Apakah aturan nursery bisa hilang di rilis berikutnya?

Bisa berubah, termasuk dipromosikan ke grup stabil, diubah perilakunya, atau dibuang. Itu sebabnya aturan nursery tidak aktif bawaan, dan itu juga alasan untuk tidak menjadikannya satu-satunya penjaga kualitas kode di CI.

Apakah Biome 2.6.6 cocok dipakai bersama alat lint lain?

Bisa, tetapi hindari aturan yang tumpang tindih agar tidak muncul dua laporan untuk satu masalah. Praktik umumnya memakai satu alat untuk format dan satu untuk aturan spesifik kerangka kerja yang tidak dicakup alat pertama.

Sumber utama tulisan ini adalah halaman rilis Biome, daftar aturan lint Biome, dan dokumentasi aturan noArrayMethodsOnArguments.

💼 Lowongan kerja

Lowongan Frontend & UI yang lagi buka

Diambil otomatis dari JobStreet, Kalibrr, dan bursa remote luar negeri. Diperbarui tiap 30 menit, plus filter lokasi Indonesia atau remote.

💬 Komentar (0)

Belum ada komentar. Jadilah yang pertama! 💬

Komentar yang memuat tautan, bahasa asing, atau aksara non-Latin ditahan dulu buat ditinjau.