Skip to content

Commit b64a96e

Browse files
authored
Merge pull request #548 from http4s/http4s-0.22
Http4s 0.22
2 parents 7c266ca + 339de5d commit b64a96e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+607
-2088
lines changed

Diff for: build.sbt

+23-33
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ lazy val rho = project
1212
.in(file("."))
1313
.disablePlugins(MimaPlugin)
1414
.settings(buildSettings: _*)
15-
.aggregate(`rho-core`, `rho-hal`, `rho-swagger`, `rho-swagger-ui`, `rho-examples`)
15+
.aggregate(`rho-core`, `rho-swagger`, `rho-swagger-ui`, `rho-examples`)
1616

1717
lazy val `rho-core` = project
1818
.in(file("core"))
@@ -32,12 +32,6 @@ lazy val `rho-core` = project
3232
libraryDependencies ++= Seq("org.scala-lang.modules" %% "scala-collection-compat" % "2.4.4")
3333
)
3434

35-
lazy val `rho-hal` = project
36-
.in(file("hal"))
37-
.settings(buildSettings :+ halDeps: _*)
38-
.settings(mimaConfiguration)
39-
.dependsOn(`rho-core`)
40-
4135
lazy val `rho-swagger` = project
4236
.in(file("swagger"))
4337
.settings(buildSettings :+ swaggerDeps: _*)
@@ -71,10 +65,8 @@ lazy val docs = project
7165
version.value,
7266
apiVersion.value
7367
),
74-
(ScalaUnidoc / unidoc / scalacOptions) ++= versionSpecificEnabledFlags(scalaVersion.value),
7568
(ScalaUnidoc / unidoc / unidocProjectFilter) := inProjects(
7669
`rho-core`,
77-
`rho-hal`,
7870
`rho-swagger`
7971
),
8072
git.remoteRepo := "[email protected]:http4s/rho.git",
@@ -87,7 +79,7 @@ lazy val docs = project
8779
} yield (f, s"api/$major.$minor/$d")
8880
}
8981
)
90-
.dependsOn(`rho-core`, `rho-hal`, `rho-swagger`)
82+
.dependsOn(`rho-core`, `rho-swagger`)
9183

