Planet Ruby News

Updated Saturday, 09 September 2017 07:30
{}
JetBrains RubyMine News ( Feed )
Friday, 08 September 2017
Using Live Templates for Ruby on Rails in RubyMine
This post continues the series of useful tips and tricks in RubyMine, and is devoted to using Live Templates. Please also check out the other recent posts uncovering navigation tips in RubyMine, and the 10 most useful shortcuts. What is … Continue reading →

This post continues the series of useful tips and tricks in RubyMine, and is devoted to using Live Templates. Please also check out the other recent posts uncovering navigation tips in RubyMine, and the 10 most useful shortcuts.

What is Live Templates and why use it for Ruby on Rails

Live Templates (aka Code Snippets in many text editors) is a simple solution allowing you to generate frequently-used custom code constructs, and quickly insert them in the editor.

While RubyMine has a built-in set of keywords for Ruby and Rails, and provides autocompletion for them, there are cases when using shortcuts is more preferable. In the case of Ruby on Rails development, this is especially applicable to HTML and ERB tags.

As you probably know when you start typing <% in .html.erb files, the IDE suggests inserting the whole tag, and puts the caret right inside:

erb basic completion rm

But there are alternatives that you may find more convenient, especially if you are used to the default shortcut ⇧⌘./Ctrl+Alt+. that inserts ERB expression printing tag <%= %>, which doesn’t have a similar version for the “non-rendering” Ruby code execution tag <% %>. This is exactly the kind of case where live templates come in handy because they allow you to create one. Here’s how:

Go to Preferences / Settings | Editor | Live Templates. Choose Rails from the list of available language/markup templates, and hit + to add a new template:

add new live template

Then take the following steps:

  1. Create an abbreviation that you will type for a quick insertion in the editor (like erbext), and provide a description that will help you remember what a specific template does(F1).
  2. Type the code that should be generated in the Template text field. Specify where the cursor should be put after the template is inserted by typing $END$. In our case we want to have the caret right inside the tag.
  3. Finally, decide if you want to insert the tag with Enter, Tab, or Space, and choose in which file types the tag should be available. Our tag is ERB-specific:

creating an erb live template

That’s it! Now you have two new ways to quickly insert <% %>. You can either type the abbreviation of the template, and the RubyMine will generate it:

abbreviation erb

Or call Insert Live Template by pressing ⌘J/Ctrl+J, and choose your custom template by just typing it:

erb insert live template

Now, the icing on the cake is that you can also create a live template that will surround selected text with custom live templates just like with HTML tags. To do that, create a new live template (or just copy the existing erbext), change its name, description, and replace $END$ with $SELECTION$:

wrap erb selection

Now you have an alternate template that allows you to wrap selected text in <% %> by pressing ⌥⌘J/Ctrl+Alt+J:

surround witih live template erb

Pretty handy, isn’t it?

Refer to our web help to learn more about creating, editing, and using live templates in RubyMine.

If you find this feature useful, please share your own custom live templates with us in the comments below.

Rails 5.1.4 and 5.0.6 released
Hi everyone,

Hi everyone,

I am happy to announce that Rails 5.0.6 and 5.1.4 have been released.

CHANGES since 5.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 5.1.3

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 5.0.6:

$ shasum -a 256 *-5.0.6.gem
8321d86a6bb9ec85b5189093139bbdfb87ad1935166e5c0eac422068a2a6e515  actioncable-5.0.6.gem
bb1113dd020f310fc7948bd13766eeab6cf975a0e1322c8a10cd12adbcacea4f  actionmailer-5.0.6.gem
1866fbaafcba1a6f23ea075f0c7add8980f99d2f2ddc37032d4b62033b39bf8d  actionpack-5.0.6.gem
6d256fba84733b0dc8a22de7264ceb77ef2ddeae2913632300c76182ecd6d36d  actionview-5.0.6.gem
78190e9f3ab0185734a123907cfa1b847e96d4b1303dcb8304e8bb0d26e64bcd  activejob-5.0.6.gem
f8f7d7e18df7fef01c1c299619c60e9b2becafc141450c3482b95ea85b6eebd6  activemodel-5.0.6.gem
f0065962596bb8d483e0e308bca2611357e4844e86a9d53a99bbee826aa85a19  activerecord-5.0.6.gem
e6f98107623edb19cc25ca2aab134b857f291529ab37a1d00b47560d30a6053d  activesupport-5.0.6.gem
a86663f8d0d4dd0cb07272394a6d0c7d250be617c6efe77edd2ebc9c9d139746  rails-5.0.6.gem
b05fbd99673637408badc3da8988aa76c9f245d9f0202dc65389e6b619e97772  railties-5.0.6.gem

Here are the checksums for 5.1.4:

$ shasum -a 256 *-5.1.4.gem
47d968f5636aa2ee88cb6306a7cb8b426b2156c93851628a354cae9139d56916  actioncable-5.1.4.gem
5ae798850bd284f803cc006887d6b089692183a8c192393436c519bd6ec598e9  actionmailer-5.1.4.gem
f5d0e747051923f19d932bbc5c274353d026d3b4aaf9504f240161330555e4c6  actionpack-5.1.4.gem
302f398a86337818e6f4225934b136436cab5fdfe2fcd6dd7509b1f595a417c2  actionview-5.1.4.gem
f7814fdf4a7592f7f6774f68c5adec53cbcbf825a61bae91219c730ba1cb6bca  activejob-5.1.4.gem
4008ad8f54e149ddf3a7173aba743bf8b39e4eba517e91ba8704aea739129a63  activemodel-5.1.4.gem
89be7874c962070c47ce52ea1182b9920c40f74f27da6d43670ed976aeb2413e  activerecord-5.1.4.gem
9969d4fdc7e1fad82f02f457b03995baa74928e99f73d035564c9eec7426ee69  activesupport-5.1.4.gem
5cc2192045678789e5e7b289476af8bc0a79210ee6713886200cb303ed6f98b8  rails-5.1.4.gem
e477f332b4810f634b58a33c3accdebcfb9d3ab1f4b7b3ed204269d6b1a28001  railties-5.1.4.gem

As always, huge thanks to the many contributors who helped with this release.

{}
JetBrains RubyMine News ( Feed )
Thursday, 07 September 2017
Meet the RubyMine Team at RubyKaigi 2017!
Hello everyone, We are happy to announce that the RubyMine team will visit Japan this September for RubyKaigi 2017! Not only are we sponsoring the event together with other Japanese and international tech companies, but we’re also bringing our own … Continue reading →

Hello everyone,

We are happy to announce that the RubyMine team will visit Japan this September for RubyKaigi 2017! Not only are we sponsoring the event together with other Japanese and international tech companies, but we’re also bringing our own presentation:

Automated Type Contracts Generation for Ruby

Our Team Lead, Valentin Fondaratov (github), will give a talk about the new approach to type annotations generation in Ruby. Join Valentin on September 19, 13:50 – 14:30, to learn about our progress on an open source project that should bring robust static analysis for Ruby, and see how it works!

You can also take a sneak peek at this presentation to learn more about the matters of the project:

Source

Drop by for a chat!

If you’re attending RubyKaigi this year, make sure to find our booth in the expo. We would be happy to talk with you about RubyMine, and discuss your issues, questions, and suggestions. We can even organize quick customer meetings on the spot.

Our booth will feature JetBrains and RubyMine branding which are hard to miss. Also, our staff will be wearing JetBrains T-shirts during the conference, so feel free to stop us anytime and chat!

rubymine jetbrains booth

