Skip to content

Commit

Permalink
Merge pull request #259 from armanbilge/update/sbt-typelevel-0.5.0-RC3
Browse files Browse the repository at this point in the history
Update to sbt-typelevel 0.5.0-RC3
  • Loading branch information
armanbilge authored Jun 27, 2023
2 parents f9ddefb + e3596be commit 3d1983e
Show file tree
Hide file tree
Showing 15 changed files with 113 additions and 141 deletions.
165 changes: 82 additions & 83 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,56 +15,42 @@ on:
tags: [v*]

env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


concurrency:
group: ${{ github.workflow }} @ ${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build and Test
strategy:
matrix:
os: [ubuntu-latest]
scala: [3.3.0]
scala: [3]
java: [temurin@17]
project: [rootJS, rootJVM]
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
id: setup-java-temurin-17
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
distribution: temurin
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

- name: Cache sbt
uses: actions/cache@v3
with:
path: |
~/.sbt
~/.ivy2/cache
~/.coursier/cache/v1
~/.cache/coursier/v1
~/AppData/Local/Coursier/Cache/v1
~/Library/Caches/Coursier/v1
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
- name: sbt update
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' reload +update

- name: Check that workflows are up to date
run: sbt githubWorkflowCheck
Expand All @@ -73,17 +59,17 @@ jobs:
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-latest'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' headerCheckAll scalafmtCheckAll 'project /' scalafmtSbtCheck

- name: Check scalafix lints
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-latest'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' 'scalafixAll --check'

- name: scalaJSLink
if: matrix.project == 'rootJS'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' Test/scalaJSLinkerResult

- name: Test
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' test

- name: Check scalafix lints
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-latest'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' 'scalafixAll --check'

- name: Check binary compatibility
if: matrix.java == 'temurin@17' && matrix.os == 'ubuntu-latest'
run: sbt 'project ${{ matrix.project }}' '++ ${{ matrix.scala }}' mimaReportBinaryIssues
Expand All @@ -98,11 +84,11 @@ jobs:

- name: Make target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/0.1')
run: mkdir -p frp/.js/target todo-mvc/target target unidocs/target .js/target site/target jsdocs/target .jvm/target .native/target sandbox/target frp/.jvm/target router/target calico/target project/target
run: mkdir -p frp/.js/target unidocs/target jsdocs/target frp/.jvm/target router/target calico/target project/target

- name: Compress target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/0.1')
run: tar cf targets.tar frp/.js/target todo-mvc/target target unidocs/target .js/target site/target jsdocs/target .jvm/target .native/target sandbox/target frp/.jvm/target router/target calico/target project/target
run: tar cf targets.tar frp/.js/target unidocs/target jsdocs/target frp/.jvm/target router/target calico/target project/target

- name: Upload target directories
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main' || github.ref == 'refs/heads/series/0.1')
Expand All @@ -126,68 +112,96 @@ jobs:
with:
fetch-depth: 0

- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
id: setup-java-temurin-17
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
distribution: temurin
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

- name: Cache sbt
uses: actions/cache@v3
with:
path: |
~/.sbt
~/.ivy2/cache
~/.coursier/cache/v1
~/.cache/coursier/v1
~/AppData/Local/Coursier/Cache/v1
~/Library/Caches/Coursier/v1
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}

- name: Download target directories (3.3.0, rootJS)
- name: sbt update
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt reload +update

- name: Download target directories (3, rootJS)
uses: actions/download-artifact@v3
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-3.3.0-rootJS
name: target-${{ matrix.os }}-${{ matrix.java }}-3-rootJS

- name: Inflate target directories (3.3.0, rootJS)
- name: Inflate target directories (3, rootJS)
run: |
tar xf targets.tar
rm targets.tar
- name: Download target directories (3.3.0, rootJVM)
- name: Download target directories (3, rootJVM)
uses: actions/download-artifact@v3
with:
name: target-${{ matrix.os }}-${{ matrix.java }}-3.3.0-rootJVM
name: target-${{ matrix.os }}-${{ matrix.java }}-3-rootJVM

- name: Inflate target directories (3.3.0, rootJVM)
- name: Inflate target directories (3, rootJVM)
run: |
tar xf targets.tar
rm targets.tar
- name: Import signing key
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == ''
env:
PGP_SECRET: ${{ secrets.PGP_SECRET }}
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
run: echo $PGP_SECRET | base64 -di | gpg --import

- name: Import signing key and strip passphrase
if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != ''
env:
PGP_SECRET: ${{ secrets.PGP_SECRET }}
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
run: |
echo "$PGP_SECRET" | base64 -di > /tmp/signing-key.gpg
echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg
(echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1)
- name: Publish
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }}
run: sbt tlCiRelease

dependency-submission:
name: Submit Dependencies
if: github.event_name != 'pull_request'
strategy:
matrix:
os: [ubuntu-latest]
java: [temurin@17]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout current branch (full)
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Setup Java (temurin@17)
id: setup-java-temurin-17
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: sbt

- name: sbt update
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt reload +update

- name: Submit Dependencies
uses: scalacenter/sbt-dependency-submission@v2
with:
modules-ignore: todoMvc root rootJS docs rootJVM rootNative sandbox
configs-ignore: test scala-tool scala-doc-tool

validate-steward:
name: Validate Steward Config
strategy:
Expand Down Expand Up @@ -217,40 +231,25 @@ jobs:
with:
fetch-depth: 0

- name: Download Java (temurin@17)
id: download-java-temurin-17
if: matrix.java == 'temurin@17'
uses: typelevel/download-java@v2
with:
distribution: temurin
java-version: 17

