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

Artem Sarkisov

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.

Cheers!

Your RubyMine Team

Comments below can no longer be edited.

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

  1. Evgeny Piven says:

    February 23, 2017

    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 `requires=’
    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 `each’
    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 `configure’
    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 `run’
    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 `invoke’
    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

    • Evgeny Piven says:

      February 23, 2017

      Actually, this was launched using the Rake runner, sorry.
      Apparently if you launch the tests using RSpec runner (which isn’t a very convenient one when you develop Puppet modules), the issue could be fixed by select “None” for “Use pre-load server” in the runner configuration. Otherwise, it throws the same error.
      But the Rake runner is still broken even though the defaults for RSpec runner say “None”.

  2. erwann says:

    February 23, 2017

    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

    • Evgeny Piven says:

      February 23, 2017

      If you’re using the Toolbox App, you can definitely revert.

      • erwann says:

        February 23, 2017

        unfortunately, Toolbox doesn’t work so I use the tar.gz install

    • Artem Sarkisov says:

      February 24, 2017

      Hi Erwann,

      Please follow this link to download the previous EAP7 http://download.jetbrains.com/ruby/RubyMine-171.3224.24.tar.gz

      If you can, please also report your issue, so we could investigate it. Thank you.

  3. Roman Melnyk says:

    February 23, 2017

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

  4. Jarek says:

    February 24, 2017

    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:

    February 26, 2017

    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.

    • Artem Sarkisov says:

      February 27, 2017

      Indeed. That pic was added for demonstration purposes, but thanks for catching that!

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

    March 2, 2017

    […] please see also this post for new improvements for […]

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

    March 10, 2017

    […] more stable support for Docker, allowing you to work with Rails apps correctly. We’ve already announced support for Docker, and now we’d like to show you exactly how it works in […]

  8. RubyMine 2017.1 Released: Docker, RuboCop, Puppet, Test Generation for Rails, and More! | RubyMine Blog says:

    July 11, 2017

    […] If you use RubyMine for Puppet development, you will be glad to discover that it’s possible to generate Puppet modules from the New Project wizard. Here’s what it looks like. […]

Subscribe

Subscribe for updates