This week in Rails: RailsConf 2015 Edition

ZOMG! Hello everyone, it is Godfrey here (it's been a while!), delivering the latest news from Rails to your inbox. This happens to be RailsConf week, so we have lots to cover; lets get to it!

Note: The links to the RailsConf videos are the unedited live-stream versions, and they might be removed later. Also, only talks from the keynote room are available at the moment, but don't worry – the full set of talks will eventually be made available to everyone. Follow @railsconf to stay in the loop!

Rails Conf 2015

Day 1: DHH keynote, Sara Chipps keynote

David Heinemeier Hansson kicked off the conference by announcing a few new features in Rails 5: Rails API, turbolinks 3, a native mobile wrapper and web sockets support (a.k.a. Action Cable).

The amazing Sara Chipps wrapped up the day by sharing her experience teaching kids to code.

Check the schedule for a full list of talks from Room 202. Shameless plug: yours truly gave a talk following the DHH keynote ;)

Day 2: Aaron Patterson keynote, lightning talks

Aaron Patterson started the second day with a punishing amount of word play jokes. In between trolling other keynote speakers and rebooting his computer, he also dropped an incredible amount of performance knowledge.

Don't forget to catch the lightning talks towards the end of the stream!

Day 3: Ruby heroes, core team panel, Kent Beck closing keynote

The Ruby heroes awards were given on the third day, followed by a panel discussion featuring some members from the Rails core team.

Kent Beck, aka the creator of XP (not to be confused with the other XP) wrapped up the conference with a focus on the human elements of programming.

Featured

This week's Rails contributors

Just because it is Rails Conf, it doesn't mean contributions to the Rails codebase will see any slow down. In fact, 37 contributors made their mark on Rails this week, with 11 first-time contributors!

Rails API

As mentioned in David's keynote, Rails API will be part of Rails 5. Follow the pull request to track the progress and chime in on the discussion. (Please avoid leaving +1 comments!)

New Stuff

Generic bug report template

Joining the existing bug report templates, this new template will be handy for reproducing small bugs with a minimal setup. Check the contributing guide for details.

[attr_name]_previously_changed?

With this patch, you can easily check if a single attribute has previously changed and react to those changes appropriately.

That's a wrap

It's been quite a week! We didn't have room to cover everything that happened in Rails, so head over and take a look for yourself.

Thank you for your continued support for the newsletter. (I am very glad to have met a few of you at RailsConf!) As always, feel free to share this with your friends. If you have any comments or would like to help, drop me a line!

This week in Rails: Ruby 2.2.2, RailsConf and more!

Hey reader, Kasper here.

I'm sole jammin' and grand slammin' words into your inbox.

But before the Rails juice, a quick story spruce: At my company we have a coworker we look up to, because she's doing a cross country trek.

She's our heroine and she just crossed the border.

Oh right, you were looking for Rails news.

Featured

This Week's Contributors

This week 42 people helped Rails out. Rails 5 comes closer everyday and it's only possible because of all your help. Keep it up and it'll be the best version of Rails yet.

prepend Primed to Dethrone alias_method_chain

Remember when we said alias_method_chain had been deprecated? Well, if the method being overriden called super, you'd be stuck in an infinite recursion - like that friend who didn't graduate kindergarten. This week prepend became the successor Rails needs. And how is that possible?

Rails 5 Requires Ruby 2.2.2

Well, I'm glad you kept reading, because Ruby 2.2.2 has a fix for prepend. The new version is mainly a security release - with some bug fixes squeezed in there - so no procrastinating the upgrade, okay? You want to be ready to hit the lab next week too.

New Stuff

Controllers With Default Form Builders

There's a new default_form_builder method you can override in controllers. Then form_for and friends will use the passed builder class to architect the view.

A new Action Pack XML Parser Release

Hey, there's a new version of this thing out.                                                  

Improved

Railties Uses Bundler's exe Convention

You've probably been prepending bin when running rake or rails like a good samaritan. Those are binstubs in action. But bin is for executables in general and not just those stubs. Not anymore, as Bundler reserves bin for binstubs and exe for executables. This week Railties executed that convention.

One More Thing™

Meet Us at RailsConf

