Plugin writers: rename dependencies for 4.0.0-M1

52 views
Skip to first unread message

iulian dragos

unread,
Oct 18, 2013, 9:34:59 AM10/18/13
to scala-ide-dev
Hi all,

Short version: If your plugin depends on `org.scala-ide.scala.library` you need to change that to `org.scala-lang.scala-library` as soon as this pull request is merged (hopefully today). This *only affects building against Scala IDE master*. Similarly for compiler and reflect. See examples here, here and here

Long version:

We're very close to upgrading our build to use the plain Scala library/compiler jars published by the Scala team. For a while now they contain correct MANIFEST.MF files, making them OSGi bundles. Currently we repackage them in a separate step ("toolchain") and publish to an Eclipse update site, then consume them from there.

The switch has numerous advantages: it allows drop-in replacement of the library/compiler, and simplifies the development of the IDE w.r.t. to changes in the Scala compiler (having a Scala compiler checkout in the workspace should be enough to make those changes visible in the sdt.core project). Plus it simplifies our build, that is already quite involved.

As soon as the PR is merged, if you have nightlies against the Scala IDE nightlies, you will see them fail until you upgrade your dependencies. This change is unfortunately *not* backwards compatible, so you should start a branch for maintenance (if you intend to release against 3.0.2).

We'll cut a 4.0.0-M1 release early next week, using the new Scala dependencies, and that will allow us to see that everything works fine. I understand this is a bit of trouble, but given the examples above, it shouldn't be very difficult to upgrade.

2.11 builds: due to modularization, there are a couple of dependencies like scala-xml and scala-parser-combinators that only exist in 2.11. In case you want to cross-compile (support both 2.10 and 2.11 from the same code-base), you should use `Import-Package` instead of `Require-Bundle`. For an example, see the last lines in the Scalariform pull request.

Last but not least: For a smooth experience inside Eclipse, you have to also upgrade your IDE. Since your plugin will require bundles that are only distributed in future nightlies, you need a version that comes with `org.scala-lang.scala-library` instead of `org.scala-ide.scala.library`.

Please don't hesitate to ask questions if you have troubles, and apologies for the inconvenience. I believe it's for a good cause!

cheers,
iulian

iulian dragos

unread,
Oct 18, 2013, 12:50:27 PM10/18/13
to scala-ide-dev
The change is merged, and nightlies are deployed. If you have plugins installed, you will need to upgrade them as well (or uninstall them), since they depend on the old plugin IDs.

cheers,
iulian

Chee Seng Chua

unread,
Oct 21, 2013, 12:03:35 AM10/21/13
to scala-...@googlegroups.com, Bill Venners
Hi all, 

Just an update, I have updated the following branch to build with scala-ide master: 


for anyone who would like to build and use scalatest plugin for master, just git clone the repo and checkout kepler-nightly branch, then: 

mvn clean package

should build the scalatest plugin in target.

Cheers, 
Chee Seng
Reply all
Reply to author
Forward
0 new messages