We’re not coming empty-handed: every RubyKaigi participant will get a 20% discount for a personal RubyMine license, as well as a chance to win a free personal RubyMine license, by participating in our raffle. All of this goes without saying that we’ve prepared some swag for you to grab 😉

Follow us on Twitter and join RubyMine Slack to stay tuned for updates!

Can’t wait to meet you at RubyKaigi 2017!

Cheers!

Your RubyMine Team

{}
JRuby News ( Feed )
Wednesday, 06 September 2017
JRuby 9.1.13.0 Released

The JRuby community is pleased to announce the release of JRuby 9.1.13.0

  • Homepage: www.jruby.org/
  • Download: www.jruby.org/download

JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C R

The JRuby community is pleased to announce the release of JRuby 9.1.13.0

JRuby 9.1.x is our current major version of JRuby. It is expected to be compatible with Ruby 2.3.x and stay in sync with C Ruby. JRuby 9.1.13.0 is our latest release…

Major features of JRuby 9000:

  • Ruby 2.x compatibility
  • A new optimizing runtime based on a traditional compiler design
  • New POSIX-friendly IO and Process
  • Fully ported encoding/transcoding logic from MRI

If you do find issues then report them on using our issue tracker at http://bugs.jruby.org. We also encourage users to join our IRC channel (#jruby on Freenode) and mailing lists. You may also follow @jruby on Twitter for updates.

Highlights:

  • 24 issues fixed for 9.1.13.0

Github Issues resolved for 9.1.13.0

  • #4772 - File.symlink? fix typo
  • #4770 - YAML::Store does not retrieve UTF8 values correctly in read-only mode
  • #4765 - When creating a symbolic link JRuby give bad error message when not an admin on windows
  • #4764 - Update to latest rubygems
  • #4745 - (SystemCallError) Unknown error 123 - FindFirstFile with AsciidoctorJ-PDF on Win10
  • #4741 - core_ext/class.rb:subclasses conflicts with ActiveRecord
  • #4739 - "org.jruby.runtime.scopes.DynamicScope1 only supports scopes with 1 variables" with Deeply Nested Blocks
  • #4737 - Line numbers in backtrace with multiline method invocation are sometimes different from CRuby (again)
  • #4734 - haml-lint hangs with JRuby 9.1.12.0
  • #4733 - Array.instance_methods different for jRuby inside Rails
  • #4732 - Error executing `elm-install` from `elm_install` gem
  • #4728 - Parser does not seem to terminate when parsing this string
  • #4726 - upgrade jruby-openssl to 0.9.21
  • #4725 - JRuby wrongly mutates hash passed in as keyword arg with indy enabled
  • #4724 - Enumerable#each_with_index is broken again
  • #4723 - Problem with Class.instance_methods after Module.prepend
  • #4717 - NPE in windows parsing command line string -e ...
  • #4716 - Rails no longer runs on Tomcat
  • #4706 - TypeError: debugging with --debug
  • #4699 - Re-raising the cause of a Java exception can result in leaked memory and IllegalStateExceptions
  • #4692 - File path canonicalization still broken inside jars on Windows
  • #4691 - `syslog/logger` from the Ruby standard library is missing in JRuby 9
  • #4629 - Possible incompatibility with Sorcerer in 9.1.9.0 + 9.1.10.0
  • #4621 - jrubyc compiled representation breaks but source rb works fine
{}
JetBrains RubyMine News ( Feed )
Tuesday, 05 September 2017
RubyMine 2017.2.3: Docker Compose on Windows & More on the Debugger
This post was updated from the v2017.2.3 Release Candidate announcement to the announcement of the stable RubyMine 2017.2.3 release. Hi everyone, RubyMine 2017.2.3 (build 172.3968.40) is available. The highlight of this build is the ability to now work with Docker and … Continue reading →

This post was updated from the v2017.2.3 Release Candidate announcement to the announcement of the stable RubyMine 2017.2.3 release.

Hi everyone,

RubyMine 2017.2.3 (build 172.3968.40) is available. The highlight of this build is the ability to now work with Docker and Docker Compose on Windows. Additionally, in this post we will share more details on the recent debugger improvements.

Running Docker Compose on Windows

If you are running Windows, you probably know that support for Docker and Docker Compose, announced in v2017.1 and v2017.2 respectively, didn’t work for our Windows users because of an inability to configure Docker/Compose as a remote Ruby interpreter in RubyMine. Today’s update finally fixes this and other issues related to the Docker integration on Windows. In short, you should now be able to configure Docker/Compose on Windows the same way as shown below:

docker windows rubymine

Refer to this post to learn how to setup Docker Compose in RubyMine in detail.

More on the Debugger

The previous update was devoted to improvements in the debugger with the following most important ones:

  • Performance issues with the debugger being slow or freezing
  • Debugging and attaching to Zeus, Passenger, Foreman web servers, and any other multi-process applications

Better-performing debugger

Previously, costly operations were slowing the debugger down while stepping during the debugging session. But in the previous release we added a way to detect such operations and provide a timeout message instead. Take a look at the example below:

ruby debugger timeout

As you can see, instead of evaluating expressions the debugger threw a timeout message, saving you time during debugging. Inline debugging, in this case, shows <?> instead of actual values for the object skipped.

By the way, the debugger provides a backtrace for each timeout operation, which you can find in the debugger’s Console View if you check Verbose debugger output in settings (Preferences / Settings | Build, Execution, Deployment | Debugger).

What if you want to know what a specific variable is equal to despite its heaviness, but get a timeout message instead? In this case, you can simply evaluate that code fragment with the Evaluate Expression:

evaluate expression rubymine

Finally, if you believe that the new timeout feature doesn’t improve your debugging experience, just uncheck Trace to_s evaluation (Preferences / Settings | Build, Execution, Deployment | Debugger), and the debugger will start tracing every object like before:

timeout debugger off rubymine

Debugging & Attaching to multi-process apps

Starting with the previous EAP you shouldn’t have any issues debugging multi-process applications like Passenger, Zeus, and Foreman. You can also attach to the local processes of such applications painlessly.

For example, if you want to debug your Rails app running as a sub-process of a currently running Foreman webserver, you can just attach to Foreman, and RubyMine will also attach to the Rails app, or any other existing sub-process:

attach to multi-process app rubymine

Download this build from our website, and please let us know in the comments below if the new improvements help address your issues with Docker (for Windows users) and the debugger.

As usual, you can see the release notes for the full list of improvements, and use our bug tracker to report any issues you encounter.

Cheers!

Your RubyMine Team

{}
Phusion News ( Feed )
Monday, 04 September 2017
We Are Hiring: Developer Advocate/Evangelist

Phusion was founded with the belief that server maintenance shouldn’t be difficult. Over half a million websites worldwide use Passenger to improve web app performance, boost productivity, and maximize security.

We are looking for a passionate and skilled Developer Advocate/Evangelist who

We Are Hiring: Developer Advocate/Evangelist

Phusion was founded with the belief that server maintenance shouldn’t be difficult. Over half a million websites worldwide use Passenger to improve web app performance, boost productivity, and maximize security.

We are looking for a passionate and skilled Developer Advocate/Evangelist who can help the Passenger team succeed, ideally at our beautiful Amsterdam office.

What will you do?

As a Developer Advocate/Evangelist, you will be a spokesperson, mediator and translator between Phusion and Phusion's users, namely outside developers. The goal is to build mindshare among users and to help internal teams understand what direction we should go.

