Skip to content

in with GitHub Actions, out with Travis-CI #242

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 29, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: test
on:
push:
branches:
- main
pull_request:
jobs:
test:
strategy:
fail-fast: false
matrix:
java: [8, 11, 17]
scala: [2.11.12, 2.12.15, 2.13.6, 3.0.2]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: coursier/cache-action@v6
- uses: actions/setup-java@v2
with:
distribution: adopt
java-version: ${{matrix.java}}
- name: Test
run: sbt ++${{matrix.scala}} test headerCheck versionPolicyCheck package
21 changes: 21 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Release
on:
push:
tags: ["*"]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 8
- run: sbt versionCheck ci-release
env:
PGP_PASSPHRASE: ${{secrets.PGP_PASSPHRASE}}
PGP_SECRET: ${{secrets.PGP_SECRET}}
SONATYPE_PASSWORD: ${{secrets.SONATYPE_PASSWORD}}
SONATYPE_USERNAME: ${{secrets.SONATYPE_USERNAME}}
25 changes: 0 additions & 25 deletions .travis.yml

This file was deleted.

3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# scala-java8-compat [![Build Status](https://travis-ci.org/scala/scala-java8-compat.svg?branch=master)](https://travis-ci.org/scala/scala-java8-compat) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_2.11.svg?label=latest%20release%20for%202.11"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_2.11) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_2.12.svg?label=latest%20release%20for%202.12"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_2.12) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_2.13.svg?label=latest%20release%20for%202.13"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_2.13)

# scala-java8-compat [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_2.11.svg?label=latest%20release%20for%202.11"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_2.11) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_2.12.svg?label=latest%20release%20for%202.12"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_2.12) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_2.13.svg?label=latest%20release%20for%202.13"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_2.13) [<img src="https://img.shields.io/maven-central/v/org.scala-lang.modules/scala-java8-compat_3.svg?label=latest%20release%20for%203"/>](http://search.maven.org/#search%7Cga%7C1%7Cg%3Aorg.scala-lang.modules%20a%3Ascala-java8-compat_3)

A Java 8 compatibility kit for Scala 2.12 and 2.11.

Expand Down
4 changes: 2 additions & 2 deletions benchmark/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ val parseJmh = TaskKey[Unit]("parseJmh", "Parses JMH benchmark logs in results/j

lazy val root = (project in file(".")).settings(
name := "java8-compat-bench",
scalaVersion := "2.11.11",
crossScalaVersions := List("2.11.11" /* TODO, "2.12.0-M4"*/),
scalaVersion := "2.11.12",
crossScalaVersions := List("2.11.12" /* TODO, "2.12.0-M4"*/),
organization := "org.scala-lang.modules",
version := "0.6.0-SNAPSHOT",
unmanagedJars in Compile ++= Seq(baseDirectory.value / "../target/scala-2.11/scala-java8-compat_2.11-0.9.0-SNAPSHOT.jar"),
Expand Down
8 changes: 7 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@ def osgiExport(scalaVersion: String, version: String) = {
}) ++ Seq(s"scala.compat.java8.*;version=${version}")
}

// shouldn't be necessary anymore after https://github.com/lampepfl/dotty/pull/13498
// makes it into a release
ThisBuild / libraryDependencySchemes += "org.scala-lang" %% "scala3-library" % "semver-spec"

lazy val commonSettings = Seq(
crossScalaVersions := Seq("2.13.6", "2.12.15", "2.11.12", "3.0.2"),
scalaVersion := crossScalaVersions.value.head,
versionPolicyIntention := Compatibility.BinaryAndSourceCompatible,
Compile / unmanagedSourceDirectories ++= {
(Compile / unmanagedSourceDirectories).value.flatMap { dir =>
Expand Down Expand Up @@ -141,7 +147,7 @@ lazy val scalaJava8Compat = (project in file("."))
JavaDoc / packageDoc / artifactName := ((sv, mod, art) => "" + mod.name + "_" + sv.binary + "-" + mod.revision + "-javadoc.jar"),
libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((3, _)) => Seq()
case _ => Seq(compilerPlugin("com.typesafe.genjavadoc" % "genjavadoc-plugin" % "0.17" cross CrossVersion.full))
case _ => Seq(compilerPlugin("com.typesafe.genjavadoc" % "genjavadoc-plugin" % "0.18" cross CrossVersion.full))
}),
Compile / scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((3, _)) => Seq()
Expand Down
51 changes: 0 additions & 51 deletions build.sh

This file was deleted.

2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "2.4.0")
addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "3.0.0")
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/

package scala.compat.java8

package object collectionImpl {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/

package scala.compat.java8.converterImpl

import scala.collection.convert.StreamExtensions.AccumulatorFactoryInfo
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/

package scala.concurrent.java8

import scala.concurrent.ExecutionContext
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
/*
* Scala (https://www.scala-lang.org)
*
* Copyright EPFL and Lightbend, Inc.
*
* Licensed under Apache License 2.0
* (http://www.apache.org/licenses/LICENSE-2.0).
*
* See the NOTICE file distributed with this work for
* additional information regarding copyright ownership.
*/

package scala.concurrent.java8

import scala.concurrent.Future
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
package scala.compat.java8.runtime;

import org.junit.Assert;
import org.junit.Assume;
import org.junit.Test;

import java.io.Serializable;
Expand All @@ -26,26 +27,33 @@
public final class LambdaDeserializerTest {
private LambdaHost lambdaHost = new LambdaHost();

// We skip most tests on Java 17+ because of https://github.com/scala/bug/issues/12419
// which we only fixed for 2.12+

@Test
public void serializationPrivate() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F1<Boolean, String> f1 = lambdaHost.lambdaBackedByPrivateImplMethod();
Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true));
}

@Test
public void serializationStatic() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticImplMethod();
Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true));
}

@Test
public void serializationVirtualMethodReference() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F1<Boolean, String> f1 = lambdaHost.lambdaBackedByVirtualMethodReference();
Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true));
}

@Test
public void serializationInterfaceMethodReference() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F1<I, Object> f1 = lambdaHost.lambdaBackedByInterfaceMethodReference();
I i = new I() {
};
Expand All @@ -54,18 +62,21 @@ public void serializationInterfaceMethodReference() {

@Test
public void serializationStaticMethodReference() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticMethodReference();
Assert.assertEquals(f1.apply(true), reconstitute(f1).apply(true));
}

@Test
public void serializationNewInvokeSpecial() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F0<Object> f1 = lambdaHost.lambdaBackedByConstructorCall();
Assert.assertEquals(f1.apply(), reconstitute(f1).apply());
}

@Test
public void uncached() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
F0<Object> f1 = lambdaHost.lambdaBackedByConstructorCall();
F0<Object> reconstituted1 = reconstitute(f1);
F0<Object> reconstituted2 = reconstitute(f1);
Expand All @@ -74,6 +85,7 @@ public void uncached() {

@Test
public void cached() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
HashMap<String, MethodHandle> cache = new HashMap<>();
F0<Object> f1 = lambdaHost.lambdaBackedByConstructorCall();
F0<Object> reconstituted1 = reconstitute(f1, cache);
Expand All @@ -83,6 +95,7 @@ public void cached() {

@Test
public void cachedStatic() {
Assume.assumeFalse(scala.util.Properties.isJavaAtLeast("17"));
HashMap<String, MethodHandle> cache = new HashMap<>();
F1<Boolean, String> f1 = lambdaHost.lambdaBackedByStaticImplMethod();
// Check that deserialization of a static lambda always returns the
Expand Down