From ab28264ac2623547efbd27e734ccd3d27a6fcc88 Mon Sep 17 00:00:00 2001 From: Mikhail Sokolov Date: Fri, 30 Aug 2024 14:17:38 +0300 Subject: [PATCH] Drop 2.12 support, prepare for 1.1.0 changes also - added MiMa bincompat checks - updated scalafmt --- .github/workflows/ci.yml | 5 ++-- .scalafmt.conf | 9 ++++-- build.sbt | 28 ++++++++++++++----- project/plugins.sbt | 18 +++++------- .../prometheus/ObserveDuration.scala | 4 +-- version.sbt | 2 +- 6 files changed, 39 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa9adbd..c75dfa9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,6 @@ name: CI -on: [push, pull_request] +on: [ push, pull_request ] jobs: test: @@ -11,7 +11,6 @@ jobs: matrix: scala: - 2.13.14 - - 2.12.19 - 3.3.3 steps: @@ -25,7 +24,7 @@ jobs: java-version: openjdk@1.11 - name: build ${{ matrix.scala }} - run: sbt ++${{ matrix.scala }} clean coverage test + run: sbt ++${{ matrix.scala }} clean check coverage test - name: test coverage if: success() diff --git a/.scalafmt.conf b/.scalafmt.conf index b72b357..fb4d056 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,6 @@ -version = 2.2.1 +version = "3.8.3" + +runner.dialect = scala213source3 align = most continuationIndent.callSite = 2 @@ -6,8 +8,9 @@ continuationIndent.defnSite = 2 danglingParentheses = true indentOperator = spray maxColumn = 150 -newlines.alwaysBeforeTopLevelStatements = true +align.preset = "most" +danglingParentheses.preset = true project.excludeFilters = [".*\\.sbt"] rewrite.rules = [RedundantParens, SortImports] spaces.inImportCurlyBraces = false -unindentTopLevelOperators = true \ No newline at end of file +indentOperator.exemptScope = all \ No newline at end of file diff --git a/build.sbt b/build.sbt index 7425707..8dce469 100644 --- a/build.sbt +++ b/build.sbt @@ -2,28 +2,35 @@ name := "prometheus-tools" organization := "com.evolutiongaming" -homepage := Some(new URL("http://github.com/evolution-gaming/prometheus-tools")) +homepage := Some(url("https://github.com/evolution-gaming/prometheus-tools")) startYear := Some(2018) organizationName := "Evolution" -organizationHomepage := Some(url("http://evolution.com")) +organizationHomepage := Some(url("https://evolution.com")) -crossScalaVersions := Seq("2.13.14", "2.12.19", "3.3.3") +crossScalaVersions := Seq("2.13.14", "3.3.3") scalaVersion := crossScalaVersions.value.head Compile / scalacOptions ++= Seq("-language:implicitConversions") +Compile / scalacOptions ++= { + if (scalaBinaryVersion.value == "2.13") { + Seq( + "-Xsource:3" + ) + } else Seq.empty +} Compile / doc / scalacOptions ++= Seq("-groups", "-implicits", "-no-link-warnings") publishTo := Some(Resolver.evolutionReleases) libraryDependencies ++= Seq( - "com.evolutiongaming" %% "executor-tools" % "1.0.4", - "io.prometheus" % "simpleclient_common" % "0.8.1", - "org.scalameta" %% "munit" % "0.7.29" % Test + "com.evolutiongaming" %% "executor-tools" % "1.0.4", + "io.prometheus" % "simpleclient_common" % "0.8.1", + "org.scalameta" %% "munit" % "1.0.0" % Test ) testFrameworks += new TestFramework("munit.Framework") @@ -34,4 +41,11 @@ releaseCrossBuild := true ThisBuild / versionScheme := Some("semver-spec") -addCommandAlias("check", "all scalafmtCheckAll scalafmtSbtCheck") +// Your next release will be binary compatible with the previous one, +// but it may not be source compatible (ie, it will be a minor release). +ThisBuild / versionPolicyIntention := Compatibility.BinaryCompatible + +//used by evolution-gaming/scala-github-actions +addCommandAlias("check", "all versionPolicyCheck Compile/doc scalafmtCheckAll scalafmtSbtCheck") + +addCommandAlias("fmtAll", "all scalafmtAll scalafmtSbt") diff --git a/project/plugins.sbt b/project/plugins.sbt index e08462f..7bab7ef 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,11 +1,7 @@ -addSbtPlugin("com.evolution" % "sbt-artifactory-plugin" % "0.0.2") - -addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.12") - -addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.3.11") - -addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") - -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.3") - -addSbtPlugin("com.evolution" % "sbt-scalac-opts-plugin" % "0.0.9") +addSbtPlugin("com.evolution" % "sbt-artifactory-plugin" % "0.0.2") +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.12") +addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.3.11") +addSbtPlugin("com.github.sbt" % "sbt-release" % "1.4.0") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.3") +addSbtPlugin("com.evolution" % "sbt-scalac-opts-plugin" % "0.0.9") +addSbtPlugin("ch.epfl.scala" % "sbt-version-policy" % "3.2.1") diff --git a/src/main/scala/com/evolutiongaming/prometheus/ObserveDuration.scala b/src/main/scala/com/evolutiongaming/prometheus/ObserveDuration.scala index 6644ca2..324538d 100644 --- a/src/main/scala/com/evolutiongaming/prometheus/ObserveDuration.scala +++ b/src/main/scala/com/evolutiongaming/prometheus/ObserveDuration.scala @@ -51,8 +51,8 @@ object ObserveDuration { hasObserve.observe(observer, value) } - override def timeTillNowNanos[T](start: T)( - implicit numeric: Numeric[T] + override def timeTillNowNanos[T](start: T)(implicit + numeric: Numeric[T] ): Unit = { val value = duration(start, clock.nowNano) / Collector.NANOSECONDS_PER_SECOND hasObserve.observe(observer, value) diff --git a/version.sbt b/version.sbt index 8b9dd93..9937452 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -ThisBuild / version := "1.0.9-SNAPSHOT" +ThisBuild / version := "1.1.0-SNAPSHOT"