Your main tasks are:

  • Write engaging content
    Such as blog posts and tutorials.
  • Publish interesting side projects
    To attract interest of users towards Phusion.
  • Keep up to date with competition and market
    For example by frequently playing with the latest technology.
  • Be present on social media
    Participate in discussions and keep people engaged.
  • Participate and help with events
    For example by speaking at conferences.
  • Help dealing with influencers
    Find new influencers and keep influencers friendly and warm towards us.
  • Influence our strategy, future and direction
    Discuss your findings and insights with internal teams, and together let us conquer the world.

This excellent blog post describes in detail the role that we envision.

Besides those tasks, you are also very welcome to help with product development.

Who are we looking for?

The ideal candidate:

  • Has great development skills,
    being able to both create and explain software products.
  • Has excellent communication skills,
    as you will frequently reach out, listen and distill information.
  • Has excellent network skills,
    because you're meant to collect contacts and keep them happy.
  • Is experienced in relevant areas,
    namely web development, server management and DevOps.
  • Possesses (nearly-)native English proficiency,
    because communications must look professional.
  • Is an initiator,
    and can identify, even among the slight chaos that is a startup environment, what to do without being explicitly instructed so.
  • Is within reasonable travel distance of Amsterdam,
    because proximity improves teamwork efficiency, and because we like bonding with co-workers.

What does Phusion have to offer you?

  • Lunch, drinks and snacks when you’re in the office,
  • Flexible work hours and locations,
  • Travel allowance for day-to-day and conference travel,
  • Relaxed and fun company culture - karaoke and games included.

See our Careers Page for the full breakdown or swing by the office to see what we’re really like.

We Are Hiring: Developer Advocate/Evangelist

"I am part of a remarkable company, facing interesting challenges on a global market, with a lot of room to take responsibility and further develop my skills."

Daniel KnoppelPassenger Lead
We Are Hiring: Developer Advocate/Evangelist

"I have the opportunity to work with smart, fun, young people from different parts of the world. Everyone who works here has the responsibility of making Phusion great! I am very proud of being a Phusioneer."

Katya van Rijn-PortilloOffice Manager

Sound like you?

Send us your CV and cover letter to jobs@phusion.nl or come and meet us at our Amsterdam office! We’ve got a bunch of C++, Ruby, Java, and .NET gurus on board that you can share your love of technology with.

{}
Ruby on Rails News ( Feed )
Sunday, 03 September 2017
This Week in Rails: engine screenshots, method redefinitions and more!
Oh, hello there! I’m Tim, and if you’re reading this that means you’ve got Rails fever! It’s time for your weekly dose of This Week in Rails….

Oh, hello there! I’m Tim, and if you’re reading this that means you’ve got Rails fever! It’s time for your weekly dose of This Week in Rails….

This Week’s Contributors

This week 21 people contributed to Rails, including 4 for the first time! If you’d like to join them and perhaps get a slot in next week’s edition, why not check out the list of open issues?

Support multiple version arguments for gems in generators

The gem method can now support multiple version constraints, just like in rubygems!

Make take_failed_screenshot work within engine

This method used to get the tmp directory relative to Rails.root, which in an engine points to the dummy application, where no such directory exists. This was fixed by using the path relative to the current directory instead.

Clarify intentions around method redefinitions

This fixed a race condition in class_attribute, which in redefining an attribute had to remove it first and then redefine it. If another thread was trying to access that attribute in the middle of that, it would raise a NameError. Thankfully no more!

….and that’s a wrap! As always, there is never enough time or space to cover every change this week, but we value each and every one. If you’d like to know more you can check out the full list of changes yourself. See you next time!

{}
Ruby on Rails News ( Feed )
Wednesday, 30 August 2017
Webpacker 3.0: No separate process needed, less config generated
We’ve just made it even easier to use Webpack with Rails with this third major release of Webpacker. The two big changes are that a separate process is no longer needed in development and that the vast majority of the config now lives in the Webpacker npm package, so your config/ directory stays clea

We’ve just made it even easier to use Webpack with Rails with this third major release of Webpacker. The two big changes are that a separate process is no longer needed in development and that the vast majority of the config now lives in the Webpacker npm package, so your config/ directory stays clean and updates are much easier.

We nixed the need for the separate process by allowing Webpacker to compile on-demand in development as well as testing. We’ve done a lot of work to speed up this process, and for lots of apps, the performance will be more than fine. But if you have a huge app, or if you like live reloading or hot module replacements, you can still use the bin/webpacker-dev-server. Webpacker will automatically detect if this process is running and start serving packs from there rather than on-demand. Really slick.

We also dramatically cut down on the amount of config boilerplate that’s generated in the Rails config/ directory. All the standard stuff is now living inside the Webpacker npm module, which makes upgrading so much easier. And you can still overwrite any of the defaults as you please. So it’s a big win all around.

Additionally, we’ve moved all the compilation and clobber logic out of the Rake tasks and into the Webpacker singleton instance itself. This makes it easier to use Webpacker in custom setups, like if you don’t use Yarn or have a different deployment strategy than just assets:precompile.

This follows from a large refactoring of the Webpacker internals. Gone are the many individual singletons, replaced by a single top-level singleton that just aggregates a normal set of classes for configuration, compilation, and so on.

Webpacker 3.0 points to what a Webpack-by-default strategy could look like in Rails 6.0. One where the asset pipeline focuses on static assets, like images, fonts, sounds, and compiled CSS, using SASS and so on, but bows out of the JavaScript compilation game. We still haven’t pinned the final approach, but this is our best current take on how the two could split the work-load of dealing with JavaScript, stylesheets, and other assets in the next big Rails release.

If you haven’t yet given Webpack, ES6-flavored JavaScript, and all the other modern improvements to the client-side development experience a spin, then Webpacker 3.0 is a great place to start. At Basecamp, we’re already using it in production, even though we don’t use any of the big JavaScript client-side frameworks. It works great with the Turbolinks + Action Cable + Vanilla JS approach too.

And if you’re looking to use React, Vue, Angular, or Elm with Rails, Webpacker makes the whole thing so much easier. We still have a bunch of Hello World generators for these four frameworks, so you can get started with development without any manual drudgery of configuration.

This major new release has many contributors, but I want to especially thank Gaurav Tiwari and Javan Makhmali for their big, continued contributions. Enjoy!

{}
Ruby Lang News ( Feed )
Tuesday, 29 August 2017
Multiple vulnerabilities in RubyGems

There are multiple vulnerabilities in RubyGems bundled by Ruby. It is reported at the official blog of RubyGems.

Details

The following vulnerabilities have been reported.

  • a DNS request hijacking vulnerability. (CVE-2017-0902)
  • an ANSI escape sequence vulnerabilit

There are multiple vulnerabilities in RubyGems bundled by Ruby. It is reported at the official blog of RubyGems.

Details

The following vulnerabilities have been reported.

  • a DNS request hijacking vulnerability. (CVE-2017-0902)
  • an ANSI escape sequence vulnerability. (CVE-2017-0899)
  • a DoS vulnerability in the query command. (CVE-2017-0900)
  • a vulnerability in the gem installer that allowed a malicious gem to overwrite arbitrary files. (CVE-2017-0901)

It is strongly recommended for Ruby users to take one of the following workarounds as soon as possible.

Affected Versions

  • Ruby 2.2 series: 2.2.7 and earlier
  • Ruby 2.3 series: 2.3.4 and earlier
  • Ruby 2.4 series: 2.4.1 and earlier
  • prior to trunk revision 59672

Workarounds

At this moment, there are no Ruby releases including the fix for RubyGems. But you can upgrade RubyGems to the latest version. RubyGems 2.6.13 or later includes the fix for the vulnerabilities.

gem update --system

If you can’t upgrade RubyGems, you can apply the following patches as a workaround.

About the trunk, update to the latest revision.

Credits

