Rails Minggu Ini (27-2016) - Rilisnya 4.2.7.rc1 Dan 4.1.16.rc1


Hallo Semua, Sebetulnya this week in rails jumat kedua bulan juli sudah release sejak sabtu pagi minggu lalu, namun karna saya sedang libur lebaran, jadi proses translatenya ngaret dan baru selesai hari ini :).

Edisi kali ini di kompilasi oleh Jon (Juan El Badido). Dia meringkas perubahan pada Rails 2 minggu terakhir.

Headline

Contributors

Ada sekitar 38 orang yang berkontribusi untuk rails, termasuk 8 orang yang baru pertama kali memberikan kontribusi. Ini artinya 20 % dari commiters, merupakan orang baru.

Rails 4.2.7.rc1 dan 4.1.16.rc1 telah rilis

2 rilis candidate telah di publikasikan 10 hari lalu. Final release dari rails 4.1.16 seharusnya release secepatnya jika tidak di temukan adanya regresi. Mungkin aja ini rilis terakhir dari rails 4.1.x, jadi upgrade rails mu ke rails 5 untuk mendapatkan support yang lebih panjang.

Sintax baru untuk Action View tag helpers

Feature ini di bangun berdasar proposal yang di buat DHH. Sintax baru ini mendukung HTML5 markup dan menghindari parameter posisi. Pull request (25289) telah di merge dan kita bisa lihat diskusinya secara seksama di sini

Update di Rails Guides

Banyak dokumentasi baru di tambahkan dalam 2 minggu terakhir, termasuk finalisasi Rails Testing Guides dan dokumentasi update untuk feature dan pattern baru di Rails 5.

Peningkatan

Stack Trace yang lebih rapih

Di buat untuk Rails 5.1, PR ini merapihkan stack trace yang panjang dan belibet menjadi lebih simple dan fokus terhadap error yang di raise.

Update Action View tag helpers attributes

Commit ini menambahkan boolean attributes untuk Action View tag helpers sesuai dengan Spesifikasi w3.org. Mengganti autobuffer menjadi preload dan menghapus pubdate.

Raise Error dalam nested time travel helpers

Nested time travel calss dalam test mungkin membingungkan dalam time subbing. Untuk mengurangi kebingungan dan rails pun tidak merekomendasikan nested time travel, kini Rails akan me raise error.

Bug Fix

Menggunakan timezone yang sesuai dalam parsing tanggal dalam json

Sesuai dengan format ISO 8601 format tanggal tanpa Z seharusnya di parse dengan waktu server yang memparse, namun hingga commit ini di merge, Rails masih menganggap tanggalnya merupakan tanggal di UTC. Solusi yang di gunakan adalah dengan memparse Time menggunakan timezone yang di set di dalam application config. Perubahan juga di porting ke Rails 5.0-stable.

Routes yang menggunakan option as sekarang bisa di gunakan di GET request

Sekarang bisa menambahkan opsi pada akhir URL url (.json, .xml) ketimbang menggunakan parameter. Jika di review dengan seksama pada PR terdapat diskusi terhadap performance.

Fix Race Condition pada websocket stream writes

Kini ActionCable::ConnectionStream aman terhadap concurent write ke konesi websocket yang berasal dari multi thread. Juga telah di persiapkan untuk minor release pada Rails 5.0.0

Issue ini terjadi ketika menggunakan web socket dan merefresh browser beberapa kali. Seharusnya koneksi websocket hanya ada 1 karna hanya 1 browser yang mengaksesnya, tapi jumlah sesi terbuka terus bertambah. PR telah di merge dan di backport ke Rails 5.0.0

Fix tidak memberikan etag value baru ketika menambahkan implicitly-rendered template

Ketika template sudah di modifikasi, seharusnya response tidak memberikan status 301, namun status 200. Kini response menghasilkan ETag baru, error telah di backport ke 5-0-stable.

Fix Type::Date#serialize tidak mengcast nilai menjadi date object

Sebelumnya Type::Date#serialize tidak mengcast value menjadi date object. Seharusnya di jadikan date object agar tidak terjadi kesalahan ketika find column date (pada database).

Terbaru

Middleware baru untuk debugging reloading/executing deadlocks

Menambahkan feature baru untuk diagnosa deadlocks

Memanggil rake notes untuk direktori lain

Sebelumnya, SourceAnnotationExtractor tidak bisa mengextract notes dari deriektori selain direktori yang sudah ditentukan (app, config, db, lib, test). Kini kita bisa menambahkan direktori baru dengan SourceAnnotationExtractor::Annotation.register_directories("spec", "other_dir")

Terima Kasih

Phew, akhirnya. Di edisi kini banyak sekali penambahan baru agar lebih mudah di pahami. Jadi jika ada kesalahan, kemungkinan kesalahan itu ada pada saya, bukan pada edisi orisinil

Bantu saya translate di github