Yet Another 14.1 EAP (IU-140.2683.2) Fail

you seemed to have released a new EAP without a corresponding working Scala plugin?  i think Scala is too major at this point for you to continue doing this.  you need to make sure the Scala plugin is released and available at the *same* time.  Also, finding out if there is even an available Scala plugin from either the Idea plugin configuration screens or your web site is a nightmare.  there is a lot of useless info about ancient versions of both Idea and the plugin that are displayed and confusing.  There is even advice about how to configure a 14.1 EAP Scala plugin repo that seems to be incorrect (nothing is displayed after configuring).  i love Idea and i love its Scala support but your web site and release strategies drive me NUTS.

Comment actions Permalink

IMHO I think your criticism of releasing an IDEA EAP before a compatible scala plug-in is available would be valid for a production release. But part of the concept of an EAP id to get it out into the hands of users as so they can help test it and debug it. And while scala is becoming more and more popular, it is not used by everyone. Likely not even a majority yet. So to delay an EAP release would be counterproductive. (And in this case an updated Scala plug-in was released a couple of days later).

That said, I do agree that it would be helpful if on the EAP page they would list any incompatible plug-ins an for that EAP. Then update the list as compatible versions of those plug-ins are released. That way a Scala user knows the Scala plug-in is incompatible and he/she needs to wait for the compatible version before installing this particular EAP. Same for any other plug-ins like Ruby. That would alleviate the annoyance of installing a new EAP to only have find you must rollback because of an incompatible plug-in.

As a stop gap measure... until they make such a list available... how you deploy new EAPs can help alleviate a lot of the hassles and make it simple to roll-back. Here's my strategy that makes things a lot easier. It'll work on Windows and Linux. And it can possibly be modified for Mac OS. I'm not real familiar with .dmg files to know for sure.

  1. Configure IDEA so it does NOT open the last project on start-up (Settings > Appearance & Behavior > "Reopen last Project on startup")
    • This way you get immediate notification at start-up of any incompatible plug-ins before IDEA re-indexes your project (as it does with some new versions). This saves the hassle of yet another re-indexing if you have to roll back.
  2. While not required, it's a good idea to backup your .IntelliJIdea/config directory before installing a new EAP. I have a script that just zips it up. It's very rare I need to use that backup, but the one time you do, you're glad you had it.
  3. Use the .zip release of the EAP for installation on Windows
  4. Extract the ZIP (Windows) or tar.gz (Linux) file into a directory that contains the version number. For example:  C:\Apps\IntelliJ\14-EAP-123.4567
  5. Create a 'current version" symbolic-link or junction to the EAP directory. For Example:  C:\Apps\IntelliJ\14  -->  C:\Apps\IntelliJ\14-EAP-123.4567
  6. Always lunch IDEA via a shortcut to the symbolic-linked installation.
  7. To rollback, just close IDEA, move the symlink/junction, and restart
    • For windows, the Link Shell Extension context menu has a "replace Junction" and a "replace symlink" option after you select the target.

With a little effort, you can write a java app that does all the above. I have one that downloads the EAP zip file (it screen scrapes the EAP page for the latest version), prompts me to exit IDEA and waits for me to do such, backs up my config directory, extracts the new EAP, moves the symlink, and then starts up IDEA. I then have a second one to do the rollback. One of these days I'll throw it out on a public repo for others to use.

I hope that helps.

Comment actions Permalink

i'm assuming you have knowledge of the client base.  i was implicitly assuming the number of scala users was large.  if that's not the case (relatively speaking), then yes, i agree with you.

and your suggestion about making it easier to know when to upgrade is spot-on.  



Comment actions Permalink

oh, and the newly relelase scala plugin, which is labeled to be ok with the latest EAP, is *not* valid.  that was part of the fuel for my complaint.


Please sign in to leave a comment.