This report is based on the official blog of RubyGems.

History

  • Originally published at 2017-08-29 12:00:00 UTC
  • Added CVE numbers at 2017-08-31 2:00:00 UTC

Posted by usa on 29 Aug 2017

{}
Bundler News ( Feed )
Thursday, 08 September 2016
Bundler 1.13: The one with steady improvements

Bundler 1.13 is out! It’s been a steady stream of improvements over the last four months, and we’re shipping some new features, some improved features, and some experimental features. Now that we’ve shipped all of these changes, we’re starting to work at full speed on the upcoming 1.14 and 2.0 rel

Bundler 1.13 is out! It’s been a steady stream of improvements over the last four months, and we’re shipping some new features, some improved features, and some experimental features. Now that we’ve shipped all of these changes, we’re starting to work at full speed on the upcoming 1.14 and 2.0 releases. While you wait, read on for the changes in 1.13 and then give it a try!

New features

Support for required_ruby_version (with declared ruby)

One very nice addition is that gems with a required_ruby_version will now resolve correctly as long as your Gemfile contains a ruby declaration. This change is the culmination of years worth of work, including the new compact index released in Bundler 1.12. In the future, we’re also going to support gems with required Ruby versions in Gemfiles that don’t declare a Ruby requirement. Because of existing features (like the Gemfile Ruby declaration), we’re having to do some mork work so that everything can coexist harmoniously. In the meantime, set a Ruby version and you’ll get the right gem versions to install on your Ruby.

The bundle doctor command

We’ve also added a bundle doctor command, courtesy of @mistydemeo. Over time, the doctor command will try to solve common problems. Today, it is capable of detecting gems that have been compiled against libraries that no longer exist. For example, if you use Bundler to install the pg gem and then later run brew upgrade postgres, the gem will stop working. We’ve never had a good way to explain (or even detect) this kind of problem before, and now we’re able to fix it for you automatically.

Add options --add-platform and --remove-platform to the lock command

In the past, the only way to resolve your Gemfile on a new platform (like java or mswin) was to run bundle install on that platform. We’ve added explicit options to the lock command to allow managing platforms. Platforms can be added using bundle lock --add-platform NAME, and platforms can be removed using bundle lock --remove-platform NAME.

This makes it possible to (for example) develop on Windows and deploy to a Unix server. However! (and this is a pretty big however), gems on different platforms can have completely different code. Run your test suite on whatever platform you will use in production—it’s the only way to be sure.

Improved features

Auto-install for bundler/inline

When using bundler/inline, gems are now automatically installed. This makes it ridiculously easy to create and distribute single-file scripts that depend on gems. Highly recommended.

Dramatic resolver optimizations

The resolver has been fine-tuned. It allocates less objects, uses less memory, needs less GC time, and is all-around better. It is now able to find usable Gem versions noticably faster. In many cases, the improvement was about 4x. For one especially dramatic Gemfile, Bundler now runs 100x faster than it did before.

Better faster exec

The new exec command (added in v1.12) switched from always calling exec to calling load instead if possible. In version 1.13 we added a way to turn it off: bundle config exec_disable_load true. We also dramatically improved it process, adding support for JRuby, and setting process titles the same way they used to be set.

Improved usage of the compact index

We launched the compact index in v1.12. In this version, we’ve sped things up by using persistent HTTP for more than one request, fixed printing dots to indicate progress, and added support for legacy gems with capitalized names and users without a home directory.

Experimental features

This version also contains three experimental features, disabled by default: a plugin system, and version locking for Bundler itself.

Experimental plugin system

For a long time now, we’ve supported “command” plugins the same way that git does: if there is a command named bundle-foo, then Bundler will run it when you execute bundle foo. The experimental plugin system builds on top of that, providing a way to create new Bundler commands that hook into the Bundler CLI internals. The plugin system also supports “source” plugins, which means it should be possible to use gems from Subversion, Mercurial, S3, or anything else you can think of. In addition to source plugins, we’ve started adding new “lifecycle” hooks. That means plugins will be able to hook in and run their own code before, during, or after the install or update process.

Experimental Bundler version locking

Someday, Bundler 2.0 is going to break backwards compatibility. When that happens, we’re going to need a way for applications that use Bundler 1.x to keep working. We’re also going to need a way for applications that use Bundler 2.x to work in the first place. As a first step towards that glorious future, we’ve built a feature that allows Bundler to automatically run the version of Bundler locked in the Gemfile.lock. It adds an additional level of complexity, though, so we’ve disabling it by default in this version of Bundler. If you want to opt in, and have Bundler 1.13 automatically download, install, and run an older version of Bundler, here’s how it works:

First, export the environment variable BUNDLE_ENABLE_TRAMPOLINE. In the Bash shell, that means running export BUNDLE_ENABLE_TRAMPOLINE=true. Then, run bundle install and bundle exec as usual. You should notice that Bundler will automatically switch to the version of Bundler that is saved into the Gemfile.lock. To update the version of Bundler saved in the lockfile, run bundle update --bundler. That will overwrite the Bundler version in the lock with the newest version of Bundler installed on your machine.

Experimental conservative updates

bundle update received some new options to support conservative updates: --patch and --minor. “Conservative” meaning it will sort all available versions to prefer the latest patch releases from the current version, then the latest minor releases and then the latest major releases. These aren’t documented or formally supported yet while we allow the community some opportunity to weigh in on how these options should work. Join the discussion and give us your 2 cents so we can lock this in for 1.14. There’s even some outstanding issues you can contribute to!

Feedback for experimental features

These features are a really big deal, and we want to launch them at the same level of polish and stability that you’re used to getting from Bundler. We’ll get there, and when we do these features will be turned on by default. In the meantime, if you’d like to try them out, that would be awesome. We’d love to hear your feedback. <3

How To Upgrade

Run gem install bundler to upgrade to the newest version of Bundler.

A New Bundler Website

Announcing… the new Bundler website! As part of Google Summer of Code 2016, Bundler has a new, prettier, and better website. The most visible changes are a completely new design and color scheme. In addition, the entire site is now responsive and easy to read on mobile devices using the Bootstrap

Announcing… the new Bundler website! As part of Google Summer of Code 2016, Bundler has a new, prettier, and better website. The most visible changes are a completely new design and color scheme. In addition, the entire site is now responsive and easy to read on mobile devices using the Bootstrap framework.

The new Docs page provides a table of contents for the entire site, allowing you to choose between guides, command reference pages, and changelogs for each version. On each command page (e.g. bundle install), there is a new sidebar, allowing navigation not just between commands but also to previous versions of the same command.

There are also two new guides to go with the new website: Using Bundler In Applications written by me, and Developing a RubyGem using Bundler by Ryan Bigg (@radar).

The new site also includes some more improvements:

  • Command pages are now built from the Bundler repository instead of hand-written (where possible)
  • Commits to the master branch of bundler-site are now auto-deployed (via Travis)
  • Middleman has been updated to latest version
  • Every header in the guides and commands pages now has anchor links for navigation and reference
  • The site now supports multiple translations (although no translations have been completed yet)

Many thanks to Amy (@sailorhg), André (@indirect) and Samuel (@segiddins). Without their help, it wouldn’t have been possible.

Enjoy :D

~ Jakub (@kruczjak)

Version 1.11 released

Bundler 1.11 is here! Six and a half months after the last big release, we’re finally ready to ship 1.11.

I know it’s been a while, but there’s a pretty good reason for that. Over the summer, the team was busy supervising four Google Summer of Code students:

  • We made a signi

Bundler 1.11 is here! Six and a half months after the last big release, we’re finally ready to ship 1.11.

