RubyMine 2017.1 EAP 8: Puppet Module Generation, Docker Support, and more

Hi there,

RubyMine 2017.1 EAP 8 (build 171.3566.31) is now available. This early access program brings a couple of important changes: Puppet improvements and Docker support.

Puppet improvements

You’ve given us some constructive feedback on the previously announced Puppet project structure and improved Puppet support. Keeping it in mind, we’ve tweaked our IDE to make Puppet development with RubyMine smoother.

New Project – Puppet Module

First, we’ve added the ability to create a new Puppet module right from the New Project wizard (File | New Project) so that you can start developing Puppet in a flash:

rubymine puppet module

Once generated, the IDE automatically detects the gems needed for Puppet and then suggests installing the missing ones. After the installation you will get the IDE configured for your Puppet development.

Creating a Puppet Module in the existing project

Also, if you are already working on a project inside RubyMine, you can create a new Puppet module through the context menu (right-click on the project folder and select New | Puppet Module):
install puppet rubymine

Technically speaking, these new ways of Puppet module generation are just a convenient alternative to puppet module generate, with some additional smart IDE options.

Support for .fixtures.yml

Finally, we have added the ability to install dependencies based on .fixtures.yml.

Since RubyMine can also rely on metadata.json, here are the current resolution rules that the IDE follows:

  • If there’s a .fixtures.yml file, RubyMine will install dependencies via rake tasks into spec/fixtures/modules directory. In this case the IDE will resolve only into modules inside this directory (i.e. will not check other sources).
  • If there is a Puppetfile, RubyMine will install dependencies with librarian-puppet into the .dependencies directory.
  • If there is a metadata.json, RubyMine will install dependencies with librarian-puppet the same way as from Puppetfile.

Docker support

Starting with this EAP, you can work with remote Ruby interpreters using Docker. Feel free to add your Docker configuration (Preferences| Languages & Frameworks | Ruby SDK and Gems | New remote):

rubymine docker

docker config in rubymine

Note that this is the first public announcement of this long-awaited feature, and we should cover it in more detail with further updates. Until then, please let us know about your issues and suggestions.

Also note that you should have a Docker plugin installed to make this feature work.

Creating RVM gemsets in the Preferences dialog

In other improvements, this update allows you to create RVM gemsets in Ruby SDK & Gems dialog (Preferences | Languages & Frameworks | Ruby SDK and Gems):

rubymine rvm gemset preferences

Download this EAP from our What’s new page.

Check out our release notes to find other improvements and bug fixes. Please submit any issues to our tracker, and let us know your thoughts and suggestions in the comments below.


Your RubyMine Team

This entry was posted in Announcement, WhatsMining and tagged , , , . Bookmark the permalink.

17 Responses to RubyMine 2017.1 EAP 8: Puppet Module Generation, Docker Support, and more

  1. Evgeny Piven says:

    This is awesome news!
    Have you noticed, though, that since EAP 7 the default RSpec runner is broken?

    ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1394:in require': cannot load such file -- teamcity/spec/runner/formatter/teamcity/formatter (LoadError)
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1394:in
    block in requires=’
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1394:in each'
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1394:in
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration_options.rb:112:in block in process_options_into'
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration_options.rb:111:in
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration_options.rb:111:in process_options_into'
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration_options.rb:21:in
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:99:in setup'
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in run'
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in
    from ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/exe/rspec:4:in `’
    /opt/local/bin/ruby2.4 -I${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/lib:${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-support-3.5.0/lib ${PROJECT_PATH}/.bundle/gems/ruby/2.4.0/gems/rspec-core-3.5.4/exe/rspec –pattern spec/\{aliases,classes,defines,unit,functions,hosts,integration,type_aliases,types\}/\*\*/\*_spec.rb –color failed

  2. erwann says:

    I get a lot of IDE fatal errors since EAP8 (java.lang.NullPointerException), is there a way to revert to EAP7? I found the Release Notes for EAP7 but there is no download link

  3. Roman Melnyk says:

    wow! I love the new Find In Path design! Thanks!!

  4. Jarek says:

    I’m using docker and a separate container for bundle cache. My gems are only available through bundle exec gem list – without it, gem list is showing only some basic gems. Any way to make remote docker interpreter using bundle exec to find out gems?

  5. lusitania says:

    The official Ubuntu images doesn’t contain ruby:

    $ docker run -it --rm ubuntu ruby -v
    docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"ruby\": executable file not found in $PATH".

    Use ruby:slim instead.

  6. Pingback: RubyMine 2017.1 EAP: Puppet Project Structure | RubyMine Blog

  7. Pingback: RubyMine 2017.1 RC1: Improved Docker Support | RubyMine Blog

Leave a Reply

Your email address will not be published. Required fields are marked *