A few of us are going to the big peach next week. So after you've seen DHH reveal the really big stuff coming in Rails 5, you can mingle with us at RailsConf. Both Godfrey and Claudio will be speaking. ...and I guess I'm there too.

That's a wrap

Another week in Rails went by - and so swiftly. There's more changes in this tailored link.

Lastly, either pluck in a few of your friends' emails here or ask Godfrey how you can get to write these things too.

This week in Rails: batch touching, default controller response and more!

Hey there, this is Washington. It's finally Friday again!!!

A lot of bug fixing and a couple great improvements going on the Rails environment this week. Read on for more details.

Featured

This week's Rails contributors

31 contributors have helped improve Rails this week. Consider taking some time next week to make a contribution to an open-source project :) (I keep telling that to myself every day)

Improved

Batch touch parent records

YAY! I bet many projects have been looking forward to this improvement. After a couple discussions and experiments touching is finally limited to the fewest possible number of queries.

Controller actions default to head :no_content if no template exists

After all these years DHH is still pushing for better defaults on Rails. Next major version will assume everything went fine if a controller action has no template. I can't see why not.

Fixed

Non-ascii characters in URLs on Windows

We are a few months into 2015, but these encoding-related problems are still haunting us! With this fix, Windows apps will stop blowing up on strange URLs. Yet another example of how awesome the Ruby and Rails community can be.

Error when defining callbacks named run

An apparently nice performance improvement has caused a regression on the callback system. Plus according to new benchmarks it seems the original performance improvement is no longer relevant.

force_ssl without session_store

config.force_ssl = true now works properly even when you have disabled the session store.

Uniqueness validations and out-of-range integers on PostgreSQL

Another patch to make Active Record API rock solid.

One More Thing™

Redcarpet 3.2.2 has an XSS vulnerability

I haven't seen much noise about this vulnerability on the interwebs but just in case. If you have this markdown parser on any of your projects you should probably bump it whenever you have a chance.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails

Happy Good Friday Everyone!

Here comes the gist of last week's interesting commits from Rails. Stay tuned!

Featured

This week's Rails contributors

We had 30 amazing contributors this week, big thanks to all them!

New Stuff

Explicit base class for Active Job jobs

It is recommended to not change settings on ActiveJob::Base directly so from now on every generated Job will inherit from ApplicationJob and you can tweak that for your needs.

Rails uses Sprockets 3 now!

Sprockets 3 will be released soon and the Rails team decided to give the release candidate a try.

Deprecated

Deprecate the :tokenizer option in validates_length_of

This option only served an extremely specific use case hence became deprecated. If you rely on this functionality, you can implement it with a plain Ruby method.

Improved

Only coerce time in comparison if necessary

In the development environment ActiveSupport::FileUpdateChecker#max_mtim triggers many time comparison and there were many unnecessary to_time calls. With this patch Rails saves around 100ms per request!

Reduce memory usage when loading types in Postgres

The PG::Result object were never cleared when the application queries the types. By clearing that object Rails use less memory.

Fixed

Return super in ActionController::Parameters.const_missing

With this pull request ActionController::Parameters.const_missing's super is always returned whereas before it was only called and its return value was mistakenly discarded.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: Goodbye alias_method_chain, PostgreSQL typecasting and more

Hey all!

This is Prathamesh with this week's recap from Rails. Lets see which issues got fixed, which features got added. Ready, steady, go!

Featured

This week's Rails contributors

This week 40 people contributed to Rails, 7 out of them are new. Do you also want to help? Check out the issue tracker and start making Rails better.

By the way, Xavier and Kasper added the permalink feature to the link of weekly contributors. So each weekly contributors link is forever to stay!

New Stuff

Warning if the query fetches more than fixed number of records

Faced problem with queries fetching thousands of records and slowing everything? Now you will get a nice warning if the query fetches more number of records than configured value by using active_record.warn_on_records_fetched_greater_than config option.

Deprecated

Deprecate alias_method_chain in favor of Module#prepend

Do you remember the old friend alias_method_chain? It had a good run. But now it will be deprecated in Rails 5 in favor of Module#prepend which was introduced in Ruby 2.0.

Improved

Moving type casting for PostgreSQL out of Active Record

