io.js Pekan 8 Mei

Perilisan io.js 2.0, perubahan-perubahan penting, update komunitas dan masih banyak lagi.

Perilisan io.js 2.0

Minggu ini kita memiliki dua rilis io.js v2.0.0 dan v2.0.1. Daftar keseluruhan perubahan dapat dilihat di GitHub.

Perubahan penting

2.0.1

  • async_wrap: (Trevor Norris) #1614
  • dapat melakukan filter berdasar providerbit flags telah dihilangkan dan diganti dengan pemanggilan metode pada objek yang mengikatnyaharap diperhatikan bahwa ini adalah API yang belum stabil, sehingga penambahan fitur dan perubahan yang besar tidak akan mengubah semver
  • libuv: memperbaiki banyak permasalahan di io.js:
  • #862 mencegah terbentuknya proses anakan dengan file descriptors yang tidak valid#1397 memperbaiki kesalahan EPERM dengan fs.access(W_OK) di Windows#1621 memperbaiki kesalahan yang berkaitan dengan libuv yang dibundel#1512 memperbaiki kesalahan penghentian (termination) pada Windows
  • addons: memperbaiki kesalahan pada makro NODE_DEPRECATED yang menyebabkan masalah ketika mengkompilasiaddon menggunakan pengkompilasi versi sebelumnya (Ben Noordhuis) #1626
  • V8: upgrade V8 dari 4.2.77.18 ke 4.2.77.20 dengan perbaikan minor, termasuk perbaikan pada masalah yang menyebabkan proses build tidak berjalan di FreeBSD

2.0.0

  • crypto: mengurangi konsumsi penggunaan memori untuk TLS (Fedor Indutny & Сковорода Никита Андреевич)#1529
  • net: socket.connect() sekarang bisa menerima pilihan ‘lookup’ untuk mekanisme resolusi DNS, dengan pilihan awal dns.lookup() (Evan Lucas) #1505
  • npm: Upgrade npm ke versi 2.9.0. Untuk catatan perilisan yang lebih lengkap, bisa dilihat pada v2.8.4 and v2.9.0. Hal-hal penting yang perlu diperhatikan:
  • Penambahan support pada kolom pengarang (author) untuk menjalankan npm init -y tanpa memerlukan input pengguna (@othiym23) npm/npm/d8eee6cf9dMemasukkan modul-modul lokal di npm outdated dan npm update (@ArnaudRinquin) npm/npm#7426Awalan (prefix) yang digunakan sebelum angka versi di npm version dapat juga dikonfigurasi melalui tag-version-prefix (@kkragenbrink) npm/npm#8014
  • os: os.tmpdir() sudah bisa berjalan secara konsisten di semua platform dan tidak lagi menghasilkan path dengan tanda garis miring di depannya (Christian Tellnes) #747
  • process:
  • performa process.nextTick() telah ditingkatkan sebanyak 2–42% menurut seluruh rangkaian penilaian (benchmark suite), terutama karena proses ini banyak digunakan di keseluruhan inti (core) (Brian White) #1571Metode baru process.geteuid(), process.seteuid(id), process.getegid() dan process.setegid(id)memungkinkan pengguna untuk mendapatkan (get) dan menentukan (set) proses UID dan GID yang efektif (Evan Lucas) #1536
  • repl:
  • Sejarah REPL dapat dijaga selama sesi jika variable lingkungan (environment variable)NODE_REPL_HISTORY_FILE di set pada file yang bisa diakses oleh user, NODE_REPL_HISTORY_SIZE bisa menentukan ukuran maksimum history dan di set dengan nilai awal 1000 (Chris Dickinson) #1513REPL dapat ditempatkan di dalam satu dari tiga mode menggunakan variable lingkungan (environment variable) NODE_REPL_MODE: sloppy, strict or magic (default); mode baru magic akan secara otomatis menjalankan statemen “strict mode only” di strict mode (Chris Dickinson) #1513
  • smalloc: modul ‘smalloc’ tidak dipakai lagi (deprecated) diakibatkan perubahan pada V8 4.4
  • util: penambahan dukungan inspeksi Promise, Map dan Set (Christopher Monsanto) #1471
  • V8: upgrade ke 4.2.77.18, lihat ChangeLog untuk informasi lebih detil. Hal-hal penting:
  • Classes dikeluarkan dari staging; kata kunci class sekarang dapat digunakan di strict mode tanpa penanda (flags)Pengembangan object literal telah dikeluarkan dari staging; shorthand method dan property syntax ({ method() { }, property }) sekarang sudah dapat digunakanParameter rest (function(…args) {}) diimplementasikan di staging di belakang penanda — harmony-rest-parametersNama-nama properti yang dikomputasi (Computed property names) ({[‘foo’+’bar’]:’bam’}) are implemented in staging behind the — harmony-computed-property-names flagUnicode escapes (‘\u{xxxx}’) diimplementasikan di dalam staging di belakang penanda — harmony_unicodedan — harmony_unicode_regexps untuk digunakan dalam regular expressions
  • Windows:
  • Penghentian proses yang terjadi sewaktu-waktu di Windows telah diperbaiki (Fedor Indutny) #1512 / #1563delay-load hook yang diperkenalkan untuk memperbaiki masalah dengan penamaan proses (iojs.exe / node.exe) telah di set awal tidak aktif (opt-out) untuk add-ons yang asli (native add-ons). Native add-onsseharusnya menuliskan ‘win_delay_load_hook’: ‘false’ ke dalam binding.gyp untuk menonaktifkan fitur ini jika terjadi masalah. (Bert Belder) #1433
  • Governance:
  • Rod Vagg (@rvagg) ditambahkan ke dalam komite teknis (Technical Committee (TC))Jeremiah Senkpiel (@Fishrock123) ditambahkan ke dalam komite teknis (Technical Committee (TC))

