Upgrading

Automated Upgrading with Scalafix

http4s-0.22 comes with a scalafix that does some of the migration automatically.

Before you upgrade manually, we recommend you run this scalafix.

Add the scalafix plugin to your project/plugins.sbt or to your global plugins.

addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.28")

Run

$ sbt ";scalafixEnable; scalafix github:http4s/http4s/v0_22"

The compiler errors should help you in showing what's left to upgrade.

For further information about the changes since 0.21, check the changelog

Http4s 0.21 -> 0.22 Migration Guide

General Changes:

Header names are now CIStrings which can be created by importing org.typelevel.ci._ and using the ci string interpolator.

0.21 0.22
headers.get(If-Match) headers.get[If-Match]
Headers.of( Headers(
Header("x-ms", "1") Header(ci"x-ms", "1")
baseUri +?? ("p", w) baseUri +?? ("p" -> w)
"x-ms".ci ci"x-ms"
import org.http4s.server.blaze import org.http4s.blaze.server
baseUri.+?("k", List(v, v1)) baseUri.++?("k" -> List(v, v1))

Help Us Help You!

If you see recurring patterns that could benefit from a scalafix, please report them for consideration. For general upgrade tips, please consider a pull request to this document.