diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81bad513..bc684bcb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,11 +23,11 @@ jobs: ref: badges path: badges - - name: Set up JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' - name: Build with Maven run: mvn -B package -Pcoverage diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index ee3cab1f..42e6580f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -37,11 +37,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - name: Set up JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4fc8bca6..903cf11a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -25,11 +25,11 @@ jobs: ref: gh-pages path: gh-pages - - name: Set up JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' - name: Build docs with Maven run: mvn compile javadoc:javadoc diff --git a/.github/workflows/manual-deploy-github-only.yml b/.github/workflows/manual-deploy-github-only.yml index 2fdcb731..e79f39a1 100644 --- a/.github/workflows/manual-deploy-github-only.yml +++ b/.github/workflows/manual-deploy-github-only.yml @@ -18,11 +18,11 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up JDK 17 for deploy to github packages + - name: Set up JDK 25 for deploy to github packages uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' server-id: github - name: Build with Maven diff --git a/.github/workflows/manual-deploy.yml b/.github/workflows/manual-deploy.yml index 73c22a84..795db8a9 100644 --- a/.github/workflows/manual-deploy.yml +++ b/.github/workflows/manual-deploy.yml @@ -17,11 +17,11 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up JDK 17 + - name: Set up JDK 25 uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' server-id: github - name: Build with Maven diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml index c8cf40c9..a91e3845 100644 --- a/.github/workflows/maven-publish.yml +++ b/.github/workflows/maven-publish.yml @@ -19,11 +19,11 @@ jobs: id: get_version run: echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT - - name: Set up JDK 17 for deploy to Central + - name: Set up JDK 25 for deploy to Central uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_CENTRAL_TOKEN @@ -43,11 +43,11 @@ jobs: MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - - name: Set up JDK 17 for deploy to github packages + - name: Set up JDK 25 for deploy to github packages uses: actions/setup-java@v5 with: - distribution: 'adopt' - java-version: '17' + distribution: 'temurin' + java-version: '25' server-id: github - name: Publish to GitHub Packages Apache Maven diff --git a/CHANGELOG.md b/CHANGELOG.md index bc3b6877..05d7965e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] - 2025-10-05 +## [Unreleased] - 2026-07-07 + +__BREAKING CHANGES: Minimum supported Java is Java 25. Next version will be 7.0.0.__ ### Added @@ -18,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Refactored the internal classes associated with the hash-table implementation of Kendall Tau Sequence Distance, which were identified by RefactorFirst as highly-coupled. ### Dependencies +* Minimum supported Java bumped to Java 25 (breaking change). ### CI/CD diff --git a/README.md b/README.md index fdb35a0d..19c98b94 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![JavaPermutationTools - A Java library for computation on permutations and sequences](https://jpt.cicirello.org/images/jpt640.png)](#javapermutationtools-jpt-a-java-library-for-computation-on-permutations-and-sequences) -Copyright (C) 2018-2024 [Vincent A. Cicirello](https://www.cicirello.org/). +Copyright (C) 2018-2026 [Vincent A. Cicirello](https://www.cicirello.org/). Website: https://jpt.cicirello.org/ @@ -32,13 +32,14 @@ computation on permutations and sequences. It includes implementations of a vari of permutation distance metrics as well as distance metrics on sequences (i.e., Strings, arrays, and other ordered data types). -## Java 17+ +## Java 25+ -We currently support Java 17+. See the following table for mapping between library version +We currently support Java 25+. See the following table for mapping between library version and minimum supported Java version. | version | Java requirements | | --- | --- | +| 7.x.y | Java 25+ | | 4.w.x to 6.y.z | Java 17+ | | 3.x.y | Java 11+ | | 1.w.x to 2.y.z | Java 8+ | @@ -123,14 +124,14 @@ module your.module.name.here { ## Importing the Library from Maven Central -Add this to the dependencies section of your pom.xml, replacing the version number -with the version you want to use. +Add this to the dependencies section of your pom.xml, replacing the `x.y.z` with the +version number of the version that you want to use. ```XML org.cicirello jpt - 5.0.0 + x.y.z ``` diff --git a/pom.xml b/pom.xml index 89f933ae..c64d236e 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.cicirello jpt - 6-SNAPSHOT + 7-SNAPSHOT jar JavaPermutationTools @@ -30,7 +30,7 @@ repo JavaPermutationTools (JPT): A library for computation on permutations and sequences. - Copyright (C) 2005-2025 Vincent A. Cicirello. + Copyright (C) 2005-2026 Vincent A. Cicirello. JavaPermutationTools is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -219,7 +219,7 @@ UTF-8 - 17 + 25 @@ -229,7 +229,7 @@ maven-compiler-plugin 3.15.0 - 17 + 25 @@ -270,7 +270,7 @@ https://rho-mu.cicirello.org/api https://core.cicirello.org/api - Vincent A. Cicirello. All rights reserved.]]> + Vincent A. Cicirello. All rights reserved.]]> diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index d54b13b9..155dda3c 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -1,6 +1,6 @@ /* * JavaPermutationTools - A Java library for computation on permutations. - * Copyright 2005-2024 Vincent A. Cicirello, . + * Copyright 2005-2026 Vincent A. Cicirello, . * * JavaPermutationTools is free software: you can * redistribute it and/or modify it under the terms of the GNU @@ -24,7 +24,7 @@ * *

JavaPermutationTools - A Java library for computation on permutations

* - *

Copyright © 2005-2024 Vincent A. + *

Copyright © 2005-2026 Vincent A. * Cicirello. * *