Rails 4.2.0 beta1: Active Job, Deliver Later, Adequate Record, Web Console

We're putting the final touches on the first major new release of Rails in its second decade of life. While most software would be in a retirement home after a decade of operation, Rails has never been more fit, and this release is packed with goodies that'll make your work even easier, your apps even faster, and the whole experience even better.

Active Job, ActionMailer #deliver_later

The headline feature for Rails 4.2 is the brand new Active Job framework, and its integrations. Active Job is an adapter layer on top of queuing systems like Resque, Delayed Job, Sidekiq, and more. You can write your jobs to Active Job, and they'll run on all these queues with no changes.

With an always-configured queue in place (though the default is just an inline runner), we can build on top of that where it makes sense. And the first place it makes sense is to send Action Mailer emails asynchronously. So we're introducing the #deliver_later method, which will do just that: Add your email to be sent as a job to a queue, so you don't bog down the controller or model. Voila!

The cherry on top is our new GlobalID library. It makes it easy to pass Active Record objects to jobs by serializing them in a generic form. This means you no longer have to manually pack and unpack your Active Records by passing ids. Just give the job the straight AR object, and it'll serialize it using GlobalID, and deserialize it at run time. So much easier!

Special thanks go out to Cristian Bica and Abdelkader Boudih for their outstanding work bringing this trinity of improvements to Rails!

Adequate Record

Aaron Patterson is always hunting for performance bounties in Rails, and with an improvement project called Adequate Record for Active Record, he's come up good. A lot of common queries are now no less than twice as fast in Rails 4.2! This is a great step forward for performance. While computers are constantly getting cheaper and performance is improving, nobody ever said "hey, get that free speed out of my framework". So there you go: Some free speed, buddy!

Web Console

Out of the wonderful Google Summer of Code for Rails campaign comes Web Console. It's an IRB console available in the browser. In development mode, you can go to /console and do your work right there.

Now that's neat, but what's insanely useful is that this console is automatically available on all exception pages! So when something is bust, you'll now instantly be able to inspect the state of affairs. It even allows you to jump between the different points in the backtrace, and you'll be able to inspect things right at that point.

It's a wonderful improvement to the debugging workflow. Thanks to Genadi Samokovarov and Ryan Dao for their work on this project.

Everything else

