Skip to content
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

Upgrade to Play v2.9, Scala 2.13, Java 11 #349

Merged
merged 7 commits into from Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 4 additions & 10 deletions .github/workflows/ci.yml
Expand Up @@ -24,17 +24,11 @@ jobs:
aws-region: eu-west-1
- uses: guardian/actions-setup-node@v2.4.1
- name: Set up JDK
uses: actions/setup-java@v2
uses: actions/setup-java@v4
with:
java-version: 8
distribution: adopt
- name: Cache SBT
uses: actions/cache@v2
with:
path: |
~/.ivy2/cache
~/.sbt
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }}
Comment on lines -31 to -37
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The setup-java GHA now has built-in support for sbt caching (added with actions/setup-java#302) so we don't need to try to provide our own definition for caching sbt resources.

distribution: corretto
java-version: 17
cache: sbt
- name: CI yarn
shell: bash
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -8,3 +8,4 @@ node_modules/
public/build
ensime-langserver.log
pc.stdout.log
.bsp/
1 change: 0 additions & 1 deletion .java-version

This file was deleted.

1 change: 1 addition & 0 deletions .tool-versions
@@ -0,0 +1 @@
java corretto-11.0.22.7.1
13 changes: 9 additions & 4 deletions README.md
Expand Up @@ -9,10 +9,15 @@ for both the composer and capi AWS accounts from [janus](https://janus.gutools.c

This project requires Node, so we recommend you use [node version manager](https://github.com/nvm-sh/nvm) `nvm`. Run `brew install nvm` if you do not have it. Run `nvm use` in the root of the project to ensure you are using the right version of node. The project's node version is set in the `.nvmrc` file.

The project also requires Java version `1.8.0.232` (or lower). The easiest way to set this is with `jenv`:
- `brew install jenv`
- Download and install the appopriate Java version: [jdk8u232-b09](https://adoptopenjdk.net/archive.html)
- `jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/`
The project also requires Java 11. The [easiest](https://docs.google.com/document/d/1ZR-YnaXCT5_gLVmTCeGs0mWd3KPaAozPjQK8uUzHZ9w/edit#heading=h.kgqqi53p3ltt)
way to install this is with `asdf install`, which will install the version of `java` specified in our
[.tool-versions](.tool-versions) file:
Comment on lines -12 to +14
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm dropping jenv here in favour of asdf, as that's what DevX currently recommend. Consequently, .java-version becomes .tool-versions and changes format slightly.


```shell
$ brew install asdf
$ asdf plugin add java
$ asdf install
```

You will then need to:

Expand Down
2 changes: 1 addition & 1 deletion app/AppLoader.scala
Expand Up @@ -26,7 +26,7 @@ class AppLoader extends ApplicationLoader {
FileConfigurationLocation(new File(s"$home/.gu/$appName.conf"))
}

new AppComponents(context.copy(initialConfiguration = context.initialConfiguration ++ Configuration(loadedConfig)), identity).application
new AppComponents(context.copy(initialConfiguration = context.initialConfiguration.withFallback(Configuration(loadedConfig))), identity).application
}

private def startLogging(context: Context): Unit = {
Expand Down
2 changes: 1 addition & 1 deletion build.sbt
Expand Up @@ -3,7 +3,7 @@ import Dependencies._
name := "atom-workshop"
version := "1.0"

scalaVersion := "2.12.16"
scalaVersion := "2.13.12"

libraryDependencies ++= dependencies

Expand Down
6 changes: 3 additions & 3 deletions project/Dependencies.scala
Expand Up @@ -3,7 +3,7 @@ import sbt._

object Dependencies {
lazy val awsVersion = "1.11.678"
lazy val atomLibVersion = "1.4.0"
lazy val atomLibVersion = "2.0.0-PREVIEW.fix-tests-under-java-17.2024-01-18T1039.b4d55b3d"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a preview build provided of guardian/atom-maker#94, which adds support for Play 2.9 - once that PR is merged, we should update this PR to use the final 2.0.0 version, but in the mean time this is good for trying out the changes.

lazy val jacksonVersion = "2.13.4"
lazy val jacksonDatabindVersion = "2.13.4.2"

Expand All @@ -30,9 +30,9 @@ object Dependencies {
"com.amazonaws" % "aws-java-sdk-kinesis" % awsVersion,
"com.gu" %% "atom-manager-play" % atomLibVersion,
"com.gu" %% "atom-publisher-lib" % atomLibVersion,
"com.gu" %% "editorial-permissions-client" % "2.0",
"com.gu" %% "editorial-permissions-client" % "2.14",
"com.gu" %% "simple-configuration-ssm" % "1.5.6",
"com.gu" %% "fezziwig" % "1.2",
"com.gu" %% "fezziwig" % "1.6",
"com.gu" %% "pan-domain-auth-play_2-8" % "1.2.0",
"io.circe" %% "circe-parser" % "0.14.5",
"net.logstash.logback" % "logstash-logback-encoder" % "6.6",
Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
@@ -1 +1 @@
sbt.version=1.8.0
sbt.version=1.9.8
2 changes: 1 addition & 1 deletion project/plugins.sbt
Expand Up @@ -2,7 +2,7 @@ logLevel := Level.Warn

libraryDependencies += "org.vafer" % "jdeb" % "1.6" artifacts Artifact("jdeb", "jar", "jar")

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.8")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.9.1")

addSbtPlugin("com.gu" % "sbt-riffraff-artifact" % "1.1.18")

Expand Down
2 changes: 1 addition & 1 deletion riff-raff.yaml
Expand Up @@ -12,7 +12,7 @@ deployments:
parameters:
amiTags:
BuiltBy: amigo
Recipe: editorial-tools-focal-java8-ARM-WITH-cdk-base
Recipe: editorial-tools-focal-java11-ARM-WITH-cdk-base
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here we're changing AMIgo recipes, from:

editorial-tools-focal-java8-ARM-WITH-cdk-base

...to:

editorial-tools-focal-java11-ARM-WITH-cdk-base

The newer recipe already exists, and is in use for Composer, editorial feeds, etc.

AmigoStage: PROD
amiEncrypted: true
amiParameter: ImageId