From 24018c0e00acd84860b7de54e0e8de69694748e5 Mon Sep 17 00:00:00 2001 From: Grigory Pomadchin Date: Sat, 11 May 2024 16:14:16 -0400 Subject: [PATCH 1/4] Dependencies update --- .github/workflows/ci.yml | 2 +- CHANGELOG.md | 4 +- build.sbt | 4 +- project/Dependencies.scala | 38 +++++++++---------- project/Settings.scala | 4 +- project/plugins.sbt | 8 ++-- sbt | 8 ++-- .../scala/geotrellis/vector/Projected.scala | 2 +- .../geotrellis/vector/io/json/Implicits.scala | 11 +++--- 9 files changed, 41 insertions(+), 40 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97362b3144..d95cd57584 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: name: Build and Test strategy: matrix: - scala: ["2.12.18", "2.13.12"] + scala: ["2.12.19", "2.13.14"] java: ["11"] runs-on: ubuntu-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index c8d8271722..7d11aa0e7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [3.7.1] - 2024-01-08 +### Changed +- Bump GeoTools version up to 30.x [#3521](https://github.com/locationtech/geotrellis/pull/3521) ### Added - Add JDK11 cross compilation [#3435](https://github.com/locationtech/geotrellis/pull/3435) @@ -16,7 +17,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Regrid: force crop to avoid going out of memory [#3518](https://github.com/locationtech/geotrellis/pull/3518) - Fix rounding errors/numerical instability in GridExtent and LayoutTileSource [#3520](https://github.com/locationtech/geotrellis/pull/3520) - GeoTrellisPath.parse should preserve unrecognized uri parameters [#3529](https://github.com/locationtech/geotrellis/pull/3529) -- Bump GeoTools version up to 30.x [#3521](https://github.com/locationtech/geotrellis/pull/3521) ## [3.7.0] - 2023-02-26 diff --git a/build.sbt b/build.sbt index 794b74304e..a5d6435afb 100644 --- a/build.sbt +++ b/build.sbt @@ -1,9 +1,9 @@ import sbt.Keys._ ThisBuild / versionScheme := Some("semver-spec") -ThisBuild / scalaVersion := "2.13.12" +ThisBuild / scalaVersion := "2.13.14" ThisBuild / organization := "org.locationtech.geotrellis" -ThisBuild / crossScalaVersions := List("2.12.18", "2.13.12") +ThisBuild / crossScalaVersions := List("2.12.19", "2.13.14") lazy val root = Project("geotrellis", file(".")) .aggregate( diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 506486b8d5..c9c7a4a4f4 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -21,7 +21,7 @@ object Version { val spire = "0.17.0" val accumulo = "1.10.4" val cassandra = "4.17.0" - val hbase = "2.5.7" + val hbase = "2.5.8" val hadoop = "3.3.6" val gdal = "3.1.0" val gdalWarp = "1.2.0" @@ -45,7 +45,7 @@ object Dependencies { def cats(module: String) = Def.setting { module match { - case "effect" => "org.typelevel" %% s"cats-$module" % "3.5.2" + case "effect" => "org.typelevel" %% s"cats-$module" % "3.5.4" case _ => "org.typelevel" %% s"cats-$module" % "2.10.0" } } @@ -54,39 +54,39 @@ object Dependencies { module match { case "json-schema" => "io.circe" %% s"circe-$module" % "0.2.0" case "generic-extras" => "io.circe" %% s"circe-$module" % "0.14.3" - case _ => "io.circe" %% s"circe-$module" % "0.14.6" + case _ => "io.circe" %% s"circe-$module" % "0.14.7" } } def fs2(module: String) = Def.setting { - "co.fs2" %% s"fs2-$module" % "3.9.3" + "co.fs2" %% s"fs2-$module" % "3.10.2" } def apacheSpark(module: String) = Def.setting { - "org.apache.spark" %% s"spark-$module" % "3.5.0" + "org.apache.spark" %% s"spark-$module" % "3.5.1" } def scalaReflect(version: String) = "org.scala-lang" % "scala-reflect" % version - val pureconfig = "com.github.pureconfig" %% "pureconfig" % "0.17.4" + val pureconfig = "com.github.pureconfig" %% "pureconfig" % "0.17.6" val log4s = "org.log4s" %% "log4s" % "1.10.0" - val scalatest = "org.scalatest" %% "scalatest" % "3.2.17" - val scalacheck = "org.scalacheck" %% "scalacheck" % "1.17.0" - val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "2.2.0" + val scalatest = "org.scalatest" %% "scalatest" % "3.2.18" + val scalacheck = "org.scalacheck" %% "scalacheck" % "1.18.0" + val scalaXml = "org.scala-lang.modules" %% "scala-xml" % "2.3.0" val jts = "org.locationtech.jts" % "jts-core" % "1.19.0" val proj4j = "org.locationtech.proj4j" % "proj4j" % "1.3.0" val proj4jEPSG = "org.locationtech.proj4j" % "proj4j-epsg" % "1.3.0" val openCSV = "com.opencsv" % "opencsv" % "5.9" val spire = "org.typelevel" %% "spire" % Version.spire val spireMacro = "org.typelevel" %% "spire-macros" % Version.spire - val apacheIO = "commons-io" % "commons-io" % "2.15.1" + val apacheIO = "commons-io" % "commons-io" % "2.16.1" val apacheLang3 = "org.apache.commons" % "commons-lang3" % "3.14.0" val apacheMath = "org.apache.commons" % "commons-math3" % "3.6.1" val chronoscala = "jp.ne.opt" %% "chronoscala" % "1.0.0" - val awsSdkS3 = "software.amazon.awssdk" % "s3" % "2.22.12" + val awsSdkS3 = "software.amazon.awssdk" % "s3" % "2.25.50" val hadoopClient = "org.apache.hadoop" % "hadoop-client" % Version.hadoop - val avro = "org.apache.avro" % "avro" % "1.11.2" // aligned with the Spark version - val parserCombinators = "org.scala-lang.modules" %% "scala-parser-combinators" % "2.3.0" + val avro = "org.apache.avro" % "avro" % "1.11.3" // aligned with the Spark version + val parserCombinators = "org.scala-lang.modules" %% "scala-parser-combinators" % "2.4.0" val jsonSchemaValidator = "com.networknt" % "json-schema-validator" % "0.1.23" val accumuloCore = "org.apache.accumulo" % "accumulo-core" % Version.accumulo val sl4jnop = "org.slf4j" % "slf4j-nop" % "1.7.25" @@ -96,8 +96,8 @@ object Dependencies { val cassandraDriverCore = "com.datastax.oss" % "java-driver-core" % Version.cassandra val cassandraDriverQueryBuilder = "com.datastax.oss" % "java-driver-query-builder" % Version.cassandra - val scaffeine = "com.github.blemale" %% "scaffeine" % "4.1.0" - val caffeine = "com.github.ben-manes.caffeine" % "caffeine" % "2.9.3" + val scaffeine = "com.github.blemale" %% "scaffeine" % "5.2.1" + val caffeine = "com.github.ben-manes.caffeine" % "caffeine" % "3.1.8" val geotoolsCoverage = "org.geotools" % "gt-coverage" % Version.geotools val geotoolsHsql = "org.geotools" % "gt-epsg-hsql" % Version.geotools @@ -114,9 +114,9 @@ object Dependencies { val hbaseMapReduce = "org.apache.hbase" % "hbase-mapreduce" % Version.hbase - val woodstoxCore = "com.fasterxml.woodstox" % "woodstox-core" % "6.5.1" + val woodstoxCore = "com.fasterxml.woodstox" % "woodstox-core" % "6.6.2" val stax2Api = "org.codehaus.woodstox" % "stax2-api" % "4.2.2" - val commonsConfiguration2 = "org.apache.commons" % "commons-configuration2" % "2.9.0" + val commonsConfiguration2 = "org.apache.commons" % "commons-configuration2" % "2.10.1" val re2j = "com.google.re2j" % "re2j" % "1.7" val jacksonCoreAsl = "org.codehaus.jackson" % "jackson-core-asl" % "1.9.13" @@ -130,7 +130,7 @@ object Dependencies { val protobufJava = "com.google.protobuf" % "protobuf-java" % "3.25.1" val squants = "org.typelevel" %% "squants" % "1.8.3" - val scalactic = "org.scalactic" %% "scalactic" % "3.2.17" + val scalactic = "org.scalactic" %% "scalactic" % "3.2.18" val gdalBindings = "org.gdal" % "gdal" % Version.gdal val gdalWarp = "com.azavea.geotrellis" % "gdal-warp-bindings" % Version.gdalWarp @@ -149,7 +149,7 @@ object Dependencies { val jaiCodec = "javax.media" % "jai_codec" % "1.1.3" val imageIo = "javax.media" % "jai_imageio" % "1.1" - val imageioExtUtilities = "it.geosolutions.imageio-ext" % "imageio-ext-utilities" % "1.4.7" + val imageioExtUtilities = "it.geosolutions.imageio-ext" % "imageio-ext-utilities" % "1.4.10" val worksWithDependencies = Seq(jaiCore, jaiCodec, imageIo, imageioExtUtilities).map(_ % Provided) } diff --git a/project/Settings.scala b/project/Settings.scala index 56fa498531..6c4bbcf3dc 100644 --- a/project/Settings.scala +++ b/project/Settings.scala @@ -100,8 +100,8 @@ object Settings { Path.userHome / ".sbt" / ".credentials" ).filter(_.asFile.canRead).map(Credentials(_)), - addCompilerPlugin("org.typelevel" % "kind-projector" % "0.13.2" cross CrossVersion.full), - addCompilerPlugin("org.scalameta" % "semanticdb-scalac" % "4.8.15" cross CrossVersion.full), + addCompilerPlugin("org.typelevel" % "kind-projector" % "0.13.3" cross CrossVersion.full), + addCompilerPlugin("org.scalameta" % "semanticdb-scalac" % "4.9.3" cross CrossVersion.full), libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, 13)) => Nil diff --git a/project/plugins.sbt b/project/plugins.sbt index 3c8df79c5d..a9d4a8b285 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,14 +1,14 @@ resolvers += sbt.Resolver.bintrayIvyRepo("typesafe", "sbt-plugins") addDependencyTreePlugin -addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.1.5") +addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.2.0") addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0") addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.6.4") addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.2") addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.3") -addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.6") -addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.1") +addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.7") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.1") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.5.2" ) addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.12") -libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.14" +libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.15" diff --git a/sbt b/sbt index f63a9ee5a7..43a52e83d8 100755 --- a/sbt +++ b/sbt @@ -34,11 +34,11 @@ set -o pipefail -declare -r sbt_release_version="1.9.7" -declare -r sbt_unreleased_version="1.9.7" +declare -r sbt_release_version="1.10.0" +declare -r sbt_unreleased_version="1.10.0" -declare -r latest_213="2.13.12" -declare -r latest_212="2.12.18" +declare -r latest_213="2.13.14" +declare -r latest_212="2.12.19" declare -r latest_211="2.11.12" declare -r latest_210="2.10.7" declare -r latest_29="2.9.3" diff --git a/vector/src/main/scala/geotrellis/vector/Projected.scala b/vector/src/main/scala/geotrellis/vector/Projected.scala index b3840980f5..53c6e20b7b 100644 --- a/vector/src/main/scala/geotrellis/vector/Projected.scala +++ b/vector/src/main/scala/geotrellis/vector/Projected.scala @@ -20,7 +20,7 @@ import geotrellis.proj4.CRS import geotrellis.vector.reproject.Reproject object Projected { - implicit def toGeometry[G <: Geometry](p: Projected[G]) = p.geom + implicit def toGeometry[G <: Geometry](p: Projected[G]): G = p.geom } /** diff --git a/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala b/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala index e7d55aa243..a1fb3fe5ff 100644 --- a/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala +++ b/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala @@ -16,20 +16,19 @@ package geotrellis.vector.io.json +import geotrellis.vector.{Extent, Feature, Geometry, GeometryCollection} +import geotrellis.vector.methods.Implicits._ + import io.circe._ import io.circe.syntax._ import cats.syntax.either._ import io.circe.parser.{parse => circeParse} -import geotrellis.vector._ import scala.reflect.ClassTag import scala.reflect.runtime.universe.TypeTag -import scala.util.{Try, Success, Failure} - -object Implicits extends Implicits +import scala.util.{Failure, Success, Try} trait Implicits extends GeoJsonSupport { - implicit class GeometriesToGeoJson(val geoms: Traversable[Geometry]) { def toGeoJson(): String = { GeometryCollection(geoms).asJson.noSpaces @@ -104,3 +103,5 @@ trait Implicits extends GeoJsonSupport { } } } + +object Implicits extends Implicits From 6da5682f82b813e59350672900521a836cac9fdd Mon Sep 17 00:00:00 2001 From: Grigory Pomadchin Date: Sun, 12 May 2024 14:56:37 -0400 Subject: [PATCH 2/4] Cleanup the diff --- .../main/scala/geotrellis/vector/io/json/Implicits.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala b/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala index a1fb3fe5ff..c10c6b6d02 100644 --- a/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala +++ b/vector/src/main/scala/geotrellis/vector/io/json/Implicits.scala @@ -26,9 +26,12 @@ import io.circe.parser.{parse => circeParse} import scala.reflect.ClassTag import scala.reflect.runtime.universe.TypeTag -import scala.util.{Failure, Success, Try} +import scala.util.{Try, Success, Failure} + +object Implicits extends Implicits trait Implicits extends GeoJsonSupport { + implicit class GeometriesToGeoJson(val geoms: Traversable[Geometry]) { def toGeoJson(): String = { GeometryCollection(geoms).asJson.noSpaces @@ -103,5 +106,3 @@ trait Implicits extends GeoJsonSupport { } } } - -object Implicits extends Implicits From 57d61c22ddc4c604ec2b9aa3defeae89d874acac Mon Sep 17 00:00:00 2001 From: Grigory Pomadchin Date: Sun, 12 May 2024 14:59:09 -0400 Subject: [PATCH 3/4] java.io.Serializable => Serializable --- .../scala/geotrellis/store/cassandra/CassandraInstance.scala | 2 +- .../src/main/scala/geotrellis/store/cassandra/package.scala | 2 +- spark/src/main/scala/geotrellis/spark/Implicits.scala | 2 +- vectortile/src/main/scala/geotrellis/vectortile/Layer.scala | 2 +- vectortile/src/main/scala/geotrellis/vectortile/Value.scala | 2 +- .../scala/geotrellis/vectortile/internal/ProtobufGeom.scala | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cassandra/src/main/scala/geotrellis/store/cassandra/CassandraInstance.scala b/cassandra/src/main/scala/geotrellis/store/cassandra/CassandraInstance.scala index 9e87453be0..9f4794be9c 100644 --- a/cassandra/src/main/scala/geotrellis/store/cassandra/CassandraInstance.scala +++ b/cassandra/src/main/scala/geotrellis/store/cassandra/CassandraInstance.scala @@ -38,7 +38,7 @@ object CassandraInstance { } } -trait CassandraInstance extends java.io.Serializable { +trait CassandraInstance extends Serializable { val cassandraConfig: CassandraConfig /** Session constructor */ diff --git a/cassandra/src/main/scala/geotrellis/store/cassandra/package.scala b/cassandra/src/main/scala/geotrellis/store/cassandra/package.scala index ec48d59d4e..67781c4905 100644 --- a/cassandra/src/main/scala/geotrellis/store/cassandra/package.scala +++ b/cassandra/src/main/scala/geotrellis/store/cassandra/package.scala @@ -24,7 +24,7 @@ import com.datastax.oss.driver.api.core.cql.{AsyncResultSet, Statement} import java.math.BigInteger -package object cassandra extends java.io.Serializable { +package object cassandra extends Serializable { implicit class BigIntOps(val self: BigInt) extends AnyVal { def asJava: BigInteger = new BigInteger(self.toByteArray) } diff --git a/spark/src/main/scala/geotrellis/spark/Implicits.scala b/spark/src/main/scala/geotrellis/spark/Implicits.scala index e36e9b98ae..a257b0dc85 100644 --- a/spark/src/main/scala/geotrellis/spark/Implicits.scala +++ b/spark/src/main/scala/geotrellis/spark/Implicits.scala @@ -68,7 +68,7 @@ trait Implicits with geotrellis.spark.tiling.Implicits with geotrellis.spark.timeseries.Implicits with geotrellis.spark.viewshed.Implicits - with java.io.Serializable { + with Serializable { /** Auto wrap a partitioner when something is requestion an Option[Partitioner]; * useful for Options that take an Option[Partitioner] diff --git a/vectortile/src/main/scala/geotrellis/vectortile/Layer.scala b/vectortile/src/main/scala/geotrellis/vectortile/Layer.scala index 2b9c63a976..5b5abdbd31 100644 --- a/vectortile/src/main/scala/geotrellis/vectortile/Layer.scala +++ b/vectortile/src/main/scala/geotrellis/vectortile/Layer.scala @@ -32,7 +32,7 @@ import scala.collection.mutable.ListBuffer * Here, "Feature" and "Geometry" refer specifically to the GeoTrellis classes * of the same names. */ -@experimental trait Layer extends java.io.Serializable { +@experimental trait Layer extends Serializable { /** The VectorTile spec version that this Layer obeys. */ def version: Int diff --git a/vectortile/src/main/scala/geotrellis/vectortile/Value.scala b/vectortile/src/main/scala/geotrellis/vectortile/Value.scala index 8f30932fdf..4540dec753 100644 --- a/vectortile/src/main/scala/geotrellis/vectortile/Value.scala +++ b/vectortile/src/main/scala/geotrellis/vectortile/Value.scala @@ -49,7 +49,7 @@ import geotrellis.vectortile.internal.PBTile._ * type safety in light of the situation described here. * */ -sealed trait Value extends java.io.Serializable { +sealed trait Value extends Serializable { /** Encode this Value back into a mid-level Protobuf object. */ private[vectortile] def toProtobuf: PBValue } diff --git a/vectortile/src/main/scala/geotrellis/vectortile/internal/ProtobufGeom.scala b/vectortile/src/main/scala/geotrellis/vectortile/internal/ProtobufGeom.scala index 6d8667cc89..e8ebe7667e 100644 --- a/vectortile/src/main/scala/geotrellis/vectortile/internal/ProtobufGeom.scala +++ b/vectortile/src/main/scala/geotrellis/vectortile/internal/ProtobufGeom.scala @@ -40,7 +40,7 @@ import geotrellis.vector.{ Geometry, Point } * implicitly[ProtobufGeom[Point, MultiPoint]].fromCommands(Command.commands(Seq(9,2,2)), topLeft, resolution) * }}} */ -private[vectortile] trait ProtobufGeom[G1 <: Geometry, G2 <: Geometry] extends java.io.Serializable { +private[vectortile] trait ProtobufGeom[G1 <: Geometry, G2 <: Geometry] extends Serializable { /** * Decode a sequence of VectorTile [[Command]]s into a GeoTrellis * Geometry. Due to the reasons stated above, this may be either From 6484a4a6726f6648ca3caa11de172924231068cb Mon Sep 17 00:00:00 2001 From: Grigory Pomadchin Date: Sun, 12 May 2024 15:03:13 -0400 Subject: [PATCH 4/4] CHANGELOG.md upd --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d11aa0e7d..14e4cff584 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bump GeoTools version up to 30.x [#3521](https://github.com/locationtech/geotrellis/pull/3521) +- Fix not found: type Serializable compiler bug [#3535](https://github.com/locationtech/geotrellis/pull/3535) + +## [3.7.1] - 2024-01-08 ### Added - Add JDK11 cross compilation [#3435](https://github.com/locationtech/geotrellis/pull/3435)