- name: Setup Java (temurin@17)
id: setup-java-temurin-17
if: matrix.java == 'temurin@17'
uses: actions/setup-java@v3
with:
distribution: jdkfile
distribution: temurin
java-version: 17
jdkFile: ${{ steps.download-java-temurin-17.outputs.jdkFile }}
cache: sbt

- name: Cache sbt
uses: actions/cache@v3
with:
path: |
~/.sbt
~/.ivy2/cache
~/.coursier/cache/v1
~/.cache/coursier/v1
~/AppData/Local/Coursier/Cache/v1
~/Library/Caches/Coursier/v1
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
- name: sbt update
if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false'
run: sbt reload +update

- name: Generate site
run: sbt docs/tlSite

- name: Publish site
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
uses: peaceiris/[email protected].0
uses: peaceiris/[email protected].3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: site/target/docs/site
Expand Down
34 changes: 21 additions & 13 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,8 @@ ThisBuild / tlSonatypeUseLegacyHost := false

ThisBuild / crossScalaVersions := Seq("3.3.0")
ThisBuild / scalacOptions ++= Seq("-new-syntax", "-indent", "-source:future")
ThisBuild / scalafixDependencies += "com.github.liancheng" %% "organize-imports" % "0.6.0"

ThisBuild / githubWorkflowJavaVersions := Seq(JavaSpec.temurin("17"))
ThisBuild / tlJdkRelease := Some(8)

val CatsVersion = "2.9.0"
val CatsEffectVersion = "3.5.1"
Expand Down Expand Up @@ -98,7 +96,8 @@ lazy val sandbox = project
libraryDependencies ++= Seq(
"org.http4s" %%% "http4s-dom" % Http4sDomVersion,
"dev.optics" %%% "monocle-macro" % MonocleVersion
)
),
scalacOptions ~= (_.filterNot(_.startsWith("-Wunused")))
)

lazy val todoMvc = project
Expand Down Expand Up @@ -138,6 +137,7 @@ lazy val unidocs = project

lazy val jsdocs = project
.settings(
scalacOptions ~= (_.filterNot(_.startsWith("-Wunused"))),
libraryDependencies ++= Seq(
"org.http4s" %%% "http4s-dom" % Http4sDomVersion,
"org.http4s" %%% "http4s-circe" % Http4sVersion
Expand All @@ -151,31 +151,39 @@ lazy val docs = project
.enablePlugins(TypelevelSitePlugin)
.settings(
tlSiteApiPackage := Some("calico"),
tlSiteIsTypelevelProject := Some(TypelevelProject.Affiliate),
mdocJS := Some(jsdocs),
laikaConfig ~= { _.withRawContent },
tlSiteHeliumConfig ~= {
tlSiteHelium ~= {
import laika.helium.config._
// Actually, this *disables* auto-linking, to avoid duplicates with mdoc
_.site.autoLinkJS()
_.site
.autoLinkJS()
.site
.mainNavigation(appendLinks = Seq(
ThemeNavigationSection(
"Related Projects",
TextLink.external("https://typelevel.org/cats-effect/", "Cats Effect"),
TextLink.external("https://fs2.io/", "FS2"),
TextLink.external("https://github.com/armanbilge/fs2-dom/", "fs2-dom"),
TextLink.external("https://http4s.github.io/http4s-dom/", "http4s-dom")
)
))
},
tlSiteRelatedProjects ++= Seq(
TypelevelProject.CatsEffect,
TypelevelProject.Fs2,
"fs2-dom" -> url("https://github.com/armanbilge/fs2-dom/"),
"http4s-dom" -> url("https://http4s.github.io/http4s-dom/")
),
laikaInputs := {
import laika.ast.Path.Root
import laika.io.model.FilePath
val jsArtifact = (todoMvc / Compile / fullOptJS / artifactPath).value
val sourcemap = jsArtifact.getName + ".map"
laikaInputs
.value
.delegate
.addFile(
jsArtifact,
FilePath.fromJavaFile(jsArtifact),
Root / "todomvc" / "index.js"
)
.addFile(
jsArtifact.toPath.resolveSibling(sourcemap).toFile,
FilePath.fromNioPath(jsArtifact.toPath.resolveSibling(sourcemap)),
Root / "todomvc" / sourcemap
)
},
Expand Down
1 change: 0 additions & 1 deletion calico/src/main/scala/calico/html/Children.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package calico
package html

import calico.syntax.*
import cats.Hash
import cats.effect.kernel.Async
import cats.effect.kernel.Ref
Expand Down
1 change: 0 additions & 1 deletion calico/src/main/scala/calico/html/DomHotswap.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ package html

import cats.effect.kernel.Concurrent
import cats.effect.kernel.Resource
import cats.effect.syntax.all.*
import cats.syntax.all.*

private abstract class DomHotswap[F[_], A]:
Expand Down
5 changes: 4 additions & 1 deletion calico/src/main/scala/calico/html/HtmlTag.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ import cats.effect.syntax.all.*
import cats.syntax.all.*
import org.scalajs.dom

final class HtmlTag[F[_], E] private[calico] (name: String, void: Boolean)(using F: Async[F]):
import scala.annotation.unused

final class HtmlTag[F[_], E] private[calico] (name: String, @unused void: Boolean)(
using F: Async[F]):

def apply[M](modifier: M)(using M: Modifier[F, E, M]): Resource[F, E] =
build.toResource.flatTap(M.modify(modifier, _))
Expand Down
Loading

0 comments on commit 3d1983e

Please sign in to comment.