I know it’s been a while, but there’s a pretty good reason for that. Over the summer, the team was busy supervising four Google Summer of Code students:

  • We made a significant amount of progress on the new compact gem index, which ought to ship in 1.12 in the near future.
  • We improved the Bundler website and online documentation.
  • We’ve created a solid base for Bundler 2.0.
  • We prototyped a new plugin system.

In addition, the Bundler Core team has spent a lot of time focusing on the development experience of bundler itself. The bundler codebase is over five years old, and contains code from over 400 contributors. That can make it rather daunting to start contributing, and also makes it hard to ensure that all of the code in bundler is up to the same standards (and is fit to last for the next five years!). In order to make things more consistent, we’ve introduced RuboCop (and thus a style guide), we’ve instituted a build bot to ensure that master is never failing, and have decided to subject 100% of the new code introduced to code review. This is a big step forward, and lets me confidently say that this will be our best release yet!

That out of the way, what’s actually in this long-awaited release?

New features

First up, we’ve combed through a few years worth of bundler issues, and have improved the error messaging for every single one of them. Our goal is to never show an exception with a backtrace, and instead present a friendly and helpful error message when things go awry – and we’re now pretty close to that.

The dependency resolver has also seen a few updates. Continuing the theme of improved errors, version conflicts will now do a better job of reporting what versions of every gem have been activated, making it even easier to figure out the best way to resolve said conflict. Additionally, resolution has been sped up by over 25x in pathological cases. That’s a pretty nice win.

Finally, we’ve laid the groundwork for resolving gems based on the current version of Ruby. Once the new index is rolled out, Bundler will make sure to choose gems whose required_ruby_version matches the Ruby you are running on.

Bugfixes

The real meat of this release comes in the bugfix section, however. Across almost four hundred commits, we’ve squashed upwards of fifty unique bugs. Meaning this version of bundler should be the fastest, most stable version we’ve ever released.

What’s Next

As I mentioned earlier, this long gap between releases doesn’t mean we’re slowing down development – quite the opposite, in fact! We’re actively working on bundler 1.12 and 2.0 at this very moment, and are incredibly exited to get the new index into people’s hands as fast as we possibly can.

Updating

To install the last release of Bundler, you can run:

$ [sudo] gem install bundler

For all the details, don’t miss the Changelog!

The new index format, Fastly, and Bundler 1.12

A new version of Bundler has arrived! With 1.12, we’re shipping one huge change and several smaller changes—the short version is that Bundler is getting faster and more capable.

The new index format

The biggest change landing in this release is the fabled new index format, which has been

A new version of Bundler has arrived! With 1.12, we’re shipping one huge change and several smaller changes—the short version is that Bundler is getting faster and more capable.

The new index format

The biggest change landing in this release is the fabled new index format, which has been in development for over two years. It has required significant work on Bundler and the Bundler API webapp, but it also lays the foundation for years of speed, stability, and security. In addition to the speed increases provided by the format itself, we’re also serving the new index directly from the Fastly CDN. That means Bundler will be able to talk to a server located nearby, no matter where you are in the world. We expect that to make a huge difference, especially in Oceania and Africa. 🎉

exec performance

On top of the new index, we also made specific improvements to the performance of bundle exec. It now avoids running Kernel.exec if possible, and only evaluates the Gemfile one time, instead of twice. Added together, these changes should speed up any bundle exec command by around 0.25 seconds!

outdated by version size

Another new feature is the ability to run bundle outdated with the flags --major, --minor, and --patch. Using those flags, you can limit Bundler to only show you new versions that are both allowed by your Gemfile and also meet the criteria of only changing the major, minor, or patch version of the gem. You can combine them to get only minor and patch updates, or even only major and patch updates (but I have no idea why you would want to do that).

Ruby versions

Our final big feature is support for locking Ruby versions! That means that you can put ruby "~> 2.3" in your Gemfile, and Bundler will save your exact Ruby version (say, 2.3.1) into your Gemfile.lock. You can update the ruby version by running bundle update --ruby, and that will update the lock to match your current version of Ruby the same way Bundler currently updates gem versions.

Minor changes include adding support for Ruby 2.4, RubyGems 2.6.3, and support for the Ruby 2.3 feature of freezing all string literals.

Changelog

We added a bunch of other small tweaks, features, and bugfixes, so be sure to check out the changelog for the entire list!

Updating

To get the newest version of Bundler, run gem install bundler. If you have any issues, please check out our issues guide and let us know!

Bundler 1.14: So many fixes
What’s new in Bundler 1.14?

We somehow missed writing up an announcement when Bundler 1.14 was initially released, but several people kindly pointed out the problem. Just 48 days late, here’s what’s new in Bundler 1.14! In this feature release, we added several small features, and fixed a giant p

What’s new in Bundler 1.14?

We somehow missed writing up an announcement when Bundler 1.14 was initially released, but several people kindly pointed out the problem. Just 48 days late, here’s what’s new in Bundler 1.14! In this feature release, we added several small features, and fixed a giant pile of bugs.

Conservative updates

Building on the previous fine controls for the update command, the illustrious @chrismo worked his way through many gnarly possible usage combinations to implement the update --conservative flag. Using the conservative flag allows bundle update GEM to update the version of GEM, but prevents Bundler from updating the versions of any of the gems that GEM depends on. For a more in-depth discussion of why this is useful, check out the discussion of overlapping dependencies in the update command man page.

Checksum validation

As part of the compact index format provided by RubyGems.org, Bundler now has access to checksums for every .gem file. Starting with version 1.14, Bundler actively validates those checksums against downloaded .gem files before installing them. Hooray! 🎉

Improved platform support

Courtesy of some intensive work by @segiddins, Bundler is getting better at handling applications that will be run on more than one platform, like both Unix and Windows. To start with, Bundler will now print a warning if your Gemfile includes any gems that will never be installed due to a platform block. For gems that need to be compiled even though the author has uploaded a binary gem, the force_ruby_platform config setting has you covered. Lastly, the new config setting specific_platform tells Bundler to consider platforms during dependency resolution. This setting should significantly improve things for users installing a single bundle on more than one platform. We expect the specific_platform setting to become the default behavior in Bundler 2.0.

Improved required Ruby versions

Building on the support for Ruby and RubyGems version that was added in 1.13, Bundler 1.14 improves resolver error messages. If any gem conflicts with your Ruby or RubyGems version, the error message will now show both the conflicting dependencies and the chain of parent dependencies that led to the conflict.

Various improvements

In addition to those larger additions, we made some smaller tweaks with the aim of smoothing and improving the overall experience of using Bundler:

  • Installing gems using sudo will now always prompt for a password, even if the sudo password is cached from an earlier command
  • The Gemfile method platform now supports Ruby 2.5, allowing arguments like :ruby_25 or :mri_25.
  • The “lockfile is missing dependencies” error (triggered by certain old lock files that were missing information) is no longer fatal. We now print instructions on how to repair the Gemfile, and install using one thread.
  • Running require "bundler" is now about five times faster than it used to be.
  • Bundler now works when run by users without a home directory.
  • The output from bundle env is now preformatted as Markdown for pasting into a GitHub issue.
  • After Bundler 2.0 is (eventually) released, Bundler 1.14 and greater will be able to automatically switch to Bundler 2.0+ for apps that need it.

We also fixed over 60 separate bugs, and you can read about every single one of them in the Bundler 1.14 changelog.

How To Upgrade

Run gem install bundler to upgrade to the newest version of Bundler.

Bundler 1.15: Bundle Oh So Fast
What’s new in Bundler 1.15?