Perubahan Berisiko Tinggi

Informasi lengkap di https://github.com/iojs/io.js/wiki/Breaking-Changes#200-from-1x

  • Upgrade V8 ke 4.2, perubahan minor pada C++ API
  • os.tmpdir() telah berfungsi konsisten di seluruh platform (cross-platform–) sudah bisa berjalan secara konsisten di semua platform dan tidak lagi menghasilkan _path dengan tanda garis miring di depannya
  • Meskipun bukan sebuah perubahan yang berbahaya, modul ‘smalloc’ tidak diberlakukan lagi (deprecated) untuk mengantisipasi ketika modul tersebut tidak mendapatkan support lagi setelah proses upgrade ke v8 4.4 terjadi. Untuk penjelasan lebih lanjut, bisa dilihat di #1451.

Catatan: versi baru dari modul ‘url’ dikembalikan sebelum dirilis dikarenakan modul tersebut berpotensi sangat besar merusak ekosistem npm dan diperlukan lebih banyak usaha untuk menjamin kompatibilitas sebelum dirilis. Silakan membaca #1602 untuk informasi lebih lengkap.

Masalah yang Diketahui

Silakan membaca https://github.com/iojs/io.js/labels/confirmed-bug untuk daftar lengkap masalah-masalah yang telah diketahui.

  • Permasalahan pada unreferenced timers yang berjalan selama beforeExit masih perlu dicari pemecahannya. Lihat#1264.
  • Pasangan pengganti (surrogate pair) di REPL bisa menyebabkan terminal berhenti bekerja #690
  • process.send() tidak berjalan secara sinkronis (synchronous) seperti yang dianjurkan pada dokumentasi, proses regresi diperkenalkan pada 1.0.2 (lihat #760) dan perbaikannya di #774
  • Memanggil dns.setServers() ketika DNS query masih berjalan bisa menyebabkan proses berhenti #894
  • url.resolve dapat mentransfer porsi auth dari sebuah url pada saat memecahkan masalah di antara dua full hosts, lihat #1435.
  • readline: split escapes diproses secara kurang benar, lihat #1403

Update Komunitas

  • Michael Dawson menciptakan WG proposal di bawah Node Foundation.
  • Mikeal Rogers menulis tentang pertumbuhan io.js di Medium.
  • CodeSchool blog post tentang yang terbaru dari io.js 2.0.
  • Node Lead TJ Fontaine steps back dari leader.

Acara Mendatang

  • NodeConf Adventure tiket sudah dijual, 11–14th Juni di Walker Creek Ranch, CA
  • CascadiaJS tiket sudah dijual, 8–10 Juli di Washington State
  • BrazilJS Conf tiket sudah dijual, 21–22 Agustus di Shopping Center BarraShoppingSul
  • NodeConf EU tiket sudah dijual, 6–9 September di Waterford, Ireland
Show your support

Clapping shows how much you appreciated io.js Bahasa Indonesia’s story.