Some quick highlights from the rest of all the wonder that is Rails 4.2:

  • Template digests are now automatically included when calculating etags for caching. So caches are bust when the template changes.
  • respond_with has moved out and into its own proper home with the responders gem.
  • Support for real foreign keys! add_foreign_key/remove_foreign_key are now available in migrations.
  • A ton of bug fixes and minor improvements to Active Record.
  • Added config.x.whatever.you_want = true for custom configuration of your app in config/environments/*, config/application.rb, and initializers.
  • Added Rails::Application.config_for(:some_yaml) to load YAML configurations store in config/ easily.

We're working on a set of preliminary release notes too.

Maintenance consequences and Rails 5.0!

As per our maintenance policy, the release of Rails 4.2 will mean that bug fixes will only apply to 4-2-stable, regular security issues to 4.2.x, 4.1.x, and severe security issues to 4.2.x, 4.1.x, and 3.2.x. In addition to these already stated commitments, the honorable Rafael França has agreed to also apply bug fixes to 4-1-stable. So everyone still on 4.1 and unable to move quickly can thank Rafael!

Rails 4.2 will also mark the last big release in the 4.2.x series. After release, we're going to work towards the big Rails 5.0! This means rails/master will have that target as soon as the release candidates for 4.2 start, and 4-2-stable is created.

Rails 5.0 is in most likelihood going to target Ruby 2.2. There's a bunch of optimizations coming in Ruby 2.2 that are going to be very nice, but most importantly for Rails, symbols are going to be garbage collected. This means we can shed a lot of weight related to juggling strings when we accept input from the outside world. It also mean that we can convert fully to keyword arguments and all the other good stuff from the latest Ruby.

The release target for Rails 5.0 is currently spring/summer of 2015. So there's a while yet, but we're putting this out there for people to know, so gem maintainers and other Ruby implementations can know where we're going.

Please help us make Rails 4.2 solid!

We rely on the feedback from everyone in the community to flush out bugs and upgrade issues ahead of a big release like this. So please give Rails 4.2 a try on your app, and if you're starting a new app today, you should probably use the beta1 for that, if you're just the least bit savvy with Rails.

Issues can be recorded on the Github issues tracker.

Already, 476 people have contributed to this new release of Rails. Please do become one of them!

[ANN] Rails 4.1.6.rc1 and 4.0.10.rc1 have been released!

Hi everyone,

I am happy to announce that Rails 4.1.6.rc1 and 4.0.10.rc1 have been released.

If no regressions are found expect the final release this Friday, on August 22, 2014. 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.0.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.1.5

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-1

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

Here are the checksums for 4.0.10.rc1:

$ shasum *4.0.10.rc1*
fa4efa72a6b89c6dcf55280f6bbfab00564982e8  actionmailer-4.0.10.rc1.gem
bfbb408c6c2ab89eafda1b84a33f83a9f58eda8c  actionpack-4.0.10.rc1.gem
f1bedb27e877ca6493541a69491910ce70a34ed0  activemodel-4.0.10.rc1.gem
f211a80fc134f38f4eb2d503b3ca7e92a83eabed  activerecord-4.0.10.rc1.gem
e751d258407d02c3f8790775ffa99f0895c56704  activesupport-4.0.10.rc1.gem
34b8908b2738e78917a434b45ae9fe82b4908425  rails-4.0.10.rc1.gem
a2d4ee8203ce07785b15b367ffe31f9ea96268a7  railties-4.0.10.rc1.gem

Here are the checksums for 4.1.6.rc1:

$ shasum *4.1.6.rc1*
3589d4ea69a04f87ea5335994a43f8d814c6c8df  actionmailer-4.1.6.rc1.gem
b51d28e356c58d08d2f65a3a4912a2911b9d4ffe  actionpack-4.1.6.rc1.gem
f2a8ba7e7ca8fa9e74688cbca3af1e8d48b23de7  actionview-4.1.6.rc1.gem
9a2778d02bd596d629eca6265f0a6d7cecb7d2ef  activemodel-4.1.6.rc1.gem
681023c5764cb1336b6d74bf2ff76efd9c1386b7  activerecord-4.1.6.rc1.gem
85c4e30b5b0eba99c9d43049206591250aed2072  activesupport-4.1.6.rc1.gem
fd10c0533065471768d8fe4b7e7ba81738c607dd  rails-4.1.6.rc1.gem
ec05790e0d256a474f0eaf3ae61e9556e71f1b18  railties-4.1.6.rc1.gem

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

Rails 4.0.9 and 4.1.5 have been released!

Hi everyone!

Rails 4.0.9 and 4.1.5 have been released!

These two releases contain a security fix, so please upgrade as soon as possible! In order to make upgrading as smooth as possible, we've only included commits directly related to each security issue.

The security fix for 4.0.9 and 4.1.5 is:

the commits for 4.0.9 can be found here, and the commits for 4.1.5 can be found here.

Here are the checksums for 4.0.9:

$ shasum *4.0.9*
2034a17791be885e8e4e6211c26447614c830e62  actionmailer-4.0.9.gem
00b13c7dfe94af6ede24c6c1652ff4bc2aee9ef8  actionpack-4.0.9.gem
0a16de437de79128846d5a5fc73a0a0d6ebe369e  activemodel-4.0.9.gem
3d1884dff4fa64267d7c840dbaaac3eafc6fc0a9  activerecord-4.0.9.gem
eb27657cf79c4c13f7b4c4f7aa69a8a171f4e68c  activesupport-4.0.9.gem
2bdba9c61f8860d1883ed5803591dc603b7312fb  rails-4.0.9.gem
f90c7f3104d9d63992d53331990e33c1d832e7c0  railties-4.0.9.gem

Here are the checksums for 4.1.5:

$ shasum *4.1.5*
798edeca54bb9ca1ba91b7669fccb4d2bb41f404  actionmailer-4.1.5.gem
2354a982938658cfafd6097a406ac43facb80c70  actionpack-4.1.5.gem
eb71ffc6ea7537d6066483b6ff5d1edf51f0c344  actionview-4.1.5.gem
15a24e5a1e9191541cc7b24bc1f74e3a0293cf97  activemodel-4.1.5.gem
27cd6cc6a3b52eb5966171e5959b0505f411e8ce  activerecord-4.1.5.gem
44a53eac3e7851c2311cce42f63c966ea05b5552  activesupport-4.1.5.gem
7fa52337ec2b659abfb5b5678125ba0d3b5cbce7  rails-4.1.5.gem
6ffdb1e19734460ded12f9a66f8390ea071f6727  railties-4.1.5.gem

<3<3<3<3

Rails 4.0.8 and 4.1.4 have been released!

Hi everyone!

Rails 4.0.8 and 4.1.4 have been released!

The security patches introduced a regression on the PostgreSQL Range feature. This regression was only introduced to Rails 4.x. Rails 3.2 users are not impacted.

the commits for 4.0.8 can be found here, and the commits for 4.1.4 can be found here.

Here are the checksums for 4.0.8:

$ shasum *4.0.8*
1214de9fa493f5a23c87f7a7c2f1af84f67b60b6  actionmailer-4.0.8.gem
342aa07585b9b4b32ba37c8baf6fe93c53619ad6  actionpack-4.0.8.gem
b40e3b1bbd744b868f74c26e1088d73c9e7d7297  activemodel-4.0.8.gem
b1e28bdad10f21ed8af8b3b8b5e70f0110d19dff  activerecord-4.0.8.gem
1d3d2a767478aee5be22db197b2ec06cdaede10a  activesupport-4.0.8.gem
dbfa6c723191bf61d1c2d3f9809259f419956a74  rails-4.0.8.gem
f22a0677d9151d1f31d109b1c0687b53e06a94f7  railties-4.0.8.gem

Here are the checksums for 4.1.4:

$ shasum *4.1.4*
5e6426134003a55e0f43ff371521f6d66c8881b7  actionmailer-4.1.4.gem
79e84be29d961ef2c175cb5258b1d8c78ad6460f  actionpack-4.1.4.gem
8ba89c7399b81e2727402806176de0db397732eb  actionview-4.1.4.gem
9edc0b4e5c709ad11517a9f40ba50ee93e97e59b  activemodel-4.1.4.gem
23851340221e38717a7159ebcd2eb398e8ebeacd  activerecord-4.1.4.gem
388bd214252b34d22ec8bd1ca2445d7b53cd39bb  activesupport-4.1.4.gem
0e050607bb8581dc756c5184a5920de9708398f1  rails-4.1.4.gem
e1a75ea7161db14c953fce1e399c4e20b2eaa364  railties-4.1.4.gem

<3<3<3<3

Rails 3.2.19, 4.0.7 and 4.1.3 have been released!

Hi everyone!

Rails 3.2.19, 4.0.7 and 4.1.3 have been released!

These three releases contain important security fixes, so please upgrade as soon as possible! In order to make upgrading as smooth as possible, we've only included commits directly related to each security issue.

The security fix for 3.2.19 is:

The security fix for 4.0.7 and 4.1.3 is:

The commits for 3.2.19 can be found here, the commits for 4.0.7 can be found here, and the commits for 4.1.3 can be found here.

Here are the checksums for 3.2.19:

$ shasum *3.2.19*
18420c276ad514b31e393a8a3e54717e66d1b671  actionmailer-3.2.19.gem
44285b467d5c89d6fcc7ccb0d75e18371373a097  actionpack-3.2.19.gem
44ee59f4024aeaac88cb558e337c67968be96531  activemodel-3.2.19.gem
88a7417694abfbb4e8e9eafd4bdcc1d09d609a76  activerecord-3.2.19.gem
32399ca83e5a4241bd14bd16c3042b1a0bd40277  activeresource-3.2.19.gem
6d392def38721f93fa9b4511d53aeaa44eb0fb47  activesupport-3.2.19.gem
486b22ec6e8ec0a20b4c3e3b4d4c0c12fc762c8d  rails-3.2.19.gem
fc104dc2bbd549e6d5cc9b40e95e321d19bb9d86  railties-3.2.19.gem

Here are the checksums for 4.0.7:

$ shasum *4.0.7*
92398e29b1b39578eb0814fce6ab5eb0b4aa4080  actionmailer-4.0.7.gem
6da21c3793a9d83a8d2c88f9718e3e0679aaf316  actionpack-4.0.7.gem
a7885a5b2a3ae24389bd4037350a49ec6a4baec7  activemodel-4.0.7.gem
126ce8ddd290458577f878152faea8b4a65b14b5  activerecord-4.0.7.gem
efbc0b6ef05b6235955c1d890b7c53ea019d2499  activesupport-4.0.7.gem
9589f7f5141ec688ed1f8e7ac8f7429b06d098ef  rails-4.0.7.gem
e4078a44393d0af71e9ecb2c69ad57654f34db8f  railties-4.0.7.gem

Here are the checksums for 4.1.3:

$ shasum *4.1.3*
23b3bdabaa0932ea0b85e36eeb7a05141a26d523  actionmailer-4.1.3.gem
16555cb09c737f7ed371f7b6bab3ecf3f0e3bfe2  actionpack-4.1.3.gem
699eabc22ac45ca264d31556892d9034c3b4da53  actionview-4.1.3.gem
5a2b351d1c570f746f6df606d5281e92758329ea  activemodel-4.1.3.gem
4db00d654d9006bb569f6c9842eb4ea3d84d4546  activerecord-4.1.3.gem
453dae978b865f6589bf61973f93ed5166cbc5fc  activesupport-4.1.3.gem
7e9d4371abb345ac2a0f2765cc514657a115540a  rails-4.1.3.gem
3999875c0d656b60a309dbfeb897310f4ee2879b  railties-4.1.3.gem

<3<3<3<3

[ANN] Rails 4.1.2 and 4.0.6 have been released!

Hi everyone,

Rails 4.1.2 and Rails 4.0.6 are finally out. Rails 4.1.2 is the first bug fix release for the 4.1 series. Rails 4.0.6 includes a lot of bug fixes to make the upgrade path from Rails 3 easier.

CHANGES since 4.0.5

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.1.1

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-1

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

Here are the checksums for 4.0.6:

$ shasum *4.0.6*
a343354aa1e0938ecce8665ef4aeee05a5f46a2c  actionmailer-4.0.6.gem
31c869fad7d3996e57fcb54c02db00af7a3a0d13  actionpack-4.0.6.gem
c98040fd624b3946fa53cfa5015178108fd95ada  activemodel-4.0.6.gem
c7d2863923b2b98b4f81e79121a5f4227a95407f  activerecord-4.0.6.gem
2b9ef712c1edb0b6b52891984bcf41daa85487e8  activesupport-4.0.6.gem
d99210557ce76138c4493cd6fc0428b9fd9535e0  rails-4.0.6.gem
6d4c0c37cfce73052607f02c1121770267449c0d  railties-4.0.6.gem

Here are the checksums for 4.1.2:

$ shasum *4.1.2*
df160752af2f6aa27926ae8874402bef9090082b  actionmailer-4.1.2.gem
7982759fca5f229b9fa655f9eef569a792af36f9  actionpack-4.1.2.gem
1858c063242b5fad0c780599c72a1c8751a87bef  actionview-4.1.2.gem
ddadace54c147ba25983352a3fccefbe89a1cc0e  activemodel-4.1.2.gem
b0d1cfecb597b4240d0586869d7bfc943d8c1532  activerecord-4.1.2.gem
a3597126199cbfad360f8c47adcd0a41c47e532e  activesupport-4.1.2.gem
b8246aa396172b409656cd198cc6b1f3a13f7f25  rails-4.1.2.gem
19bfbf57636a2c81e606fe284adcf74767c4bc52  railties-4.1.2.gem

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

[ANN] Rails 4.1.2.rc3 and 4.0.6.rc3 have been released!

Hi everyone,

I am happy to announce that Rails 4.1.2.rc3 and 4.0.6.rc3 have been released.

We fixed two regressions on Active Record component.

If no more new regressions are found expect the final release this Thursday, on Jun 26, 2014. 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.0.5

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.1.1

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-1

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

Here are the checksums for 4.0.6.rc3:

$ shasum *4.0.6.rc3*
af0d0aab4192f9d37ae238085cd9b410015a1b08  actionmailer-4.0.6.rc3.gem
6911962ef02985ed42fb8829fc4c2c11d0cb7563  actionpack-4.0.6.rc3.gem
e6d6ede05f749122875e171183e7f619af742d53  activemodel-4.0.6.rc3.gem
e4e206c07f42e52785d2964ff90d79c62818ed46  activerecord-4.0.6.rc3.gem
69ede48c8330b294a9eb3ed4c597624842b170ca  activesupport-4.0.6.rc3.gem
2793dd17405af95695c9988fddcbc5c2a2429aca  rails-4.0.6.rc3.gem
369a895d38d264b01f7cd370e7a9edba8cc7f71b  railties-4.0.6.rc3.gem

Here are the checksums for 4.1.2.rc3:

$ shasum *4.1.2.rc3*
4693dd6351e942abadd5c91b20a329ecfcb48374  actionmailer-4.1.2.rc3.gem
a4d75f35b9d8ccc6d80fb797ce94866cf3491ae7  actionpack-4.1.2.rc3.gem
ee9cd1b5cd319c41fdf7a067fd49e042853c6465  actionview-4.1.2.rc3.gem
e2c715ab894261187f1bfe3ce1845bab846ec905  activemodel-4.1.2.rc3.gem
902e4d82d03d460ab4aa3cbcdbaeb5d11135500e  activerecord-4.1.2.rc3.gem
1c086568424a2e511cd2ba3c97c42963c9a474eb  activesupport-4.1.2.rc3.gem
bfb012898f5f4af3f7da0a33929cd9f7ae888902  rails-4.1.2.rc3.gem
5b0c6c33db6aaf8fb7ad940e88c87c345949c84b  railties-4.1.2.rc3.gem

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

[ANN] Rails 4.1.2.rc2 and 4.0.6.rc2 have been released!

Hi everyone,

I am happy to announce that Rails 4.1.2.rc2 and 4.0.6.rc2 have been released.

We had a regression with the protected_attributes gem, so if you are using it in your Rails application make sure you are using protected_attributes 1.0.8 to get it working with these Rails versions.

If no new regressions are found expect the final release this Thursday, on Jun 19, 2014. 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.0.5

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.1.1

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-1

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

Here are the checksums for 4.0.6.rc2:

$ shasum *4.0.6.rc2*
4f92e40428cf3513823b16fb674cc59367c30e13  actionmailer-4.0.6.rc2.gem
87449d571f13806399bf26aa1fe666787a197af2  actionpack-4.0.6.rc2.gem
b8b9927eb65b43c10d0b7d79a4942925105c7dbb  activemodel-4.0.6.rc2.gem
3c37325ff3f763dce52554046ff07bacbfbb1dd6  activerecord-4.0.6.rc2.gem
f3572822ab03eeee772d849cb9201d29464e0bbb  activesupport-4.0.6.rc2.gem
020211149871991b45926e23a72c483826e14904  rails-4.0.6.rc2.gem
a86b1e31db544c762ebe1005db0e783ad6de604b  railties-4.0.6.rc2.gem

Here are the checksums for 4.1.2.rc2:

$ shasum *4.1.2.rc2*
a34885dfbadd9bb8aeb8047428f04f5680ef40ef  actionmailer-4.1.2.rc2.gem
4800e2ddac6c248817a2bedf2c8b35bd1dab7edd  actionpack-4.1.2.rc2.gem
777e2030dde924fb0a851f6227ee2224a9479735  actionview-4.1.2.rc2.gem
80597481e829dad1e8c7a9a331f3d1d64b7ac97d  activemodel-4.1.2.rc2.gem
5636ec01c68be14d3fb111a2a0c97ad7954929e5  activerecord-4.1.2.rc2.gem
cd64099318e90c72c8588f86c2355aef32580ab6  activesupport-4.1.2.rc2.gem
0f1a970cb66799374db8cbb68f536a515e6d87c0  rails-4.1.2.rc2.gem
86662065b041095ad318256f3a8cda2986849f4c  railties-4.1.2.rc2.gem

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

[ANN] Rails 4.1.2.rc1 and 4.0.6.rc1 have been released!

Hi everyone,

I am happy to announce that Rails 4.1.2.rc1 is the first bug fix release for the 4.1 series. Also, we are releasing a new bug fix release for the 4.0 series, as 4.0.6.rc1.

If no regressions are found expect the final release this Friday, on May 30, 2014. 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.0.5

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.1.1

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-1

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

Here are the checksums for 4.0.6.rc1:

$ shasum *4.0.6.rc1*
bfaa81992f296ef78ca9fc3bb91f0774d791a2f1  actionmailer-4.0.6.rc1.gem
f5bda30b6b4055fead69615cb1002e0a7d0b3ea8  actionpack-4.0.6.rc1.gem
8ebc8ee9fc2397938779145fd72a4b3bdf1403f0  activemodel-4.0.6.rc1.gem
3c7020e743f0ae31a50ec66ca539d1edec6f056a  activerecord-4.0.6.rc1.gem
d2fd5241f4725e5c8cea638e2a5e9f9fbff653b7  activesupport-4.0.6.rc1.gem
b44d1a9fc30939c5d83e1f09fba0c0f6cb7f675a  rails-4.0.6.rc1.gem
dbe182d875924600750972e9c0a5025ee2921e55  railties-4.0.6.rc1.gem

Here are the checksums for 4.1.2.rc1:

$ shasum *4.1.2.rc1*
7eb15b9912f8f6948be4091a165417552930950c  actionmailer-4.1.2.rc1.gem
4dde8326e5fdf09a682966d048855d6adb9c49cc  actionpack-4.1.2.rc1.gem
86c81d9dc97b7e23a8ff39826ee7d92d3b0bc78c  actionview-4.1.2.rc1.gem
df193047dc7daabfea8e0a59326ba35ffa7bdd9a  activemodel-4.1.2.rc1.gem
231e81b5baa8eec3a5f7d9b1eb476951f5af619b  activerecord-4.1.2.rc1.gem
ab905ad3df3b4e76622dc209e3f4804612ccf0b7  activesupport-4.1.2.rc1.gem
3f550100c230a76da51b844f88b606eee8e19594  rails-4.1.2.rc1.gem
d2fd2645af58591f09c9a0af6ca61b6005fd8854  railties-4.1.2.rc1.gem

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

Meet our Google Summer of Code students and mentors!

Google has announced the list of projects that were accepted into the Google Summer of Code (GSoC) 2014 program. I'm extremely excited and proud to announce that Rails has been granted eight project slots this year. Here's what our students will be working on this summer and the mentors that they are working with:

Unifying controller and integration tests

Alan Guo Xiang Tan will be working on unifying controller and integration tests. This would help to improve the performance of integration tests and encourage more full-sprecturm testing.

Joining him on this effort will be Rails committers Matthew Draper and Yves Senn.

Long-running Ruby and Rails benchmark

Bert Chang will be creating a set of long-running benchmarks for Ruby and Rails. This will help both projects continuously monitor how their commits are impacting real-world performance, which will help discover and respond to regressions much earlier in the development cycle.

He will be mentored by Damien Mathieu, a longtime Rails contributor.

Form models

Petros Markou will be exploring different API designs to help reduce coupling between the view and model layer.

Carlos Antonio da Silva, a member of the Rails core team, will be assisting him along this journey.

Improving compatibility with other Ruby implementations

Robin Dupret will be getting the Rails test suite passing on alternative Ruby implementations, such as JRuby and Rubinius. This work will help improve the compatibility of Rails on these platforms.

Ben Browning (JRuby and Rails contributor), Vipul A M (Ruby and Rails contributor) and Federico Builes (Rubinius and Rubyspec contributor) will be joining forces to help Robin with his project.

A web-console in your error page

Last year, Genadi Samokovarov developed a web-based console in his GSoC project. This year, Ryan Dao will continue that effort and integrate the web-console project into the error page you see in development mode.

Fittingly, Genadi himself will be mentoring the project along with core team member Guillermo Iguaran.

Refactor URL generation and recognition code

Ujjwal Thaakar will be improving Rails' internals by refactoring parts of the routing code that are no longer necessary thanks to Journey.

He will be mentored by Andrew White, another member of the Rails core team.

Security upgrades

Xuchu Zhang will be picking up the task of improving Rails' security defaults and other related features. This effort would help ensure that Rails remains secure out-of-the-box. Plans include implementing support for the latest security features in modern browsers and auto-expiring cookie jars.

Godfrey Chan, a Rails committer, and Rafael Mendonça França, a core team member, will be mentoring Xuchu for this project.

Randomizing the Rails test suite

Last but not least, Zuhao Wan will be eliminating any leakage of global states in our test suite so that it can be run in randomized order without errors.

Rails committer Yves Senn will be assisting him on this project.

Towards a bright future

I don't know about you, but after seeing this list of amazing projects, I am genuinely getting very excited about the bright future for Rails. By the end of this summer, not only would we gain a few great new features, but we are also helping to nurture some new contributors in Rails and the wider OSS community, how great is that!

Finally, we'd like to thank every single student and mentor who participated in the Google Summer of Code selection process. There were many great proposals and we're really excited to be able to work on so many of them this year.

<3 <3 <3 <3 <3

P.S. If you enjoyed this post, you should also check out GSoC's sister project – the Rails Girls Summer of Code initiative, where another seven (Update: 15!) awesome teams will be working on some equally impressive projects in our ecosystem. Did I mention how incredibly excited I am about this summer?