Hot on the heels of the many small fixes in Bundler 1.14, we’re pushing out 1.15. The list of changes is much shorter, but we think you’re going to love it all the same, since this time around we’ve focused on making Bundler a whole heck of a lot faster.

Speed

What’s new in Bundler 1.15?

Hot on the heels of the many small fixes in Bundler 1.14, we’re pushing out 1.15. The list of changes is much shorter, but we think you’re going to love it all the same, since this time around we’ve focused on making Bundler a whole heck of a lot faster.

Speed

Due to Julian Nadeau’s prompting, we’ve made loading up Bundler fast. Up to a half a second faster than before, on every bundle exec, require "bundler/setup", Bundler.setup, and Bundler.require. This is going to save developers a lot of time, given how often we tend to run things!

The mere act of initializing a Gemfile has been sped up by turning array lookups into hash table accesses, making expensive comparisons lazy, and generally avoiding object allocation.

We also now only validate git gems when they are first downloaded & installed, meaning projects with many git gems won’t be validating each and every one of them over and over again.

Finally, we’ve managed to avoid evaluating the full .gemspec of all the gems that are being loaded when running on RubyGems 2.5 and above. Taking advantage of a feature called stub specifications, Bundler is able to grab all of the information it needs from the first two lines of a serialized gemspec file, without evaluating the rest. This represents a massive time savings for very large Gemfiles.

New Commands

We’ve added 4 new commands that have been on our wish list for a long time.

bundle info

This command prints out basic information about the given gem, and is intended to replace bundle show once Bundler 2 rolls around.

bundle issue

Have you ever been frustrated by a Bundler issue that wasn’t a crash? Have you found it difficult to figure out what information to put in a new GitHub issue? Well, no more! bundle issue will gather all of the information present in the error template, on demand.

bundle add

Bundler has long included the bundle inject command, which has been a source of some confusion. inject has always been intended to serve as plumbing for other tooling, doing a whole bunch of verification along with adding a new gem line to the Gemfile. Due to popular demand, we’ve extracted that latter part out into the bundle add command, making it easier than ever to automate adding dependencies to your Gemfile.

bundle pristine

Have you ever accidentally edited an installed gem’s files and wished you had a way to undo that? Mirroring the gem pristine command, Bundler now supports bundle pristine, restoring all of the gems in your Gemfile to pristine condition.

More Man Pages

Documentation improvements are amongst my favorite contributions, and Liz Abinate came through big for us this release. We now have man pages for every single Bundler command. This means that bundler.io will also have documentation for all of the Bundler commands. We hope to do a better job of keeping our documentation up-to-date in the future, and this release is a great starting point for that effort.

Various improvements

In addition to those larger additions, we made some smaller tweaks with the aim of smoothing and improving the overall experience of using Bundler:

  • bundle update will now print gems whose versions are regressing in yellow.
  • bundle inject has gained --source and --group options.
  • bundle config has a --parseable option, suitable for use in scripts.
  • Resolver version conflicts will only list relevant dependencies.
  • When installing a gem fails, Bundler will print out the reason why that gem was being installed in the first place.
  • Bundler will let you know when a new version of itself is available. How meta.
  • bundle update works a lot better now when only unlocking a single gem.

We also fixed over 20 separate bugs, and you can read about every single one of them in the Bundler 1.15 changelog.

How To Upgrade

Run gem install bundler to upgrade to the newest version of Bundler.

Image alt text gone, restart/cache command fixes and more!
Hello everyone! This is Vipul from Rainy Pune ☔ , cozying up with a ☕, bringing you a recap of the changes  that made it to Rails this week. If you too want to contribute to Rails, head over to the issues to help us out!

Hello everyone!
This is Vipul from Rainy Pune ☔ , cozying up with a ☕, bringing you a recap of the changes  that made it to Rails this week.
If you too want to contribute to Rails, head over to the issues to help us out!

Do not generate default alt text in image tags

Previously Rails auto-generated alt text for an image from the file name if it was not provided with an image_tag. This generation could be distracting and fatiguing for screen reader users if not considered properly.

After this change, if authors leave images without alt text, Rails will not pre fill it anymore, leaving screen readers to prompt authors to fix the issue.

Prevent extra “SET time zone” in configure_connection

Previously Rails would end up setting database connection timezone twice, once if passed via configuration in configure_connection and secondly while setting default timezone.

This change removes setting timezone on database twice if timezone is already passed via configuration variables.

Add TransactionTimeout for MySQL error code 1205

This PR adds TransactionTimeout error to the MySQL adapter, which handles the error:
Lock wait timeout exceeded; try restarting transaction (MySQL error 1205)

Encode Content-Disposition filenames according to RFC 2231 in Active Storage

Before this change, urls for files with non-english names would create issues in Active Storage.

This change fixes encoding Content-Disposition for filenames to RFC 2231, to fix this issue.