We just got two steps closer to moving type casting of various data types for PostgreSQL from Active Record to PostgreSQL adapter.

Friendlier access to request variants

With this patch, you can now check the current request's variant using request.variant.phone?, request.variant.tablet? and so on.

Fixed

Pass name of the wrapped job class to Sidekiq for logging

If you were missing your job class in the Sidekiq logs and instead seeing some weird ActiveJob::JobWrapper, don't worry. Now you will get your job class back in the logs because ActiveJob will pass the wrapped class name back to Sidekiq.

Use actual table name while joining tables with has_many :through

Previously, while joining tables having has_many :through association, Active Record was not using the actual table name. It was generating wrong SQL and resulting into ActiveRecord::InvalidStatement error when used with calculation methods like #count. No need to worry, its fixed now!

Generate fixture file with singular name for singular tables

Previously if the table name was made singular using ActiveRecord::Base.pluaralize_table_names = false, name of the fixture file getting generated was still pluralized. No longer true! Get singular fixture file for singular table name now onwards.

Summer Opportunity

Rails Girls Summer of Code

Checkout Rails Girls summer of code. You can submit your open source project to be included. Also you can help fund the campaign.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: 4.2.1, 4.1.10, new test runner and more!

Hello Everyone!

This is Vipul from Pune, where it's the Gudi-Padwa – or the Marathi New Year! Surrounded by garlands of sweets, lets head on to see, whats exciting this week.

P.S. Happy New Year!
P.P.S. Isn't it a New Year, everyday somewhere around the World?

Featured

This week's Rails contributors

36 people contributed to make Rails awesome this week. If you haven't already, go ahead and watch Rails on GitHub to follow the discussions and find your first opprtunity to help out!

Rails 4.2.1 and 4.1.10 have been released!

After four release candidates, Rails 4.2.1 and 4.1.10 have finally been released! Thanks to all the contributors, for tons of fixes. Check out the full changes for 4.2.1 and 4.1.10 respectively.

New Stuff

bin/rails test runner

A new test runner – bin/rails test – has landed on master. This is the successor to the rake-based test runner, and includes a few rspec-inspired features that are not part of minitest, like running by line number, rerun snippets, or logs displayed with unicorns filled with rainbow colors.

Added rake initializers

Need to see all those initializers scattered in you application? Worry no more. Just run rake initializers! Did I mention they are sorted?

Improved

Use fullpath from Rack request

In Rack, request#fullpath returns the full path including the query string. This change uses fullpath from rack to avoid doing the same thing again in Rails. As a result, we also reduced some object allocations!

Fixed

Materialize subqueries by adding DISTINCT to suport MySQL 5.7.6+

In MySQL 5.7.6+, the default value for optimizer_switch has changed to derived_merge=on, which causes some issue with the subqueries generated by Rails. This change fixes that by adding a DISTINCT to the subqueries.

Don't cast nil to string in postgres enums

Previously, nil values in PostgreSQL enums were casted to an empty string, which causes an error somewhere down the chain. But worry no more – this has now been fixed!

Summer Opportunities

Google Summer of Code 2015

Are you a student, or know someone who would love to contribute to Rails? Our GSoC students application is now open! Check out our ideas page and join us on the mailing list for discussion.

Rails Girls Summer of Code

Rails Girls Summer of Code is also accepting application! You can also consider submiting your open-source project to be included.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.2.1 and 4.1.10 have been released!

Hi everyone,

I am happy to announce that after four release candidates the final versions for Rails 4.2.1 and 4.1.10 have been released.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-256

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-256 hashes.

Here are the checksums for 4.1.10:

$ shasum -a 256 *4.1.10*
4d771e1042dc40148f7d13e9776bd3df4d7a1f116c7991b33b3ee5ade2771edf  actionmailer-4.1.10.gem
383fbbc9db04529b15765d4b3236980b8f0c7e050128a467c2dece76b9dea29e  actionpack-4.1.10.gem
4c72eca866e4a80b3a56760aeb859e26bbe221fc2c06c13bc8d3220284900330  actionview-4.1.10.gem
277d3fd1736ef1c4043592f482e6dea5cf4cc7d50c706b8be4971058a0df69cc  activemodel-4.1.10.gem
a4ab57ff0183a630b46c2fb1c8700cc139f45808b81e4650d6f235102e3d9ae6  activerecord-4.1.10.gem
b495b8490a7f3a885c8d0868858cca5070be41a5001642d2eb83a2f2e794082a  activesupport-4.1.10.gem
9f81f8b716ba76ea768b1c0ed4a185a3f7647b384fc297c26c2b51be82856fd3  rails-4.1.10.gem
55546f3c8e40c63cd7fd34b41dcf79eb302a38dd9b5a0383e60e9e747e7ecfe9  railties-4.1.10.gem

