diff --git a/.github/workflows/migrate.yml b/.github/workflows/migrate.yml index e00cccdc5..b9e9eb12a 100644 --- a/.github/workflows/migrate.yml +++ b/.github/workflows/migrate.yml @@ -11,11 +11,13 @@ jobs: environment: Production steps: - name: Checkout source code - uses: actions/checkout@v2 - - name: Set up JDK 11.0.11 - uses: actions/setup-java@v1 + uses: actions/checkout@v4 + - name: Set up the latest JDK 11 + uses: actions/setup-java@v4 with: - java-version: 11.0.11 + java-version: 11 + distribution: temurin + cache: gradle - name: Run production migration env: MONGO_HOST: ${{ secrets.MONGO_HOST }} @@ -23,4 +25,4 @@ jobs: MONGO_DATABASE: ${{ secrets.MONGO_DATABASE }} MONGO_USER: ${{ secrets.MONGO_USER }} MONGO_PASSWORD: ${{ secrets.MONGO_PASSWORD }} - run: ./gradlew clean run + run: ./gradlew run diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index a2a627ba7..e2b3b8f92 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -1,5 +1,6 @@ name: Pull Requests -on: pull_request_target +on: + pull_request: jobs: build: @@ -11,13 +12,15 @@ jobs: - 27017:27017 steps: - name: Checkout source code - uses: actions/checkout@v2 - - name: Set up JDK 11.0.11 - uses: actions/setup-java@v1 + uses: actions/checkout@v4 + - name: Set up the latest JDK 11 + uses: actions/setup-java@v4 with: - java-version: 11.0.11 + java-version: 11 + distribution: temurin + cache: gradle - name: Run local migration - run: ./gradlew clean run + run: ./gradlew run - uses: kentaro-m/auto-assign-action@v1.1.2 with: configuration-path: ".github/auto_assign.yml" diff --git a/.sdkmanrc b/.sdkmanrc index af44e2ac4..1aec4fce3 100644 --- a/.sdkmanrc +++ b/.sdkmanrc @@ -1 +1 @@ -java=11.0.16-tem +java=11.0.29-tem diff --git a/README.md b/README.md index 4a0d358e9..dfb72c0ce 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # SDKMAN Database Migrations -[![Build Status](https://travis-ci.org/sdkman/sdkman-db-migrations.svg?branch=master)](https://travis-ci.org/sdkman/sdkman-db-migrations) -[![Slack](https://slack.sdkman.io/badge.svg)](https://slack.sdkman.io) +[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/sdkman/sdkman-db-migrations/migrate.yml)](https://github.com/sdkman/sdkman-db-migrations/actions/workflows/migrate.yml) +[![Discord](https://img.shields.io/discord/1245471991117512754)](https://discord.gg/y9mVJYVyu4) This enables the users of SDKMAN to contribute new Installation Candidates and related Versions to be served by the API. @@ -141,7 +141,7 @@ be set to either `None` or a `Some`, in turn containing `AdoptOpenJDK`, `Amazon` ## Fast track -It is usually worth notifying us of the PR on [#cli-development](https://slack.sdkman.io) Slack chat in case we miss your PR. +It is usually worth notifying us of your PR on our Discord server's [#vendors](https://discord.gg/tgftp8dZVm) channel. ## Contributors diff --git a/src/main/scala/io/sdkman/changelogs/AntMigration.scala b/src/main/scala/io/sdkman/changelogs/AntMigration.scala index e6b51f443..57956aabd 100644 --- a/src/main/scala/io/sdkman/changelogs/AntMigration.scala +++ b/src/main/scala/io/sdkman/changelogs/AntMigration.scala @@ -6,15 +6,15 @@ import com.mongodb.client.MongoDatabase @ChangeLog(order = "032") class AntMigration { @ChangeSet( - order = "018", - id = "018-add_ant_1.10.13", - author = "aalmiray" + order = "019", + id = "019-add_ant_1.10.14", + author = "helpermethod" ) - def migration017(implicit db: MongoDatabase): Unit = { + def migration019(implicit db: MongoDatabase): Unit = { Version( "ant", - "1.10.13", - "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.13-bin.zip" + "1.10.14", + "https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.14-bin.zip" ).validate() .insert() .asCandidateDefault() diff --git a/src/main/scala/io/sdkman/changelogs/DetektMigrations.scala b/src/main/scala/io/sdkman/changelogs/DetektMigrations.scala new file mode 100644 index 000000000..2c4359c18 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/DetektMigrations.scala @@ -0,0 +1,24 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "079") +class DetektMigrations { + @ChangeSet( + order = "007", + id = "007_add_detect_1_23_7", + author = "helpermethod" + ) + def migration007(implicit db: MongoDatabase): Unit = { + val version = "1.23.7" + Version( + candidate = "detekt", + version = version, + url = + f"https://github.com/detekt/detekt/releases/download/v$version/detekt-cli-$version.zip" + ).validate() + .insert() + .asCandidateDefault() + } +} diff --git a/src/main/scala/io/sdkman/changelogs/FlinkMigrations.scala b/src/main/scala/io/sdkman/changelogs/FlinkMigrations.scala index 10251e68d..9e7cf284e 100644 --- a/src/main/scala/io/sdkman/changelogs/FlinkMigrations.scala +++ b/src/main/scala/io/sdkman/changelogs/FlinkMigrations.scala @@ -36,14 +36,14 @@ class FlinkMigrations { s"https://archive.apache.org/dist/flink/flink-$version/flink-$version-bin-scala_$scala.tgz" @ChangeSet( - order = "010", - id = "010-add_flink_1_17", - author = "sekikn" + order = "012", + id = "012-add_flink_1_19", + author = "ChethanUK" ) def migration010(implicit db: MongoDatabase) = { val flinkVersions = List( - "1.16.1", - "1.17.0" + "1.18.1", + "1.19.0" ) List("2.12") .flatMap { scalaVersion => @@ -53,6 +53,6 @@ class FlinkMigrations { } .validate() .insert() - setCandidateDefault("flink", "1.17.0") + setCandidateDefault("flink", "1.19.0") } } diff --git a/src/main/scala/io/sdkman/changelogs/GcnMigrations.scala b/src/main/scala/io/sdkman/changelogs/GcnMigrations.scala new file mode 100644 index 000000000..1751b3ccd --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/GcnMigrations.scala @@ -0,0 +1,56 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "081") +class GcnMigrations { + + @ChangeSet( + order = "001", + id = "001_add_gcn_candidate", + author = "ezzarghili" + ) + def migration001(implicit db: MongoDatabase): Candidate = { + Candidate( + candidate = "gcn", + name = "Graal Cloud Native", + description = + "Graal Cloud Native (GCN) is a curated set of Micronaut(tm) framework modules designed from the ground up to be compiled ahead-of-time with GraalVM Native image resulting in native executables ideal for microservices." + + "With GCN, You can build portable cloud-native Java microservices that start instantly and use fewer resources to reduce compute costs.", + websiteUrl = "https://www.graal.cloud/gcn/" + ).insert() + } + + @ChangeSet( + order = "002", + id = "002_add_gcn_candidate_3.8.5", + author = "ezzarghili" + ) + def migrate002(implicit db: MongoDatabase): Unit = { + val platforms = List( + (MacOSX, "macos-amd64", "tar.gz"), + (MacARM64, "macos-aarch64", "tar.gz"), + (Linux64, "linux-amd64", "tar.gz"), + (LinuxARM64, "linux-aarch64", "tar.gz"), + (Windows, "windows-amd64", "zip") + ) + val version = "3.8.5" + + platforms + .map { + case (platform, gcnPlatform, extension) => + Version( + candidate = "gcn", + version = version, + url = + s"https://github.com/oracle/gcn/releases/download/$version/gcn-cli-$version-$gcnPlatform.$extension", + platform = platform + ) + } + .validate() + .insert() + + setCandidateDefault("gcn", "3.8.5") + } +} diff --git a/src/main/scala/io/sdkman/changelogs/GraceMigrations.scala b/src/main/scala/io/sdkman/changelogs/GraceMigrations.scala new file mode 100644 index 000000000..373c686a0 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/GraceMigrations.scala @@ -0,0 +1,55 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase +import org.bson.Document + +@ChangeLog(order = "084") +class GraceMigrations { + + val CandidateName = "grace" + + @ChangeSet( + order = "001", + id = "001_add_grace_candidate", + author = "rainboyan" + ) + def migration001(implicit db: MongoDatabase): Candidate = { + Candidate( + candidate = CandidateName, + name = "Grace Framework", + description = + "Grace is a powerful open-source, One-Person web application Framework to help developers build Spring Boot applications rapidly using the Groovy programming language. Grace is a fork of Grails 5 that started development in early 2022.", + websiteUrl = "https://graceframework.org" + ).insert() + } + + @ChangeSet( + order = "002", + id = "002_add_new_grace_versions_and_update_default", + author = "rainboyan" + ) + def migration002(implicit db: MongoDatabase): Document = { + List( + "2022.0.0", + "2022.0.1", + "2022.0.2", + "2022.0.3", + "2022.0.4", + "2022.0.5", + "2022.1.0" + ).map( + version => + Version( + candidate = CandidateName, + version = version, + url = + s"https://github.com/graceframework/grace-framework/releases/download/v$version/grace-$version.zip" + ) + ) + .validate() + .insert() + setCandidateDefault(CandidateName, "2022.1.0") + } + +} diff --git a/src/main/scala/io/sdkman/changelogs/HadoopMigrations.scala b/src/main/scala/io/sdkman/changelogs/HadoopMigrations.scala index 7347c756b..598242182 100644 --- a/src/main/scala/io/sdkman/changelogs/HadoopMigrations.scala +++ b/src/main/scala/io/sdkman/changelogs/HadoopMigrations.scala @@ -23,15 +23,18 @@ class HadoopMigrations { ).insert() @ChangeSet( - order = "004", - id = "004-add_hadoop_3_3_5", - author = "sekikn" + order = "005", + id = "005-add_hadoop_3_4_1", + author = "noobzik" ) - def migration004(implicit db: MongoDatabase) = { + def migration005(implicit db: MongoDatabase) = { val hadoopVersions = List( "2.10.2", "3.2.4", - "3.3.5" + "3.3.5", + "3.3.6", + "3.4.0", + "3.4.1" ) hadoopVersions .map { version => @@ -39,7 +42,7 @@ class HadoopMigrations { } .validate() .insert() - setCandidateDefault("hadoop", "3.3.5") + setCandidateDefault("hadoop", "3.4.1") } private def hadoopVersion( diff --git a/src/main/scala/io/sdkman/changelogs/HscMigrations.scala b/src/main/scala/io/sdkman/changelogs/HscMigrations.scala new file mode 100644 index 000000000..d19036797 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/HscMigrations.scala @@ -0,0 +1,18 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "088") +class HscMigrations { + @ChangeSet(order = "001", id = "001_add_hsc_2_0_0_rc3", author = "ascheman") + def migration001(implicit db: MongoDatabase): Candidate = { + Candidate( + candidate = "hsc", + name = "HSC (HTML Sanity Check)", + description = + "HSC (HTML Sanity Check) is a fast and lightweight tool for checking HTML, links, and accessibility issues. It helps ensure clean, error-free web content and integrates seamlessly into CI/CD workflows.", + websiteUrl = "https://hsc.aim42.org/" + ).insert() + } +} diff --git a/src/main/scala/io/sdkman/changelogs/JExtractMigrations.scala b/src/main/scala/io/sdkman/changelogs/JExtractMigrations.scala new file mode 100644 index 000000000..2a93aa082 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/JExtractMigrations.scala @@ -0,0 +1,34 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "087") +class JExtractMigrations { + @ChangeSet( + order = "006", + id = "006_add-jextract-22.6", + author = "helpermethod" + ) + def migration005(implicit db: MongoDatabase): Unit = { + List( + (LinuxARM64, "linux-aarch64"), + (Linux64, "linux-x64"), + (MacARM64, "macos-aarch64"), + (MacOSX, "macos-x64"), + (Windows, "windows-x64") + ).foreach { + case (platform, platformIdentifier) => + Version( + candidate = "jextract", + version = "22.ea.6", + url = + s"https://download.java.net/java/early_access/jextract/22/6/openjdk-22-jextract+6-47_${platformIdentifier}_bin.tar.gz", + platform = platform + ).validate() + .insert() + } + + setCandidateDefault("jextract", "22.ea.6") + } +} diff --git a/src/main/scala/io/sdkman/changelogs/JMeterMigration.scala b/src/main/scala/io/sdkman/changelogs/JMeterMigration.scala index 422c6842b..99000ae84 100644 --- a/src/main/scala/io/sdkman/changelogs/JMeterMigration.scala +++ b/src/main/scala/io/sdkman/changelogs/JMeterMigration.scala @@ -2,10 +2,10 @@ package io.sdkman.changelogs import com.github.mongobee.changeset.{ChangeLog, ChangeSet} import com.mongodb.client.MongoDatabase -import org.bson.Document @ChangeLog(order = "051") class JMeterMigration { + val candidate = "jmeter" @ChangeSet( order = "001", @@ -14,7 +14,7 @@ class JMeterMigration { ) def migration001(implicit db: MongoDatabase): Candidate = { Candidate( - candidate = "jmeter", + candidate = candidate, name = "Apache JMeter", description = "The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.", @@ -23,20 +23,26 @@ class JMeterMigration { } @ChangeSet( - order = "005", - id = "005-add_5.5_jmeter_candidate", - author = "xshyamx" + order = "007", + id = "007-add_5.6.x_jmeter_candidate", + author = "jbriantais" ) - def migration005(implicit db: MongoDatabase): Unit = { - val version = "5.5" - Version( - candidate = "jmeter", - version = version, - url = - s"https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$version.zip" - ).validate() + def migration007(implicit db: MongoDatabase): Unit = { + List( + "5.6.1", + "5.6.2", + "5.6.3" + ).map( + version => + Version( + candidate = candidate, + version = version, + url = + s"https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-$version.zip" + ) + ) + .validate() .insert() - .asCandidateDefault() + setCandidateDefault(candidate, "5.6.3") } - } diff --git a/src/main/scala/io/sdkman/changelogs/JdkMissionControlMigrations.scala b/src/main/scala/io/sdkman/changelogs/JdkMissionControlMigrations.scala index fe3032b5e..b1e98f072 100644 --- a/src/main/scala/io/sdkman/changelogs/JdkMissionControlMigrations.scala +++ b/src/main/scala/io/sdkman/changelogs/JdkMissionControlMigrations.scala @@ -47,4 +47,66 @@ class JdkMissionControlMigrations { .validate() .insert() + @ChangeSet( + order = "003", + id = "003-add-latest-version-of-each-distribution", + author = "sciencesakura" + ) + def migrate003(implicit db: MongoDatabase): Unit = { + List( + ("adpt", Linux64, "org.openjdk.jmc-9.1.1-linux.gtk.x86_64.tar.gz"), + ("adpt", LinuxARM64, "org.openjdk.jmc-9.1.1-linux.gtk.aarch64.tar.gz"), + ("adpt", MacOSX, "org.openjdk.jmc-9.1.1-macosx.cocoa.x86_64.tar.gz"), + ("adpt", MacARM64, "org.openjdk.jmc-9.1.1-macosx.cocoa.aarch64.tar.gz"), + ("adpt", Windows, "org.openjdk.jmc-9.1.1-win32.win32.x86_64.zip"), + ("amzn", Linux64, "amazon-corretto-jmc-8.1.1.1-linux-x64.tar.gz"), + ("amzn", MacOSX, "amazon-corretto-jmc-8.1.1.1-mac-x64.tar.gz"), + ("amzn", Windows, "amazon-corretto-jmc-8.1.1.1-windows-x64.zip"), + ("librca", Linux64, "bellsoft-lmc8.3.0-linux-amd64.tar.gz"), + ("librca", MacOSX, "bellsoft-lmc8.3.0-macos-amd64.tar.gz"), + ("librca", MacARM64, "bellsoft-lmc8.3.0-macos-aarch64.tar.gz"), + ("librca", Windows, "bellsoft-lmc8.3.0-windows-amd64.zip"), + ("zulu", Linux64, "zmc9.1.1.35-ca-linux_x64.tar.gz"), + ("zulu", LinuxARM64, "zmc9.1.1.35-ca-linux_aarch64.tar.gz"), + ("zulu", MacOSX, "zmc9.1.1.35-ca-macos_x64.tar.gz"), + ("zulu", MacARM64, "zmc9.1.1.35-ca-macos_aarch64.tar.gz"), + ("zulu", Windows, "zmc9.1.1.35-ca-win_x64.zip") + ).map { + case ("adpt", platform, binary) => + Version( + "jmc", + "9.1.1-adpt", + s"https://github.com/adoptium/jmc-build/releases/download/9.1.1/$binary", + platform, + Some(AdoptOpenJDK) + ) + case ("amzn", platform, binary) => + Version( + "jmc", + "8.1.1.1-amzn", + s"https://corretto.aws/downloads/resources/jmc/8.1.1.1/$binary", + platform, + Some(Amazon) + ) + case ("librca", platform, binary) => + Version( + "jmc", + "8.3.0-librca", + s"https://download.bell-sw.com/lmc/8.3.0/$binary", + platform, + Some(Liberica) + ) + case ("zulu", platform, binary) => + Version( + "jmc", + "9.1.1-zulu", + s"https://cdn.azul.com/zmc/bin/$binary", + platform, + Some(Zulu) + ) + } + .validate() + .insert() + setCandidateDefault("jmc", "9.1.1-zulu") + } } diff --git a/src/main/scala/io/sdkman/changelogs/JekaMigrations.scala b/src/main/scala/io/sdkman/changelogs/JekaMigrations.scala new file mode 100644 index 000000000..59f2e84b0 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/JekaMigrations.scala @@ -0,0 +1,25 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "088") +class JekaMigrations { + + @ChangeSet( + order = "001", + id = "001_add_jeka_candidate", + author = "djeang" + ) + def migration001(implicit db: MongoDatabase): Candidate = { + Candidate( + candidate = "jeka", + name = "JeKa", + description = + """JeKa is a modern build tool for Java, designed to simplify and streamline your development experience. + |It reshapes Java application building for a generation of developers seeking lightweight, accessible, + |yet powerful solutions.""".stripMargin, + websiteUrl = "https://jeka.dev" + ).insert() + } +} diff --git a/src/main/scala/io/sdkman/changelogs/JettyMigrations.scala b/src/main/scala/io/sdkman/changelogs/JettyMigrations.scala new file mode 100644 index 000000000..0881af324 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/JettyMigrations.scala @@ -0,0 +1,33 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "086") +class JettyMigrations { + + @ChangeSet( + order = "005", + id = "005-update_jetty_versions", + author = "olamy" + ) + def migration005(implicit db: MongoDatabase) = { + List( + "10" -> "10.0.24", + "11" -> "11.0.24", + "12" -> "12.0.14" + ).map { + case (series: String, version: String) => + Version( + candidate = "jetty", + version = version, + url = + s"https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/$version/jetty-home-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("jetty", "12.0.14") + + } +} diff --git a/src/main/scala/io/sdkman/changelogs/JikkouMigrations.scala b/src/main/scala/io/sdkman/changelogs/JikkouMigrations.scala new file mode 100644 index 000000000..eeb4864df --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/JikkouMigrations.scala @@ -0,0 +1,23 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "083") +class JikkouMigrations { + + @ChangeSet( + order = "001", + id = "001_add_jikkou_candidate", + author = "fhussonnois" + ) + def migration001(implicit db: MongoDatabase) = + Candidate( + candidate = "jikkou", + name = "Jikkou", + description = + "Jikkou is a command-line client for efficient management, automation and provisioning of resources for Kafka, Schema Registry, etc. " + + "Inspired by kubectl and the Kubernetes resource definition files, it offers an intuitive, user-friendly approach to configuration management.", + websiteUrl = "https://streamthoughts.github.io/jikkou/" + ).insert() +} diff --git a/src/main/scala/io/sdkman/changelogs/JqaMigrations.scala b/src/main/scala/io/sdkman/changelogs/JqaMigrations.scala new file mode 100644 index 000000000..938fc80cc --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/JqaMigrations.scala @@ -0,0 +1,18 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "089") +class JqaMigrations { + @ChangeSet(order = "001", id = "001_add_jqa_2_6_0", author = "ascheman") + def migration001(implicit db: MongoDatabase): Candidate = { + Candidate( + candidate = "jqassistant", + name = "jQAssistant", + description = + "jQAssistant is an open-source tool for software analytics, enabling you to gain insights into your systems, verify design implementation, and create living documentation. By scanning code and configurations into a Neo4j graph database, it helps maintain software quality and bridge the gap between documentation and implementation.", + websiteUrl = "https://jqassistant.org" + ).insert() + } +} diff --git a/src/main/scala/io/sdkman/changelogs/KtlintMigrations.scala b/src/main/scala/io/sdkman/changelogs/KtlintMigrations.scala new file mode 100644 index 000000000..1473c481f --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/KtlintMigrations.scala @@ -0,0 +1,21 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "079") +class KtlintMigrations { + @ChangeSet( + order = "001", + id = "001_add_ktlint_candidate", + author = "eygraber" + ) + def migration001(implicit db: MongoDatabase) = + Candidate( + candidate = "ktlint", + name = "ktlint", + description = + "Ktlint is an anti-bikeshedding Kotlin linter with built-in formatter.", + websiteUrl = "https://github.com/pinterest/ktlint" + ).insert() +} diff --git a/src/main/scala/io/sdkman/changelogs/LiquibaseMigrations.scala b/src/main/scala/io/sdkman/changelogs/LiquibaseMigrations.scala new file mode 100644 index 000000000..a7b460428 --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/LiquibaseMigrations.scala @@ -0,0 +1,19 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "085") +class LiquibaseMigrations { + @ChangeSet(order = "001", id = "001_add_liquibase", author = "jandroav") + def migration001(implicit db: MongoDatabase) = { + Candidate( + candidate = "liquibase", + name = "Liquibase", + description = + "Liquibase is an open-source database-independent library for tracking, managing and applying database schema changes.", + websiteUrl = "https://liquibase.com/", + distribution = "UNIVERSAL" + ).insert() + } +} diff --git a/src/main/scala/io/sdkman/changelogs/MavenMigration.scala b/src/main/scala/io/sdkman/changelogs/MavenMigration.scala index 1ecec2151..4ce862ed7 100644 --- a/src/main/scala/io/sdkman/changelogs/MavenMigration.scala +++ b/src/main/scala/io/sdkman/changelogs/MavenMigration.scala @@ -6,18 +6,15 @@ import com.mongodb.client.MongoDatabase @ChangeLog(order = "013") class MavenMigration { @ChangeSet( - order = "027", - id = "027-add_maven_3.9.1", - author = "aalmiray" + order = "046", + id = "046-maven-4.0.0-rc-4", + author = "hho" ) - def migration027(implicit db: MongoDatabase): Unit = { - removeVersion("maven", "3.9.1") + def migration046(implicit db: MongoDatabase): Unit = Version( "maven", - "3.9.1", - "https://dlcdn.apache.org/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.zip" + "4.0.0-rc-4", + "https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/4.0.0-rc-4/apache-maven-4.0.0-rc-4-bin.zip" ).validate() .insert() - .asCandidateDefault() - } } diff --git a/src/main/scala/io/sdkman/changelogs/SparkMigrations.scala b/src/main/scala/io/sdkman/changelogs/SparkMigrations.scala index 510d213c2..50a588542 100644 --- a/src/main/scala/io/sdkman/changelogs/SparkMigrations.scala +++ b/src/main/scala/io/sdkman/changelogs/SparkMigrations.scala @@ -2,35 +2,43 @@ package io.sdkman.changelogs import com.github.mongobee.changeset.{ChangeLog, ChangeSet} import com.mongodb.client.MongoDatabase +import org.bson.Document @ChangeLog(order = "007") class SparkMigrations { - @ChangeSet( - order = "023", - id = "023-add_spark_3.2.3", - author = "sekikn" - ) - def migration023(implicit db: MongoDatabase) = { - Version( - "spark", - "3.2.3", - "https://archive.apache.org/dist/spark/spark-3.2.3/spark-3.2.3-bin-hadoop3.2.tgz" - ).validate() - .insert() - } @ChangeSet( - order = "024", - id = "024-add_spark_3.3.2", - author = "sekikn" + order = "030", + id = "030-latest-spark-versions", + author = "noobzik" ) - def migration024(implicit db: MongoDatabase) = { - Version( - "spark", - "3.3.2", - "https://archive.apache.org/dist/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz" - ).validate() - .insert() - .asCandidateDefault() + def migration030(implicit db: MongoDatabase): Document = { + Map( + "2.2.2" -> "hadoop2.7", + "2.2.3" -> "hadoop2.7", + "2.3.4" -> "hadoop2.7", + "2.4.8" -> "hadoop2.7", + "3.0.3" -> "hadoop3.2", + "3.1.3" -> "hadoop3.2", + "3.2.4" -> "hadoop3.2", + "3.3.3" -> "hadoop3", + "3.3.4" -> "hadoop3", + "3.4.2" -> "hadoop3", + "3.4.3" -> "hadoop3", + "3.5.1" -> "hadoop3", + "3.5.2" -> "hadoop3", + "3.5.3" -> "hadoop3", + "4.0.0-preview1" -> "hadoop3", + "4.0.0-preview2" -> "hadoop3" + ).foreach { + case (version, distribution) => + Version( + candidate = "spark", + version = version, + url = + s"https://archive.apache.org/dist/spark/spark-$version/spark-$version-bin-$distribution.tgz" + ).validate().insert() + } + setCandidateDefault("spark", "3.5.3") } } diff --git a/src/main/scala/io/sdkman/changelogs/TomcatMigration.scala b/src/main/scala/io/sdkman/changelogs/TomcatMigration.scala index 7168ab07b..a9309d598 100644 --- a/src/main/scala/io/sdkman/changelogs/TomcatMigration.scala +++ b/src/main/scala/io/sdkman/changelogs/TomcatMigration.scala @@ -7,17 +7,156 @@ import org.bson.Document @ChangeLog(order = "038") class TomcatMigration { @ChangeSet( - order = "007", - id = "007-add_correct_tomcat_urls", - author = "marc0der" + order = "012", + id = "012-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration012(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M5") + + List( + "8" -> "8.5.89", + "9" -> "9.0.75", + "10" -> "10.1.9", + "11" -> "11.0.0-M6" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "10.1.9") + } + + @ChangeSet( + order = "013", + id = "013-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration013(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M6") + + List( + "8" -> "8.5.90", + "9" -> "9.0.76", + "10" -> "10.1.10", + "11" -> "11.0.0-M7" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "10.1.10") + } + + @ChangeSet( + order = "014", + id = "014-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration014(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M7") + + List( + "8" -> "8.5.91", + "8" -> "8.5.92", + "9" -> "9.0.78", + "9" -> "9.0.79", + "10" -> "10.1.11", + "10" -> "10.1.12", + "11" -> "11.0.0-M10" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "10.1.12") + } + + @ChangeSet( + order = "015", + id = "015-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration015(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M10") + + List( + "8" -> "8.5.94", + "9" -> "9.0.81", + "10" -> "10.1.14", + "11" -> "11.0.0-M12" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "10.1.14") + } + + @ChangeSet( + order = "016", + id = "016-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration016(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M12") + + List( + "8" -> "8.5.100", + "9" -> "9.0.88", + "10" -> "10.1.20", + "11" -> "11.0.0-M19" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "10.1.14") + } + + @ChangeSet( + order = "017", + id = "017-update_tomcat_versions", + author = "stefanpenndorf" ) - def migration007(implicit db: MongoDatabase): Document = { - removeAllVersions("tomcat") + def migration017(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M19") + removeVersion("tomcat", "8.5.100") // Tomcat 8.5 EOL on March, 31st 2024 + List( - "7" -> "7.0.106", - "8" -> "8.5.60", - "9" -> "9.0.40", - "10" -> "10.0.0-M10" + "9" -> "9.0.95", + "10" -> "10.1.30", + "11" -> "11.0.0-M26" ).map { case (series: String, version: String) => Version( @@ -29,21 +168,21 @@ class TomcatMigration { } .validate() .insert() - setCandidateDefault("tomcat", "9.0.40") + setCandidateDefault("tomcat", "10.1.30") } @ChangeSet( - order = "008", - id = "008-update_tomcat_versions", - author = "ahmadshalabi" + order = "018", + id = "018-update_tomcat_versions", + author = "kartikvarma" ) - def migration008(implicit db: MongoDatabase): Document = { + def migration018(implicit db: MongoDatabase): Document = { + removeVersion("tomcat", "11.0.0-M26") + List( - "7" -> "7.0.109", - "8" -> "8.5.73", - "9" -> "9.0.56", - "10" -> "10.0.14", - "10" -> "10.1.0-M8" + "9" -> "9.0.96", + "10" -> "10.1.31", + "11" -> "11.0.0" ).map { case (series: String, version: String) => Version( @@ -55,42 +194,91 @@ class TomcatMigration { } .validate() .insert() - setCandidateDefault("tomcat", "10.0.14") + setCandidateDefault("tomcat", "11.0.0") } @ChangeSet( - order = "009", - id = "009-add_tomcat_10.0.22", - author = "helpermethod" + order = "019", + id = "019-update_tomcat_versions", + author = "stefanpenndorf" ) - def migration009(implicit db: MongoDatabase) = - Version( - candidate = "tomcat", - version = "10.0.22", - url = - "https://archive.apache.org/dist/tomcat/tomcat-10/v10.0.22/bin/apache-tomcat-10.0.22.zip" - ).validate() + def migration019(implicit db: MongoDatabase): Document = { + List( + "9" -> "9.0.100", + "10" -> "10.1.36", + "11" -> "11.0.4" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() .insert() - .asCandidateDefault() + setCandidateDefault("tomcat", "11.0.4") + } @ChangeSet( - order = "010", - id = "010-update_tomcat_versions", + order = "020", + id = "020-update_tomcat_versions", author = "stefanpenndorf" ) - def migration010(implicit db: MongoDatabase): Document = { - removeVersion("tomcat", "10.0.0-M10") - removeVersion("tomcat", "10.1.0-M8") + def migration020(implicit db: MongoDatabase): Document = { + List( + "9" -> "9.0.102", + "10" -> "10.1.39", + "11" -> "11.0.5" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "11.0.5") + } + + @ChangeSet( + order = "021", + id = "021-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration021(implicit db: MongoDatabase): Document = { + List( + "9" -> "9.0.104", + "10" -> "10.1.40", + "11" -> "11.0.6" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "11.0.6") + } + @ChangeSet( + order = "022", + id = "022-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration022(implicit db: MongoDatabase): Document = { List( - "8" -> "8.5.86", - "8" -> "8.5.87", - "9" -> "9.0.65", - "9" -> "9.0.72", - "9" -> "9.0.73", - "10" -> "10.1.6", - "10" -> "10.1.7", - "11" -> "11.0.0-M3" + "9" -> "9.0.105", + "10" -> "10.1.41", + "11" -> "11.0.7" ).map { case (series: String, version: String) => Version( @@ -102,22 +290,66 @@ class TomcatMigration { } .validate() .insert() - setCandidateDefault("tomcat", "10.1.7") + setCandidateDefault("tomcat", "11.0.7") } @ChangeSet( - order = "011", - id = "011-update_tomcat_versions", + order = "023", + id = "023-update_tomcat_versions", author = "stefanpenndorf" ) - def migration011(implicit db: MongoDatabase): Document = { - removeVersion("tomcat", "11.0.0-M3") + def migration023(implicit db: MongoDatabase): Document = { + List( + "9" -> "9.0.108", + "10" -> "10.1.44", + "11" -> "11.0.10" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "11.0.10") + } + @ChangeSet( + order = "024", + id = "024-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration024(implicit db: MongoDatabase): Document = { + List( + "9" -> "9.0.109", + "10" -> "10.1.46", + "11" -> "11.0.11" + ).map { + case (series: String, version: String) => + Version( + candidate = "tomcat", + version = version, + url = + s"https://archive.apache.org/dist/tomcat/tomcat-$series/v$version/bin/apache-tomcat-$version.zip" + ) + } + .validate() + .insert() + setCandidateDefault("tomcat", "11.0.11") + } + @ChangeSet( + order = "025", + id = "025-update_tomcat_versions", + author = "stefanpenndorf" + ) + def migration025(implicit db: MongoDatabase): Document = { List( - "8" -> "8.5.88", - "9" -> "9.0.74", - "10" -> "10.1.8", - "11" -> "11.0.0-M5" + "9" -> "9.0.112", + "10" -> "10.1.49", + "11" -> "11.0.14" ).map { case (series: String, version: String) => Version( @@ -129,6 +361,7 @@ class TomcatMigration { } .validate() .insert() - setCandidateDefault("tomcat", "10.1.8") + setCandidateDefault("tomcat", "11.0.14") } + } diff --git a/src/main/scala/io/sdkman/changelogs/TornadoVMCandidateMigration.scala b/src/main/scala/io/sdkman/changelogs/TornadoVMCandidateMigration.scala new file mode 100644 index 000000000..d46121f2a --- /dev/null +++ b/src/main/scala/io/sdkman/changelogs/TornadoVMCandidateMigration.scala @@ -0,0 +1,24 @@ +package io.sdkman.changelogs + +import com.github.mongobee.changeset.{ChangeLog, ChangeSet} +import com.mongodb.client.MongoDatabase + +@ChangeLog(order = "050") +class TornadoVMMigrations { + + @ChangeSet( + order = "001", + id = "001_add_tornadovm_candidate", + author = "stratika" + ) + def migration001(implicit db: MongoDatabase) = { + Candidate( + candidate = "tornadovm", + name = "TornadoVM", + description = + "TornadoVM is a plug-in to OpenJDK and GraalVM that allows Java programmers to automatically run on heterogeneous hardware (GPUs, FPGAs, multi-core CPUs).", + websiteUrl = "https://www.tornadovm.org/", + distribution = "PLATFORM_SPECIFIC" + ).insert() + } +} diff --git a/src/main/scala/io/sdkman/changelogs/VisualVmMigrations.scala b/src/main/scala/io/sdkman/changelogs/VisualVmMigrations.scala index 8496947eb..e048cf42d 100644 --- a/src/main/scala/io/sdkman/changelogs/VisualVmMigrations.scala +++ b/src/main/scala/io/sdkman/changelogs/VisualVmMigrations.scala @@ -6,15 +6,15 @@ import com.mongodb.client.MongoDatabase @ChangeLog(order = "009") class VisualVmMigrations { @ChangeSet( - order = "017", - id = "017-add_visualvm_2_1_6", - author = "eddumelendez" + order = "022", + id = "022-add_visualvm_2_2", + author = "arixmkii" ) - def migration(implicit db: MongoDatabase): Unit = { + def migration022(implicit db: MongoDatabase): Unit = { Version( "visualvm", - "2.1.6", - "https://github.com/oracle/visualvm/releases/download/2.1.6/visualvm_216.zip" + "2.2", + "https://github.com/oracle/visualvm/releases/download/2.2/visualvm_22.zip" ).validate() .insert() .asCandidateDefault() diff --git a/src/main/scala/io/sdkman/changelogs/package.scala b/src/main/scala/io/sdkman/changelogs/package.scala index 235d8c53f..3fdca8dd9 100644 --- a/src/main/scala/io/sdkman/changelogs/package.scala +++ b/src/main/scala/io/sdkman/changelogs/package.scala @@ -166,6 +166,10 @@ package object changelogs { override val id = "MAC_OSX" } + case object MacARM64 extends Platform { + override val id = "MAC_ARM64" + } + case object Windows extends Platform { override val id = "WINDOWS_64" }