For signed/encrypted cookies with ``:expires` like

cookies.signed[:user_name] = { value: "bob", expires: 2.hours }

Rails now embeds the expiry within the written cookie payload. This way Rails isn’t reliant on clients to honor the expiry, but can verify it independently server-side.

Make restart and dev:cache tasks work when customizing pid file path

Previously rails dev:cache failed to restart the Rails server when it was started with a custom pid file path.
With this change, restart no longer fails for a custom pid file and successfully restarts Rails server on dev:cache changes.

Fix can't modify frozen String error in display_image

This change does a quick fix for an error with display_image in System tests, which is used for screenshots, that used to raise an error when trying to modify a frozen string.

Fixes :inverse_of association option not working with eager_loading

Previously calling an eager_load on :inverse_of association failed. This was a regression from Rails 5.1 release. 

This change, fixes the regression.

That’s all for this week! Feel free to check the full list of commits if you are interested. Until next week!

{}
RubyGems News ( Feed )
Sunday, 27 August 2017
2.6.13 Released

RubyGems 2.6.13 includes security fixes.

To update to the latest RubyGems you can run:

gem update --system

If you need to upgrade or downgrade please follow the how to upgrade/downgrade RubyGems instructions. To install RubyGems by hand see the Download

RubyGems 2.6.13 includes security fixes.

To update to the latest RubyGems you can run:

gem update --system

If you need to upgrade or downgrade please follow the how to upgrade/downgrade RubyGems instructions. To install RubyGems by hand see the Download RubyGems page.

Security fixes:

  • Fix a DNS request hijacking vulnerability. Discovered by Jonathan Claudius, fix by Samuel Giddins.
  • Fix an ANSI escape sequence vulnerability. Discovered by Yusuke Endoh, fix by Evan Phoenix.
  • Fix a DOS vulernerability in the query command. Discovered by Yusuke Endoh, fix by Samuel Giddins.
  • Fix a vulnerability in the gem installer that allowed a malicious gem to overwrite arbitrary files. Discovered by Yusuke Endoh, fix by Samuel Giddins.

As always, please report any security issues discovered in RubyGems to the RubyGems project on HackerOne.

SHA256 Checksums:

  • rubygems-2.6.13.tgz
    d041502ae77e8d49e0a436483fb91f9ad6cc1489e49e0735e7c4a7cf10e728c9
  • rubygems-2.6.13.zip
    08011f0d41b5cd2e49a134bc24183476983bfe14be4cc3a630ab21fe1d3817fd
  • rubygems-update-2.6.13.gem
    20abbf7754b82c46aacf12c831339870f4cd1ec069d256d338f1041298badda9
{}
JetBrains RubyMine News ( Feed )
Friday, 25 August 2017
RubyMine 2017.2.3 EAP: Better Debugger
Hi everyone, RubyMine 2017.2.3 EAP has been released, introducing a number of improvements for the debugger and other bug-fixes. Better Debugger Our recent drive to enhance performance has affected the debugger too. In this RubyMine EAP we’re bringing these debugging … Continue reading →

Hi everyone,

RubyMine 2017.2.3 EAP has been released, introducing a number of improvements for the debugger and other bug-fixes.

Better Debugger

Our recent drive to enhance performance has affected the debugger too. In this RubyMine EAP we’re bringing these debugging improvements:

  1. No more issues with multi-process debug targets. Now it’s possible to debug servers like Passenger, Zeus, and Foreman painlessly. Moreover, Attach to Local process now perfectly works with these servers: just select the web/deployment server during the attach phase, and RubyMine will stop at the breakpoints in all its subprocesses.
  2. The debugger is now smart enough to detect costly operations triggered by watch expressions evaluation. It will stop such operations if they’re likely to slow down the debugging process. For example, if any tracked variables use SQL queries for the to_s evaluation, RubyMine will not slow down during stepping, which it did before.

Other improvements

These and more bugs have been fixed in this update:

Download this Early Access Program build from Confluence.

See the release notes for the full list of improvements, and please report your issues to the
tracker.

Cheers!

Your RubyMine Team

{}
Ruby on Rails News ( Feed )
Thursday, 24 August 2017
Rails 5.1.4.rc1 and 5.0.6.rc1 released
Hi everyone,

Hi everyone,

I am happy to announce that Rails 5.0.6.rc1 and 5.1.4.rc1 have been released.

If no regressions are found, expect the final release on Tuesday, August 29, 2017. If you find one, please open an issue on GitHub and mention me (@eileencodes) on it, so that we can fix it before the final release.

CHANGES since 5.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 5.1.3

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 5.0.6.rc1:

$ shasum -a 256 *-5.0.6.rc1.gem
0490ac6c4621756871839ad584f0a0349a72a9ccdeac0f72dafd3539638ba5ef  actioncable-5.0.6.rc1.gem
fc7697724d884307bf2ea307c028902f71f96304b9a882418e6ec94d10202cd9  actionmailer-5.0.6.rc1.gem
b0f1f4479f61ada80b3dbe3e9ccaa0db390119918e5da632dda3c8398e6e4f5f  actionpack-5.0.6.rc1.gem
673d06523edf733163ad668fe3cd64bd1c7fb97244c952241d1e00ee6835101b  actionview-5.0.6.rc1.gem
ac6521d4df459db19fc0f2740d0e0c0a6f3102252c8124ecb25e8d33335d6cf4  activejob-5.0.6.rc1.gem
0824cd58f175a3c825dce9d42d73254d25af25d824ae1c5c3465f12bb0812f72  activemodel-5.0.6.rc1.gem
7972a8a76c711b8fc01ab52d95c4f16a73e9683e4d745a17d61ab91051df856c  activerecord-5.0.6.rc1.gem
40f0c77de7e54b6a3581272ce5b6409ae0c61b5bfad3239db46807d8342ce8a3  activesupport-5.0.6.rc1.gem
7873311d5340bffbabeb33cb9d3ce2c97056bc2bebad3abfcba6f5b38b209075  rails-5.0.6.rc1.gem
3fd4b347f19fb4ff2ec7cee4c9a45aba31d1e287583943269bc9d09bef61ca93  railties-5.0.6.rc1.gem

Here are the checksums for 5.1.4.rc1:

$ shasum -a 256 *-5.1.4.rc1.gem
6ebb05e31a5d46379f638092742aa1543ab3522302a62351de9e5dc746fc7c77  actioncable-5.1.4.rc1.gem
fb3e3743a29a70524c64caa656056f7cf0085998a1438b28325c6e10a6330efd  actionmailer-5.1.4.rc1.gem
c4b39e9b721a4b2eb37be9f18bfbc0a479b61ae4d6b536b1b9f2fc06f83f6ad8  actionpack-5.1.4.rc1.gem
9930cccacbe71085b894ca0410da07625b801c4db1775b655357bd2bf5824ae9  actionview-5.1.4.rc1.gem
e0c7610f4fe20c778e5f9739f80ae4d5d3450bbacff49d24064b0b3b048f9dd6  activejob-5.1.4.rc1.gem
11dae082bd1dfea9541a60501135bef6c32d792407dea57250dc95ba5e415a77  activemodel-5.1.4.rc1.gem
3b058a80c8f14c324dad4c185825a4ce4c4f853af37002bec92e179bef583fcb  activerecord-5.1.4.rc1.gem
c9984249c0200e9c1f462779294e0cec6bb6c8b95421dc01b579a0efa2db6561  activesupport-5.1.4.rc1.gem
c8134e1efcc5f17ac28927a76423146f3a7baf618d97a5d752d09edf4c5eeb7c  rails-5.1.4.rc1.gem
7589a79f6b4a4de73d2d427193eb9beacd1628530958dd4d8f9404531748a973  railties-5.1.4.rc1.gem

As always, huge thanks to the many contributors who helped with this release!

{}
Phusion News ( Feed )
Wednesday, 23 August 2017
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes

Version 5.1.8 of the Passenger application server for Ruby, Node.js, Meteor and Python has been released. We have built a few minor improvements and fixes, like improved logging, faster serving of Webpacker assets and a fix for a socket leak regression. In addition, we've upgraded Nginx in

Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes

Version 5.1.8 of the Passenger application server for Ruby, Node.js, Meteor and Python has been released. We have built a few minor improvements and fixes, like improved logging, faster serving of Webpacker assets and a fix for a socket leak regression. In addition, we've upgraded Nginx in our APT package to version 1.12.1.

The 5.1.x series of Passenger brings a plethora of improvements in uptime maximization, security and efficiency. Please be aware that you can enjoy enterprise features and sponsor the open source development directly by buying Phusion Passenger Enterprise.

APT Nginx package to 1.12.1

The APT Nginx package we provide for older distributions (Ubuntu Xenial / Debian Jessie and below) was stuck at Nginx version 1.10.3 due to incompatibilities in the module set that those distributions use. Updated module versions have solved these issues, so we've upgraded the package to the latest stable Nginx (1.12.1).

Webpacker asset support

Passenger Standalone now automatically uses Nginx to serves static asset URLs that conform to the webpacker gem format (GH-1966).

Improved logging

We've changed the log format to be shorter and more informative. The new format significantly shortens the thread ID, and includes the message's (abbreviated) log level so that it's a lot easier to filter through messages.

Various fixes

  • [Enterprise] Fixes a potential use-after-free bug when reporting usage data to the Phusion licensing server. This bug only occurs when Passenger Enterprise is running inside a container.
  • [Standalone] If configured to listen on a Unix domain socket, properly cleans up this socket on Nginx shutdown (a regression from 5.1.6). Closes GH-1969.
  • [Standalone] Fixes the --max-requests option when using the builtin engine (a regression from 5.1.4).

Installing 5.1.8

Please see the installation guide.

Upgrading to 5.1.8

We strongly advise staying up to date with the latest version.

See also the upgrade notes below!

Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
OS X
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Debian
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Ubuntu
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Heroku
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Red Hat
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
CentOS
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Ruby gem
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Tarball
Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes
Docker

If you are upgrading from 4.x, please read the 5.0 upgrade notes to learn about potential upgrade caveats.

Download issue with old gem version

Old versions of gem (below 2.2.0, released in 2013) may fail to download the Passenger Enterprise gem from our rubygem hosting software (Gem in a box).

ERROR: Could not find a valid gem 'passenger-enterprise-server' (= 5.1.4), here is why:  
 Unable to download data from https://..@www.phusionpassenger.com/enterprise_gems/
 - bad response Unauthorized 401 

If this happens, please upgrade to a newer version of gem:

gem install rubygems-update; update_rubygems  

Special notes about capistrano-passenger

If you are using Capistrano and capistrano-passenger, then it may fail with this error:

SSHKit::Runner::ExecuteError: Exception while executing as user@99.99.99.99: undefined method `[]' for nil:NilClass

