Migration Guide


2.3 Migration Guide for 2.2.x USers


https://github.com/skinny-framework/skinny-framework/releases/tag/2.3.0


Java 8+ required

Since 2.3, we dropped Java 7 support. Use Java 8 or higher. If you need to run your skinny app on Java 7, stay in 2.2.x series.


Compatible dependencies

Key dependencies are upgraded. We’re afraid that some of them may not be binary compatible with previous versions.


sbt 0.13.13

sbt 0.13.13 brought more deprecation warnings. Refer the settings in the latest blank-app project.

https://github.com/skinny-framework/skinny-framework/blob/2.3.0/skinny-blank-app/build.sbt

2.2 Migration Guide for 2.1.x USers


https://github.com/skinny-framework/skinny-framework/releases/tag/2.2.0


json4s 3.4 compatible

If you’re using Skinny’s json4s module, Skinny 2.2 modules are binary compatible with json4s 3.4.


sbt 0.13.12

Skinny 2.2.0’s blank project use build.sbt instead of project/Build.scala because since 0.13.12, sbt marks the Build trait deprecated and will remove it since version 1.0.

https://github.com/sbt/sbt/pull/2530

The migration from your existing project/Build.scala to build.sbt is not difficult. But if you’re stuck with it, check the default settings in skinny-blank-app.

Remove the build object

In build.sbt, you don’t need a parent object which extends Build trait. Just remove it.

object SkinnyAppBuild extends Build {
}
Migrate project definition DSL

In build.sbt, the DSL to define projects is different from project/Build.scala. Migrate Project(...)

  lazy val dev = Project(id = "dev", base = file("."),
    settings = devBaseSettings ++ Seq(
      name := appName + "-dev",
      target := baseDirectory.value / "target" / "dev"
    )
  )

to (project in file(dir)).settings(...) like this:

lazy val dev = (project in file(".")).settings(devBaseSettings).settings(
  name := appName + "-dev",
  target := baseDirectory.value / "target" / "dev"
)
Limitation

Unfortunately, build.sbt doesn’t allow defining multiple sub projects which share the same base directory. Due to the limitation, the precompileDev project is disabled by default since 2.2.0. If you prefer using precompileDev project, modify build.sbt after creating a skinny project.


2.1 Migration Guide for 2.0.x Users


https://github.com/skinny-framework/skinny-framework/releases/tag/2.1.0


ScalikeJDBC 2.4 Compatible

Although there is no API changes, Skinny ORM and related modules are compatible with ScalikeJDBC 2.4.0 or higher.

You cannot use ScalikeJDBC 2.3.x or lower version with Skinny modules 2.1.0.


2.0 Migration Guide for 1.3.x Users


https://github.com/skinny-framework/skinny-framework/releases/tag/2.0.0


Moving from Scalatra to Skinny Micro

The biggest change is moving from Scalatra to Skinny Micro. We recommend you checking the 2.0.0 blank project first.

If you’re in trouble for replacing Scalatra with Skinny Micro, please post questsions on Google Group or stackoverflow.com.

You’ll see deprecation warnings that point you which class to use when upgrading Skinny to 2.0. So We believe the migration should be very smooth. But in some cases, you might be in trouble. In particular, be careful about the following things:


Use json4s 3.3.x

Skinny Framework 2.0 is compatible with json4s 3.3.x. Be aware that 3.2.x series will be incompatible.


1.3 Migration Guide for 1.2.x Users


https://github.com/skinny-framework/skinny-framework/releases/tag/1.3.0

Deprecated joda-time methods in WrappedResultSet are removed. If you you’re using rs.dateTime(...), just rename it to rs.jodaDateTime(...).


1.2 Migration Guide for 1.1.x Users


APIs are basically compatible. If you don’t have some extensions that depend on LocaleFeature, RequestScopeFeature and SkinnySessionFilter methods, your app will work fine without changing your code.

https://github.com/skinny-framework/skinny-framework/releases/tag/1.2.0

Though we believe migration is not difficult, please tell us here if you find something wrong.

https://github.com/skinny-framework/skinny-framework/issues


1.1 Migration Guide for 1.0.x Users


Skinny 1.1 APIs are basically compatible with Skinny 1.0 though the release includes basic dependencies’ major upgrades. If your app depends on the dependencies directly (not via Skinny APIs), you may need to update your code.

https://github.com/skinny-framework/skinny-framework/releases/tag/1.1.0

Though we believe migration is not difficult, please tell us here if you find something wrong.

https://github.com/skinny-framework/skinny-framework/issues


“org.scalatest.matchers.ShouldMatchers” is deprecated

Use “org.scalatest.Matchers” instead. Sorry to say this.


Importing “scalikejdbc.SQLInterpolation._” is deprecated

Just import only “scalikejdbc._”.

See also: https://github.com/skinny-framework/skinny-framework/commit/1e44f60e5c5d0f53ab0102697a00413ad7a696d0


Renamed joda-time APIs due to JSR-310

WrappedResultSet#dateTime, #localDate, #localTime and #localDateTime are deprecated and #jodaDateTime and #jodaXXX are added.

See also the issue: https://github.com/scalikejdbc/scalikejdbc/issues/222

Other changes in ScalikeJDBC 2.0:

https://github.com/scalikejdbc/scalikejdbc/blob/master/notes/2.0.0.markdown


skinny package’s Scalate precompilation error

Since Scalate 1.7.0, Skinny’s blank app project’s settings fail to execute package command.

default_ssp.scala:7: $_scalate_$default_ssp is already defined as object $_scalate_$default_ssp

Remove scalateSettings if your build settings loads it twice.

See also: https://github.com/skinny-framework/skinny-framework/commit/4ad2b874116ad3b60b76b104b2bf528106aeda87

If you find a typo or mistake in this page, please report or fix it. How?