Here are the checksums for 4.2.1:

$ shasum -a 256 *4.2.1*
f322b21623eb10eb302a21a803625bd57ce2b4ae24c2b5c14934a1359d63cf60  actionmailer-4.2.1.gem
71fecb2c58b81dc97d9c8fe065004010cccd2a7acd1bc8a459d42b55c4882ca2  actionpack-4.2.1.gem
cf7dbb0b5d7a9ccb9be1870be97e5ec319e3ee0f5dc766e62c20fafe92c02bd5  actionview-4.2.1.gem
33cee3d50dbfacd105766be1f5885dfa614deb8a18c45a3a398f294457c8bd63  activejob-4.2.1.gem
c55157de170de2c10ad2755c3fa434e7adcbe34af2526b4cf20b63feb5f8169b  activemodel-4.2.1.gem
5febff6cb42c0fb94bb7708ad7df7f9ef6d365a27ef35c239674d651013c6cf2  activerecord-4.2.1.gem
36742443adbc7b4648b8674d119ac9dc446c3a555ce73a5a28b1fa029e8adad4  activesupport-4.2.1.gem
6b5f7d3a4a9eb2f181bab4a657315dbe08d0be218eae6017bef8a45dede211cb  rails-4.2.1.gem
a01ce5513806d712cca8ed60429493d18093eff680201e2e288602c1405e2e8b  railties-4.2.1.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails: RC releases, summer opportunities, turbo partials and more!

Hi all! o/

Here is Washington bringing you this week's news from our favorite framework. I hope you have made it to Friday the 13th without any major hiccups (I can't say the same about my internet provider). Either way, it's time to grab a drink, wind down and read on!

Featured

4.2.1.rc4 and 4.1.10.rc4 have been released

Give them a try on your projects to help make the next release as rock solid as possible. Many regressions have already been fixed and the final release should be out on March 17.

This week's Rails contributors

Couple more developers made their first commit into Rails this week. Take a moment to review the open issues, perhaps you will find something related to your day job, manage to fix it and have your first patch in Rails!

Summer Opportunities

Google Summer of Code 2015

It's that time of the year again! As reported last week, we have been selected to participate in this year's Google Summer of Code program. This week, a few more exciting ideas have landed on our project page!

Applications will open next week, so please help spread the word!

Rails Girls Summer of Code

Speaking of summer, Rails Girls Summer of Code have just opened their applications today. If your company can afford it, consider becoming a sponsor!

New Stuff

Turbolinks partial replacement

Mostly inspired by shopify/turbograft turbolinks now also supports partial replacement. Checkout the PR with docs as well for usage details.

Improved

All Rails tests run in random order

As of this week Rails is giving another try on running tests in random order!!! You should probably try the same on all your projects for more reliable test results.

Fixed

Rails 5 will need Ruby 2.2.1 or higher

Apparently Ruby 2.2.0 kwargs were still not that stable. A related issue caused a segfault error on ActionPack tests. So Rails 5 will require at least Ruby 2.2.1.

Fix rollback of frozen records

In case your project upgrade to Rails 4.2.0 raised any Can't modify frozen hash errors, checkout the latest release candidate. Chances are it will be fixed in Rails 4.2.1.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.2.1.rc4 and 4.1.10.rc4 have been released!

Hi everyone,

I am happy to announce that Rails 4.2.1.rc4 and 4.1.10.rc4 have been released.

There were found some regressions in the last release candidates so, following release process we are releasing new release candidates.

If no regressions are found expect the final release this Tuesday, on March 17, 2015. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-256

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-256 hashes.

Here are the checksums for 4.1.10.rc4:

$ shasum -a 256 *4.1.10.rc4*
93f9bccd7920d41af334bd41f908d4d01d036ee661530b1d7006087e649bff4e  actionmailer-4.1.10.rc4.gem
d614facc52b04032bb6d5a126c157250a8538928fc44fa7d5939ffe1c20abe41  actionpack-4.1.10.rc4.gem
481251461e4b323007a1e3672b136c9f69925f00efc658b1ce5bf3c42ee77151  actionview-4.1.10.rc4.gem
da5d4b4d640dbb8c114f3cb908883efe8873ada149860c2e54f88e53e8a231bc  activemodel-4.1.10.rc4.gem
e3abf43e7ab7e3d48f68dd043c01603d8017865595276203f909dc62c5503ad2  activerecord-4.1.10.rc4.gem
fff8f641190860b4d22b2197f186a280574c7eaba3f1e57e0289d4114a3ef54c  activesupport-4.1.10.rc4.gem
178baf8604ad8212cb76c6e36052031de4ed2fc03d9f63e470735c482e1164bd  rails-4.1.10.rc4.gem
8fe2da153ab8a4954a001d8b646dc4c441f3b4e275e5c9f1de124d180aace94d  railties-4.1.10.rc4.gem

Here are the checksums for 4.2.1.rc4:

$ shasum -a 256 *4.2.1.rc4*
5ab74d4319c41f4e0967d9b1f675cbcb98cae72f7ab5ef2c07c321092c66a708  actionmailer-4.2.1.rc4.gem
09933d78c9ed055d6fea82ee2557910cc0090efab3b7f4291cb2ca32bed6a907  actionpack-4.2.1.rc4.gem
7e56026b4822c1ab614b867e8304282464cb967150915eee52ae1bb891dc9306  actionview-4.2.1.rc4.gem
f8a4e712fb0960979147d051e15693b9e2c49b0527f2b88d0af26c577a038843  activejob-4.2.1.rc4.gem
79a587ecf7b10a9e7b3ad3aa15a8d6a4f934f118f554372aa755100ccafd7b06  activemodel-4.2.1.rc4.gem
19815873691a559d5a8142110dd7a1ad9519c9e40e609adc2cbea62c514fcb49  activerecord-4.2.1.rc4.gem
d62066327e4a7ecddfc8b6f43a996dbdc2de27eade12370ad16e5f58797ba9a8  activesupport-4.2.1.rc4.gem
67b780da327c1ff8efee6e6d41e1fd735e4fa8734bc34ae450bb587db34ff8ad  rails-4.2.1.rc4.gem
a0ab1d80c7cfaed985a9704b874df28fbc677fe2ab6041a2e2f77a6daeb4b299  railties-4.2.1.rc4.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails: 50,000 commits, GSoC opportunity and more!

Ahoy there, rapscallion.

We're just about to depart for our weekly voyage on the sea of Rails news - beware the great snark!

Captain Kasper abides seas and appeases gods in hopes we make it ashore.

Come aboard and let's cast away.

Featured

Rails crossed 50,000 commits

Our backs are all red from the pats given when news broke of Rails having more than 50,000 commits.
Adding to that chalupa 42 chummy contributors crossed the web and helped out.

10+ Years of Rails with DHH

Listen in as David takes a trip down memory lane. Hear why he made Rails and get some stories on the early days of Rails contributing. He also has some thoughts about money and open source. It might not be such a good thing to get paid to work on open source, after all.

Rails & Google Summer of Code 2015

Speaking of being paid for open source, Rails will be part of this year's GSoC. I was a student two years ago and wouldn't be here without it.

I highly recommend doing your research. Submit an honest proposal and you just might make it.

Seagulls of the Sea

Damn Winged Creatures in my Newsletter

There we were. Having a nice day on the deck and a seagull wants to join in on the fun of staring at peaceful waters. Not on my watch.

waves broom

Return to the sea, beast!

New Stuff

Added restart rake task

Rails 5 brings a restart Dr. Frankenstein would be envious of. The new rake restart command will knock your app out cold and zap it back to life.

Enumerable#without

We also got a new Enumerable method to quickly rid of us stuff harmful to humans: [:whooping_cough, :vaccine, :measles].without(:vaccine).

Finally, we can sleep easy.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!