NoMethodError: undefined method `[]' for nil:NilClass

Tasks: TOP => passenger:restart

This is due to an incompatibility in capistrano-passenger with Passenger 5.0.22 and later. Please upgrade capistrano-passenger to 0.2.0 or later.

Final

Phusion Passenger's core is open source. Please fork or watch us on Github. :)

Passenger 5.1.8: Nginx 1.12.1, webpacker, fixes

Passenger ensures that your Ruby, Python, Node.js and Meteor apps, microservices, and APIs are served with outstanding reliability, performance and control. For additional features and premium support, check out the enterprise edition.

{}
Ruby on Rails News ( Feed )
Saturday, 19 August 2017
Better docs, better performance, better Rails!
Hello everyone! This is Claudio with a recap of the main commits that made it into rails/rails this week. If you too want to contribute to Rails, this outstanding Active Record issue is a great place to start.

Hello everyone! This is Claudio with a recap of the main commits that made it into rails/rails this week. If you too want to contribute to Rails, this outstanding Active Record issue is a great place to start.

Temporarily point to a fork of SDoc

A work in progress to improve the documentation of Rails with a nicer theme, better SEO and faster generation time. Can you spot the difference between the current and the future version?

Minor tweaks in Active Storage documentation

Two weeks ago, Active Storage made it into rails/rails. This week its documentation has been improved to make it ready to ship with Rails 5.2.

Faster and more readable implementation of Hash#deep_merge

If you want to learn how to use benchmarks to prove that a commit can improve the performance of Rails, this is a great example.

Eager-load controller actions to reduce response time of the first request

The list of available actions for a controller is now eagerly loaded  to reduce response time of the first request and the memory footprint when running on forking server like Unicorn.

Load Parameters configurations on :action_controller only once

This PR fixes a regression introduced in 5.1.3 by which UnpermittedParameters were not raised as expected.

Check :scope input in Uniqueness validator

Without this patch, calling something like validates_uniqueness_of :code, scope: [archived: false] would cause NoMethodError with a trace into AR internals.

Add binary helper method to fixtures

You can now more easily use binary data as fixtures.

Add --skip-yarn option to the plugin generator

Don’t include yarn in your engines if you don’t need it.

Allow serialize with a custom coder on json and array columns

Better control on how to store your data.

Bump thor and blade

Thor 0.20 has new features you might want to look at.

That’s all for this week! Feel free to check the full list of commits if you are interested. Until next week!

{}
Ruby on Rails News ( Feed )
Tuesday, 15 August 2017
Three new committers: George, Javan, Ryuta
We’re happy to announce three new members of the Rails committers team: George, Javan, and Ryuta 🎉!

We’re happy to announce three new members of the Rails committers team: George, Javan, and Ryuta 🎉!

  • George Claghorn: George has been an integral part in creating our new Active Storage framework. He wrote a substantial part of the framework itself by extracting hard-won lessons from his work at Basecamp on moving our storage to the cloud. George also managed the stand-alone rails/activestorage repository with issue and PR processing prior to its merge into the framework proper. George works at Basecamp and lives in Philadelphia.

  • Javan Makhmali: Javan has written the majority of the JavaScript needed for Action Cable and Active Storage, as well as being a significant contributor to Webpacker. He’s also the co-author of Trix and other JavaScript libraries and frameworks originating at Basecamp. Javan lives in Ann Arbor.

  • Ryuta Kamizono: Ryuta is a top 20 all-time Rails contributor with work going back to 2013. He’s got his fingerprints all over the framework, but have in particular been helping with Active Record. Ryuta lives in Tokyo.

As a reminder, the committer team works together with the core team by assisting with pull-requests processing and making changes to the framework, but does not have the keys to make final releases or set policy. All members of the core team came up through working on this team.

{}
JetBrains RubyMine News ( Feed )
Wednesday, 09 August 2017
RubyMine 2017.2.2 EAP: Speeding Things Up
Hi everyone, RubyMine 2017.2.2 EAP has been released introducing a series of performance improvements and a number of bug-fixes. The Hunt for Performance This EAP contains the first part of major performance updates that will take full effect in v2017.3 (to be … Continue reading →

Hi everyone,

RubyMine 2017.2.2 EAP has been released introducing a series of performance improvements and a number of bug-fixes.

The Hunt for Performance

This EAP contains the first part of major performance updates that will take full effect in v2017.3 (to be released in fall 2017).

For this EAP, we have fixed internal bugs affecting the speed of code completion, inspections, and the overall responsiveness of the IDE.

As a quick-and-dirty test we have analyzed Discourse and TracksApp, the two well known open source Rails apps, for existing errors and code smells with RubyMine (Code | Inspect Code), and compared it against the same analysis in the current stable v2017.2.1. The results varied across the team, but generally showed a 50%-100% increase in speed of code analysis when inspecting the whole project.

We encourage you to try and check the same for your applications and let us know how it works out. Note that the changes we made have most likely affected RubyMine in many ways, so please report any issues you face to our bug tracker, or contact our support team.

Other improvements

As usual, we’ve fixed a number of bugs in this update:

Download this Early Access Program build from Confluence.

See the release notes for the full list of improvements, and please report your issues to the tracker.

Cheers!

Your RubyMine team

{}
Ruby on Rails News ( Feed )
Thursday, 03 August 2017
Rails 5.1.3 released
Hi everyone,

Hi everyone,

I am happy to announce that Rails 5.1.3 has been released.

CHANGES since 5.1.2

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 5.1.3:

$ shasum -a 256 *-5.1.3.gem
4cfe1343217caa199ce2a2de485a62271b0c81e8c3cf72f7c039c5eddf3c7bd0  actioncable-5.1.3.gem
a2841384bb40951e6d63ca78ca665bdfcc792c732825cc2c83ae4b4d05363f67  actionmailer-5.1.3.gem
55488d20cac3668040f0d2d5531e81318a0fa206ac8f687565c6ec49345c9f45  actionpack-5.1.3.gem
b744e9cbb2760754fa4c3c2b57c68916756a5f032fa6307ca362379e02a48857  actionview-5.1.3.gem
15e98c4bf71941ae81f7e4e7c5d9627c09cd9b4d0c1a36bf94b42910eb8874a3  activejob-5.1.3.gem
ad3aa2e0dd9a003ea530e0806dd685e9c5574bfa36bb28aa3d182577c121babb  activemodel-5.1.3.gem
e83b04f42519e94a0aa51af06e61ea8aaacfa5cb8d67a1aebaf6f11d96ba7725  activerecord-5.1.3.gem
b01fa04345c87526fd22affc4e46dd22bf125c608853d13bf093dab08c45219b  activesupport-5.1.3.gem
28c73c5aba5ce71d4bcd6af273be3e565ab7a49abd22fd511dc79fcb36329d19  rails-5.1.3.gem
9aa1b3abd29a7d71b3f9d04dfce2858a2e86841dd7f3dc696344000c745b1651  railties-5.1.3.gem

As always, huge thanks to the many contributors who helped with this release.


pluto.models/1.4.0, feed.parser/1.0.0, feed.filter/1.1.1 - Ruby/2.0.0 (2014-11-13/x86_64-linux) on Rails/4.2.0 (production)