9284
lazy val `rho-examples` = project
9385
.in(file("examples"))
@@ -96,27 +88,20 @@ lazy val `rho-examples` = project
9688
.settings(Revolver.settings)
9789
.settings(
9890
exampleDeps,
99-
libraryDependencies ++= Seq(logbackClassic, http4sXmlInstances),
10091
dontPublish
10192
)
102-
.dependsOn(`rho-swagger`, `rho-swagger-ui`, `rho-hal`)
103-
104-
lazy val compilerFlags = Seq(
105-
"-feature",
106-
"-deprecation",
107-
"-unchecked",
108-
"-language:higherKinds",
109-
"-language:existentials",
110-
"-language:implicitConversions",
111-
"-Ywarn-unused",
112-
"-Xfatal-warnings"
93+
.dependsOn(`rho-swagger`, `rho-swagger-ui`)
94+
95+
lazy val disabledCompilerFlags = Seq( // TODO: Fix code and re-enable these.
96+
"-Xlint:package-object-classes",
97+
"-Ywarn-numeric-widen",
98+
"-Wnumeric-widen",
99+
"-Xlint:adapted-args",
100+
"-Yno-adapted-args",
101+
"-Wdead-code",
102+
"-Ywarn-dead-code"
113103
)
114104

115-
def versionSpecificEnabledFlags(version: String) = CrossVersion.partialVersion(version) match {
116-
case Some((2, 13)) => Seq.empty[String]
117-
case _ => Seq("-Ypartial-unification")
118-
}
119-
120105
/* Don't publish setting */
121106
lazy val dontPublish = packagedArtifacts := Map.empty
122107

@@ -128,22 +113,27 @@ lazy val buildSettings = publishing ++
128113
Seq(
129114
scalaVersion := scala_213,
130115
crossScalaVersions := Seq(scala_213, scala_212),
131-
scalacOptions := compilerFlags ++ versionSpecificEnabledFlags(scalaVersion.value),
116+
scalacOptions --= disabledCompilerFlags,
132117
resolvers += Resolver.sonatypeRepo("snapshots"),
133118
(run / fork) := true,
134119
(ThisBuild / organization) := "org.http4s",
135120
(ThisBuild / homepage) := Some(url(homepageUrl)),
136121
description := "A self documenting DSL build upon the http4s framework",
137122
license,
138123
libraryDependencies ++= Seq(
139-
shapeless,
140-
silencerPlugin,
141-
silencerLib,
142124
http4sServer % "provided",
143125
logbackClassic % "test"
144126
),
145-
libraryDependencies ++= specs2,
146-
libraryDependencies += `scala-reflect` % scalaVersion.value
127+
libraryDependencies ++= (if (scalaVersion.value.startsWith("2"))
128+
Seq(
129+
shapeless,
130+
silencerPlugin,
131+
silencerLib,
132+
kindProjector,
133+
`scala-reflect` % scalaVersion.value
134+
)
135+
else Seq.empty),
136+
libraryDependencies ++= specs2
147137
)
148138

149139
// to keep REPL usable

Diff for: core/src/main/scala/org/http4s/rho/AuthedContext.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import cats.Monad
55
import cats.data.{Kleisli, OptionT}
66
import shapeless.{::, HNil}
77
import org.http4s.rho.bits.{FailureResponseOps, SuccessResponse, TypedHeader}
8-
import _root_.io.chrisdavenport.vault._
98
import cats.effect._
9+
import org.typelevel.vault.Key
1010

1111
/** The [[AuthedContext]] provides a convenient way to define a RhoRoutes
1212
* which works with http4s authentication middleware.

Diff for: core/src/main/scala/org/http4s/rho/PathBuilder.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ final class PathBuilder[F[_], T <: HList](val method: Method, val path: PathRule
2121
with HeaderAppendable[F, T]
2222
with RoutePrependable[F, PathBuilder[F, T]]
2323
with UriConvertible[F] {
24-
type HeaderAppendResult[T <: HList] = Router[F, T]
24+
type HeaderAppendResult[T0 <: HList] = Router[F, T0]
2525

2626
override val rules: RequestRule[F] = EmptyRule[F]()
2727

Diff for: core/src/main/scala/org/http4s/rho/QueryBuilder.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ case class QueryBuilder[F[_], T <: HList](method: Method, path: PathRule, rules:
4141
override def /:(prefix: TypedPath[F, HNil]): QueryBuilder[F, T] =
4242
new QueryBuilder[F, T](method, PathAnd(prefix.rule, path), rules)
4343

44-
override type HeaderAppendResult[T <: HList] = Router[F, T]
44+
override type HeaderAppendResult[T0 <: HList] = Router[F, T0]
4545

4646
override def makeRoute(action: Action[F, T]): RhoRoute[F, T] =
4747
RhoRoute(Router(method, path, rules), action)

Diff for: core/src/main/scala/org/http4s/rho/Result.scala

+7-13
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ package rho
33

44
import cats._
55
import org.http4s.headers.`Content-Type`
6-
import _root_.io.chrisdavenport.vault._
6+
import org.typelevel.vault._
7+
import org.typelevel.ci.CIString
78

89
/** A helper for capturing the result types and status codes from routes */
910
sealed case class Result[
@@ -102,23 +103,19 @@ trait ResultSyntaxInstances[F[_]] {
102103

103104
def withHeaders(headers: Headers): Self = Result(resp.withHeaders(headers))
104105

105-
def withHeaders(headers: Header*): Self = Result(resp.withHeaders(headers: _*))
106+
def withHeaders(headers: Header.ToRaw*): Self = Result(resp.withHeaders(headers: _*))
106107

107108
def withAttributes(attributes: Vault): Self = Result(resp.withAttributes(attributes))
108109

109110
def transformHeaders(f: Headers => Headers): Self = Result(resp.transformHeaders(f))
110111

111-
def filterHeaders(f: Header => Boolean): Self = Result(resp.filterHeaders(f))
112+
def filterHeaders(f: Header.Raw => Boolean): Self = Result(resp.filterHeaders(f))
112113

113-
def removeHeader(key: HeaderKey): Self = Result(resp.removeHeader(key))
114+
def removeHeader(key: CIString): Self = Result(resp.removeHeader(key))
114115

115-
def putHeaders(headers: Header*): Self = Result(resp.putHeaders(headers: _*))
116+
def removeHeader[A](implicit h: Header[A, _]): Self = Result(resp.removeHeader(h))
116117

117-
@scala.deprecated("Use withHeaders instead", "0.20.0-M2")
118-
def replaceAllHeaders(headers: Headers): Self = Result(resp.replaceAllHeaders(headers))
119-
120-
@scala.deprecated("Use withHeaders instead", "0.20.0-M2")
121-
def replaceAllHeaders(headers: Header*): Self = Result(resp.replaceAllHeaders(headers: _*))
118+
def putHeaders(headers: Header.ToRaw*): Self = Result(resp.putHeaders(headers: _*))
122119

123120
def withTrailerHeaders(trailerHeaders: F[Headers]): Self = Result(
124121
resp.withTrailerHeaders(trailerHeaders)
@@ -128,9 +125,6 @@ trait ResultSyntaxInstances[F[_]] {
128125

129126
def trailerHeaders(implicit F: Applicative[F]): F[Headers] = resp.trailerHeaders(F)
130127

131-
@scala.deprecated("Use withContentType(`Content-Type`(t)) instead", "0.20.0-M2")
132-
def withType(t: MediaType)(implicit F: Functor[F]): Self = Result(resp.withType(t)(F))
133-
134128
def withContentType(contentType: `Content-Type`): Self = Result(
135129
resp.withContentType(contentType)
136130
)

0 commit comments

Comments
 (0)