diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index f6e0ff0..927a3f4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -66,7 +66,7 @@ body: id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/CS203_DSAA_template_java/blob/master/.github/code_of_conduct.md) + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/algorithm-template-java/blob/master/.github/code_of_conduct.md) options: - label: I agree to follow this project's Code of Conduct - required: true \ No newline at end of file + required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index c7d160f..3e2892f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -40,7 +40,7 @@ body: id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/CS203_DSAA_template_java/blob/master/.github/code_of_conduct.md) + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/Certseeds/algorithm-template-java/blob/master/.github/code_of_conduct.md) options: - label: I agree to follow this project's Code of Conduct required: true diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 2bef892..52c671d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,4 +1,4 @@ -# @Github: https://github.com/Certseeds/CS203_DSAA_template_java +# @Github: https://github.com/Certseeds/algorithm-template-java # @Organization: SUSTech # @Author: nanoseeds # @Date: 2020-07-28 22:43:03 @@ -18,18 +18,18 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ ubuntu-22.04, ubuntu-latest ,windows-latest ] + os: [ ubuntu-latest ,windows-latest ] steps: - name: checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v5 # The Java version to make available on the path. Takes a whole or semver Java version, # or 1.x syntax (e.g. 1.8 => Java 8.x). # Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28 - name: Setup Java JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: - java-version: 11 + java-version: 21 distribution: 'temurin' cache: 'maven' @@ -37,12 +37,7 @@ jobs: run: javac -version; java -version - name: windows clean build test - if: ${{ runner.os == 'windows' }} - run: ./mvnw.cmd clean compile test - - - name: unix-like clean build test - if: ${{ runner.os != 'windows' }} - run: chmod +x ./mvnw.sh && ./mvnw.sh clean compile test + run: mvn clean compile test # This workflow contains a single job called "build" build: @@ -56,19 +51,19 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v5 # ensure the path and files of project - name: ensure the path and files of project run: sudo apt install tree; tree - name: Setup Java JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: # The Java version to make available on the path. Takes a whole or semver Java version, #or 1.x syntax (e.g. 1.8 => Java 8.x). # Early access versions can be specified in the form of e.g. 14-ea, 14.0.0-ea, or 14.0.0-ea.28 - java-version: 11 + java-version: 21 distribution: 'temurin' cache: 'maven' @@ -76,23 +71,15 @@ jobs: # working-directory: ./script # run: javac ./file_producer.java; java file_producer - - name: zip the packet - working-directory: ./../ - run: | - zip -r script_no_need.zip ./CS203_DSAA_template_java -x "*/.git/*" - mv ./script_no_need.zip ./CS203_DSAA_template_java/script_no_need.zip - - - name: unzip the packet - run: | - unzip ./script_no_need.zip - mkdir temp - mv ./CS203_DSAA_template_java ./temp/CS203_DSAA_template_java - mv ./temp ./CS203_DSAA_template_java - - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: script_no_need - path: CS203_DSAA_template_java + path: | + ./** + !.git/** + !**/.git/** + if-no-files-found: error + # 压缩只执行一次(由 upload-artifact 完成);无需预先 zip # Runs a set of commands using the runners shell - name: tree diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2daa377..4a38a1b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -# @Github: https://github.com/Certseeds/CS203_DSAA_template_java +# @Github: https://github.com/Certseeds/algorithm-template-java # @Organization: SUSTech # @Author: nanoseeds # @Date: 2020-07-28 22:43:03 @@ -23,28 +23,27 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ ubuntu-22.04, ubuntu-latest ] + os: [ ubuntu-latest ] # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v5 - name: Setup Java JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: - java-version: 11 + java-version: 21 distribution: 'temurin' cache: 'maven' - name: unix-like clean build test - if: ${{ runner.os != 'windows' }} - run: chmod +x ./mvnw.sh && ./mvnw.sh clean compile test + run: mvn clean compile test # This workflow contains a single job called "build" build: name: publish release - if: github.repository == 'Certseeds/CS203_DSAA_template_java' + if: github.repository == 'Certseeds/algorithm-template-java' needs: test runs-on: ubuntu-latest @@ -52,12 +51,12 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v5 - name: Setup Java JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: - java-version: 11 + java-version: 21 distribution: 'temurin' cache: 'maven' @@ -88,7 +87,7 @@ jobs: working-directory: ./../ run: | echo $(pwd) - zip -r script_no_need.zip ./CS203_DSAA_template_java -x "*/.git/*" + zip -r script_no_need.zip ./algorithm-template-java -x "*/.git/*" echo $(pwd) - name: release @@ -104,7 +103,7 @@ jobs: release-branch: name: publish release-branch - if: github.repository == 'Certseeds/CS203_DSAA_template_java' + if: github.repository == 'Certseeds/algorithm-template-java' needs: [ test, build ] # The type of runner that the job will run on runs-on: ubuntu-latest @@ -113,7 +112,7 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v5 - name: Branch name id: branch_name diff --git a/.husky/.gitattributes b/.husky/.gitattributes deleted file mode 100644 index a6a1321..0000000 --- a/.husky/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -pre-commit text eol=lf diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index d7749d9..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -set -euox pipefail -main() { - ./mvnw.sh clean - ./mvnw.sh compile - ./mvnw.sh test - sleep 1 - git add . -} -main diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 8116ec8..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.xml -misc.xml -workspace.xml -compiler.xml -encodings.xml -!vcs.xml -!.gitignore diff --git a/.idea/codeStyles/.gitignore b/.idea/codeStyles/.gitignore deleted file mode 100644 index 6ab90f2..0000000 --- a/.idea/codeStyles/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -!codeStyleConfig.xml -!Project.xml \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 52cec35..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123..0000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.mvn/wrapper/.gitignore b/.mvn/wrapper/.gitignore deleted file mode 100644 index a98d8b6..0000000 --- a/.mvn/wrapper/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -maven-wrapper.jar -!maven-wrapper.properties -!MavenWrapperDownloader.java -!README.md \ No newline at end of file diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100644 index 01b9aa5..0000000 --- a/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,127 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// come from https://raw.githubusercontent.com/apache/maven-wrapper/master/maven-wrapper-distribution/src/resources/mvn/wrapper/MavenWrapperDownloader.java - -import java.io.IOException; -import java.io.InputStream; -import java.net.Authenticator; -import java.net.PasswordAuthentication; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.LinkOption; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; -import java.nio.file.StandardOpenOption; -import java.util.Properties; - -public final class MavenWrapperDownloader { - private static final String WRAPPER_VERSION = "@@project.version@@"; - - private static final boolean VERBOSE = Boolean.parseBoolean(System.getenv("MVNW_VERBOSE")); - - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = - "https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/" + WRAPPER_VERSION - + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to use instead of the - * default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String[] args) { - if (args.length == 0) { - System.err.println(" - ERROR projectBasedir parameter missing"); - System.exit(1); - } - - log(" - Downloader started"); - final String dir = args[0].replace("..", ""); // Sanitize path - final Path projectBasedir = Paths.get(dir).toAbsolutePath().normalize(); - if (!Files.isDirectory(projectBasedir, LinkOption.NOFOLLOW_LINKS)) { - System.err.println(" - ERROR projectBasedir not exists: " + projectBasedir); - System.exit(1); - } - - log(" - Using base directory: " + projectBasedir); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - Path mavenWrapperPropertyFile = projectBasedir.resolve(MAVEN_WRAPPER_PROPERTIES_PATH); - String url = readWrapperUrl(mavenWrapperPropertyFile); - - try { - Path outputFile = projectBasedir.resolve(MAVEN_WRAPPER_JAR_PATH); - createDirectories(outputFile.getParent()); - downloadFileFromURL(url, outputFile); - log("Done"); - System.exit(0); - } catch (IOException e) { - System.err.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, Path destination) throws IOException { - log(" - Downloading to: " + destination); - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - final String username = System.getenv("MVNW_USERNAME"); - final char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); - } - }); - } - URL website = new URL(urlString); - try (InputStream inStream = website.openStream()) { - Files.copy(inStream, destination, StandardCopyOption.REPLACE_EXISTING); - } - log(" - Downloader complete"); - } - - private static void createDirectories(Path outputPath) throws IOException { - if (!Files.isDirectory(outputPath, LinkOption.NOFOLLOW_LINKS)) { - Path createDirectories = Files.createDirectories(outputPath); - log(" - Directories created: " + createDirectories); - } - } - - private static String readWrapperUrl(Path mavenWrapperPropertyFile) { - String url = DEFAULT_DOWNLOAD_URL; - if (Files.exists(mavenWrapperPropertyFile, LinkOption.NOFOLLOW_LINKS)) { - log(" - Reading property file: " + mavenWrapperPropertyFile); - try (InputStream in = Files.newInputStream(mavenWrapperPropertyFile, StandardOpenOption.READ)) { - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(in); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, DEFAULT_DOWNLOAD_URL); - } catch (IOException e) { - System.err.println(" - ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } - } - log(" - Downloading from: " + url); - return url; - } - - private static void log(String msg) { - if (VERBOSE) { - System.out.println(msg); - } - } - -} \ No newline at end of file diff --git a/.mvn/wrapper/README.md b/.mvn/wrapper/README.md deleted file mode 100644 index b51d2ad..0000000 --- a/.mvn/wrapper/README.md +++ /dev/null @@ -1 +0,0 @@ -find what is that in [https://maven.apache.org/wrapper/](https://maven.apache.org/wrapper/) diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 857641b..0000000 --- a/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,3 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar -# \ No newline at end of file diff --git a/2018fall/lab_2/lab_2_1129/pom.xml b/2018fall/lab_2/lab_2_1129/pom.xml index d6d636a..6437b2e 100644 --- a/2018fall/lab_2/lab_2_1129/pom.xml +++ b/2018fall/lab_2/lab_2_1129/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1129 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1129/src/Main.java b/2018fall/lab_2/lab_2_1129/src/Main.java index 6c060be..1c48b73 100644 --- a/2018fall/lab_2/lab_2_1129/src/Main.java +++ b/2018fall/lab_2/lab_2_1129/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1129/test/MainTest.java b/2018fall/lab_2/lab_2_1129/test/MainTest.java index 988a6eb..489201f 100644 --- a/2018fall/lab_2/lab_2_1129/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1129/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/lab_2_1131/pom.xml b/2018fall/lab_2/lab_2_1131/pom.xml index febcd3c..96770f6 100644 --- a/2018fall/lab_2/lab_2_1131/pom.xml +++ b/2018fall/lab_2/lab_2_1131/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1131 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1131/src/Main.java b/2018fall/lab_2/lab_2_1131/src/Main.java index 7f107ac..3e2b5ad 100644 --- a/2018fall/lab_2/lab_2_1131/src/Main.java +++ b/2018fall/lab_2/lab_2_1131/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1131/test/MainTest.java b/2018fall/lab_2/lab_2_1131/test/MainTest.java index 988a6eb..489201f 100644 --- a/2018fall/lab_2/lab_2_1131/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1131/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/lab_2_1132/pom.xml b/2018fall/lab_2/lab_2_1132/pom.xml index 1304e77..ec1f0a2 100644 --- a/2018fall/lab_2/lab_2_1132/pom.xml +++ b/2018fall/lab_2/lab_2_1132/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1132 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1132/src/Main.java b/2018fall/lab_2/lab_2_1132/src/Main.java index de7a46f..9fe4940 100644 --- a/2018fall/lab_2/lab_2_1132/src/Main.java +++ b/2018fall/lab_2/lab_2_1132/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1132/test/MainTest.java b/2018fall/lab_2/lab_2_1132/test/MainTest.java index 988a6eb..489201f 100644 --- a/2018fall/lab_2/lab_2_1132/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1132/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/lab_2_1133/pom.xml b/2018fall/lab_2/lab_2_1133/pom.xml index f40b668..b227d5a 100644 --- a/2018fall/lab_2/lab_2_1133/pom.xml +++ b/2018fall/lab_2/lab_2_1133/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1133 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1133/src/Main.java b/2018fall/lab_2/lab_2_1133/src/Main.java index 75a8a25..8eadd6b 100644 --- a/2018fall/lab_2/lab_2_1133/src/Main.java +++ b/2018fall/lab_2/lab_2_1133/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1133/test/MainTest.java b/2018fall/lab_2/lab_2_1133/test/MainTest.java index cc1b20a..609fc2e 100644 --- a/2018fall/lab_2/lab_2_1133/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1133/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/lab_2_1134/pom.xml b/2018fall/lab_2/lab_2_1134/pom.xml index 59e31cc..005d21f 100644 --- a/2018fall/lab_2/lab_2_1134/pom.xml +++ b/2018fall/lab_2/lab_2_1134/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1134 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1134/src/Main.java b/2018fall/lab_2/lab_2_1134/src/Main.java index 23cd794..f90a1f3 100644 --- a/2018fall/lab_2/lab_2_1134/src/Main.java +++ b/2018fall/lab_2/lab_2_1134/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1134/test/MainTest.java b/2018fall/lab_2/lab_2_1134/test/MainTest.java index cc1b20a..609fc2e 100644 --- a/2018fall/lab_2/lab_2_1134/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1134/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/lab_2_1135/pom.xml b/2018fall/lab_2/lab_2_1135/pom.xml index aecfa25..530c590 100644 --- a/2018fall/lab_2/lab_2_1135/pom.xml +++ b/2018fall/lab_2/lab_2_1135/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1135 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1135/src/Main.java b/2018fall/lab_2/lab_2_1135/src/Main.java index 7665062..5ee4e6e 100644 --- a/2018fall/lab_2/lab_2_1135/src/Main.java +++ b/2018fall/lab_2/lab_2_1135/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1135/test/MainTest.java b/2018fall/lab_2/lab_2_1135/test/MainTest.java index cc1b20a..609fc2e 100644 --- a/2018fall/lab_2/lab_2_1135/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1135/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/lab_2_1136/pom.xml b/2018fall/lab_2/lab_2_1136/pom.xml index cf4e010..6a87dd0 100644 --- a/2018fall/lab_2/lab_2_1136/pom.xml +++ b/2018fall/lab_2/lab_2_1136/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab2 + nanoseeds.algorithm-template.2018fall.lab2 lab_2_1136 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_2/lab_2_1136/src/Main.java b/2018fall/lab_2/lab_2_1136/src/Main.java index f05ee20..d8db15f 100644 --- a/2018fall/lab_2/lab_2_1136/src/Main.java +++ b/2018fall/lab_2/lab_2_1136/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_2/lab_2_1136/test/MainTest.java b/2018fall/lab_2/lab_2_1136/test/MainTest.java index cc1b20a..609fc2e 100644 --- a/2018fall/lab_2/lab_2_1136/test/MainTest.java +++ b/2018fall/lab_2/lab_2_1136/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_2/pom.xml b/2018fall/lab_2/pom.xml index 60f2b58..adb4bf0 100644 --- a/2018fall/lab_2/pom.xml +++ b/2018fall/lab_2/pom.xml @@ -4,13 +4,13 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template 2018fall ${revision} ./../pom.xml pom - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_2 ${revision} ${project.groupId}.${project.artifactId} @@ -26,7 +26,7 @@ - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template test_include_package ${revision} test diff --git a/2018fall/lab_3/lab_3_1138/pom.xml b/2018fall/lab_3/lab_3_1138/pom.xml index 7afbded..d14d8db 100644 --- a/2018fall/lab_3/lab_3_1138/pom.xml +++ b/2018fall/lab_3/lab_3_1138/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1138 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1138/src/Main.java b/2018fall/lab_3/lab_3_1138/src/Main.java index aac6424..1328683 100644 --- a/2018fall/lab_3/lab_3_1138/src/Main.java +++ b/2018fall/lab_3/lab_3_1138/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1138/test/MainTest.java b/2018fall/lab_3/lab_3_1138/test/MainTest.java index 988a6eb..489201f 100644 --- a/2018fall/lab_3/lab_3_1138/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1138/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_3/lab_3_1139/pom.xml b/2018fall/lab_3/lab_3_1139/pom.xml index 8732acf..923ccb8 100644 --- a/2018fall/lab_3/lab_3_1139/pom.xml +++ b/2018fall/lab_3/lab_3_1139/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1139 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1139/src/Main.java b/2018fall/lab_3/lab_3_1139/src/Main.java index 49bbdae..251ca6f 100644 --- a/2018fall/lab_3/lab_3_1139/src/Main.java +++ b/2018fall/lab_3/lab_3_1139/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1139/test/MainTest.java b/2018fall/lab_3/lab_3_1139/test/MainTest.java index 022bbc7..96257a5 100644 --- a/2018fall/lab_3/lab_3_1139/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1139/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_3/lab_3_1140/pom.xml b/2018fall/lab_3/lab_3_1140/pom.xml index 2d52b8c..17a914a 100644 --- a/2018fall/lab_3/lab_3_1140/pom.xml +++ b/2018fall/lab_3/lab_3_1140/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1140 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1140/src/Main.java b/2018fall/lab_3/lab_3_1140/src/Main.java index a5975bd..01bc9e8 100644 --- a/2018fall/lab_3/lab_3_1140/src/Main.java +++ b/2018fall/lab_3/lab_3_1140/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1140/test/MainTest.java b/2018fall/lab_3/lab_3_1140/test/MainTest.java index b72cfac..8eca48e 100644 --- a/2018fall/lab_3/lab_3_1140/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1140/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_3/lab_3_1141/pom.xml b/2018fall/lab_3/lab_3_1141/pom.xml index 1c3d14a..2bf25ac 100644 --- a/2018fall/lab_3/lab_3_1141/pom.xml +++ b/2018fall/lab_3/lab_3_1141/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1141 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1141/src/Main.java b/2018fall/lab_3/lab_3_1141/src/Main.java index 38470c7..878a342 100644 --- a/2018fall/lab_3/lab_3_1141/src/Main.java +++ b/2018fall/lab_3/lab_3_1141/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1141/test/MainTest.java b/2018fall/lab_3/lab_3_1141/test/MainTest.java index 022bbc7..96257a5 100644 --- a/2018fall/lab_3/lab_3_1141/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1141/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_3/lab_3_1142/pom.xml b/2018fall/lab_3/lab_3_1142/pom.xml index b2ec5ec..b514ed2 100644 --- a/2018fall/lab_3/lab_3_1142/pom.xml +++ b/2018fall/lab_3/lab_3_1142/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1142 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1142/src/Main.java b/2018fall/lab_3/lab_3_1142/src/Main.java index 54c364b..051eb88 100644 --- a/2018fall/lab_3/lab_3_1142/src/Main.java +++ b/2018fall/lab_3/lab_3_1142/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1142/test/MainTest.java b/2018fall/lab_3/lab_3_1142/test/MainTest.java index 8dc27c5..547e21d 100644 --- a/2018fall/lab_3/lab_3_1142/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1142/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_3/lab_3_1143/pom.xml b/2018fall/lab_3/lab_3_1143/pom.xml index 490064c..85db968 100644 --- a/2018fall/lab_3/lab_3_1143/pom.xml +++ b/2018fall/lab_3/lab_3_1143/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1143 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1143/src/Main.java b/2018fall/lab_3/lab_3_1143/src/Main.java index 7332586..dc2dd01 100644 --- a/2018fall/lab_3/lab_3_1143/src/Main.java +++ b/2018fall/lab_3/lab_3_1143/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1143/test/MainTest.java b/2018fall/lab_3/lab_3_1143/test/MainTest.java index 8dc27c5..547e21d 100644 --- a/2018fall/lab_3/lab_3_1143/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1143/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_3/lab_3_1144/pom.xml b/2018fall/lab_3/lab_3_1144/pom.xml index 8cd5c6a..0132aa0 100644 --- a/2018fall/lab_3/lab_3_1144/pom.xml +++ b/2018fall/lab_3/lab_3_1144/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.lab3 + nanoseeds.algorithm-template.2018fall.lab3 lab_3_1144 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_3/lab_3_1144/src/Main.java b/2018fall/lab_3/lab_3_1144/src/Main.java index 02d89c6..a739ad1 100644 --- a/2018fall/lab_3/lab_3_1144/src/Main.java +++ b/2018fall/lab_3/lab_3_1144/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_3/lab_3_1144/test/MainTest.java b/2018fall/lab_3/lab_3_1144/test/MainTest.java index ea59119..bd72b0d 100644 --- a/2018fall/lab_3/lab_3_1144/test/MainTest.java +++ b/2018fall/lab_3/lab_3_1144/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_3/pom.xml b/2018fall/lab_3/pom.xml index 43d0796..fcac31e 100644 --- a/2018fall/lab_3/pom.xml +++ b/2018fall/lab_3/pom.xml @@ -4,13 +4,13 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template 2018fall ${revision} ./../pom.xml pom - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_3 ${revision} ${project.groupId}.${project.artifactId} @@ -26,7 +26,7 @@ - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template test_include_package ${revision} test diff --git a/2018fall/lab_example/lab_example_1166/pom.xml b/2018fall/lab_example/lab_example_1166/pom.xml index b2f8573..c434979 100644 --- a/2018fall/lab_example/lab_example_1166/pom.xml +++ b/2018fall/lab_example/lab_example_1166/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1166 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1166/src/Main.java b/2018fall/lab_example/lab_example_1166/src/Main.java index dec22cf..40a04e4 100644 --- a/2018fall/lab_example/lab_example_1166/src/Main.java +++ b/2018fall/lab_example/lab_example_1166/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1166/test/MainTest.java b/2018fall/lab_example/lab_example_1166/test/MainTest.java index 988a6eb..489201f 100644 --- a/2018fall/lab_example/lab_example_1166/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1166/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; diff --git a/2018fall/lab_example/lab_example_1167/pom.xml b/2018fall/lab_example/lab_example_1167/pom.xml index 65bd710..bb5e421 100644 --- a/2018fall/lab_example/lab_example_1167/pom.xml +++ b/2018fall/lab_example/lab_example_1167/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1167 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1167/src/Main.java b/2018fall/lab_example/lab_example_1167/src/Main.java index 26fc208..c68db77 100644 --- a/2018fall/lab_example/lab_example_1167/src/Main.java +++ b/2018fall/lab_example/lab_example_1167/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1167/test/MainTest.java b/2018fall/lab_example/lab_example_1167/test/MainTest.java index 75feeeb..0ef5e3f 100644 --- a/2018fall/lab_example/lab_example_1167/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1167/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_example/lab_example_1168/pom.xml b/2018fall/lab_example/lab_example_1168/pom.xml index 0693ba6..ce57e65 100644 --- a/2018fall/lab_example/lab_example_1168/pom.xml +++ b/2018fall/lab_example/lab_example_1168/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1168 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1168/src/Main.java b/2018fall/lab_example/lab_example_1168/src/Main.java index 2fca5da..ce7f0b4 100644 --- a/2018fall/lab_example/lab_example_1168/src/Main.java +++ b/2018fall/lab_example/lab_example_1168/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1168/test/MainTest.java b/2018fall/lab_example/lab_example_1168/test/MainTest.java index 75feeeb..0ef5e3f 100644 --- a/2018fall/lab_example/lab_example_1168/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1168/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_example/lab_example_1169/pom.xml b/2018fall/lab_example/lab_example_1169/pom.xml index 1f86db7..0041b8d 100644 --- a/2018fall/lab_example/lab_example_1169/pom.xml +++ b/2018fall/lab_example/lab_example_1169/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1169 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1169/src/Main.java b/2018fall/lab_example/lab_example_1169/src/Main.java index 33b0cfe..9975500 100644 --- a/2018fall/lab_example/lab_example_1169/src/Main.java +++ b/2018fall/lab_example/lab_example_1169/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1169/test/MainTest.java b/2018fall/lab_example/lab_example_1169/test/MainTest.java index d64777e..4b4ef60 100644 --- a/2018fall/lab_example/lab_example_1169/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1169/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_example/lab_example_1170/pom.xml b/2018fall/lab_example/lab_example_1170/pom.xml index 416f460..c171186 100644 --- a/2018fall/lab_example/lab_example_1170/pom.xml +++ b/2018fall/lab_example/lab_example_1170/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1170 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1170/src/Main.java b/2018fall/lab_example/lab_example_1170/src/Main.java index 0f3a4a9..3dd5d82 100644 --- a/2018fall/lab_example/lab_example_1170/src/Main.java +++ b/2018fall/lab_example/lab_example_1170/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1170/test/MainTest.java b/2018fall/lab_example/lab_example_1170/test/MainTest.java index 06c583e..224371e 100644 --- a/2018fall/lab_example/lab_example_1170/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1170/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_example/lab_example_1171/pom.xml b/2018fall/lab_example/lab_example_1171/pom.xml index bb474e4..7625e06 100644 --- a/2018fall/lab_example/lab_example_1171/pom.xml +++ b/2018fall/lab_example/lab_example_1171/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1171 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1171/src/Main.java b/2018fall/lab_example/lab_example_1171/src/Main.java index 37cbf78..2979ff5 100644 --- a/2018fall/lab_example/lab_example_1171/src/Main.java +++ b/2018fall/lab_example/lab_example_1171/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1171/test/MainTest.java b/2018fall/lab_example/lab_example_1171/test/MainTest.java index 06c583e..224371e 100644 --- a/2018fall/lab_example/lab_example_1171/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1171/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_example/lab_example_1172/pom.xml b/2018fall/lab_example/lab_example_1172/pom.xml index 9942521..00f8a3a 100644 --- a/2018fall/lab_example/lab_example_1172/pom.xml +++ b/2018fall/lab_example/lab_example_1172/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.2018fall.example + nanoseeds.algorithm-template.2018fall.example lab_example_1172 ${revision} ${project.groupId}.${project.artifactId} diff --git a/2018fall/lab_example/lab_example_1172/src/Main.java b/2018fall/lab_example/lab_example_1172/src/Main.java index 4b250b4..9bf1651 100644 --- a/2018fall/lab_example/lab_example_1172/src/Main.java +++ b/2018fall/lab_example/lab_example_1172/src/Main.java @@ -1,9 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -/* -CS203_DSAA_template - -Copyright (C) 2023 nanos Certseeds -*/ +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import java.io.BufferedReader; import java.io.IOException; diff --git a/2018fall/lab_example/lab_example_1172/test/MainTest.java b/2018fall/lab_example/lab_example_1172/test/MainTest.java index 06c583e..224371e 100644 --- a/2018fall/lab_example/lab_example_1172/test/MainTest.java +++ b/2018fall/lab_example/lab_example_1172/test/MainTest.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2018-2025 nanoseeds import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.*; diff --git a/2018fall/lab_example/pom.xml b/2018fall/lab_example/pom.xml index 422472e..4099081 100644 --- a/2018fall/lab_example/pom.xml +++ b/2018fall/lab_example/pom.xml @@ -4,13 +4,13 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template 2018fall ${revision} ./../pom.xml pom - nanoseeds.CS203_DSAA_template_java.2018fall + nanoseeds.algorithm-template.2018fall lab_example ${revision} ${project.groupId}.${project.artifactId} @@ -26,7 +26,7 @@ - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template test_include_package ${revision} test diff --git a/2018fall/pom.xml b/2018fall/pom.xml index 3dfea9b..e30deab 100644 --- a/2018fall/pom.xml +++ b/2018fall/pom.xml @@ -5,12 +5,12 @@ nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ./../pom.xml pom - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template 2018fall ${revision} ${project.groupId}.${project.artifactId} diff --git a/CHANGELOG.md b/CHANGELOG.md index 4777183..a83c9a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 0.0.5 (2023-04-27) +## 0.0.5 (2023-04-27) * feat: add 2018fall_lab_3 3162888 * feat: add 2018fall_lab3_1138 9e5d719 @@ -10,7 +10,7 @@ * feat: bump version to 0.0.5-SNAPSHOT b68eef6 * feat: update 2018fall_lab3_1143 and 2018fall_lab3's conclusion 4df0309 -## 0.0.4 (2023-04-08) +## 0.0.4 (2023-04-08) * feat: add 2018fall_lab2_1129 020ccf6 * feat: add lab_2_1131 and move lab_example to 2018fall subfolder 40481e2 @@ -30,9 +30,7 @@ * move lab_example to 2018fall submodule -Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com> - -## 0.0.3 (2023-04-02) +## 0.0.3 (2023-04-02) * feat: add example folder for real-problem 62f2a28 * feat: add example_1166 9fd347b @@ -54,15 +52,11 @@ Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com> * LICENSE move to AGPL3+ -Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com> - * move reader to kattio-quickread the origin one is not good enough, find a better one. -Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com> - -## 0.0.2 (2023-03-23) +## 0.0.2 (2023-03-23) * feat: add changelog and update file permission b15cbda * feat: bump version to 0.0.2 19cea06 @@ -73,7 +67,7 @@ Signed-off-by: Certseeds <51754303+Certseeds@users.noreply.github.com> * feat: update build_tools for project-struct b6e9920 * fix: add relativePath in pom.xml to fix parse error 7adf88a -## 0.0.1 (2022-05-15) +## 0.0.1 (2022-05-15) * feature: add build script d0066c4 * feature: add coc and bug_report.yaml ce7fbf5 diff --git a/README.md b/README.md index 3c72cf2..4847a9c 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,117 @@ -# CS203_DSAA_template_Java +# algorithm-template-java -# CS203_数据结构与算法分析_代码模板_Java +本repo的目的: 提供一个 -1. 所有代码(*.cpp,*.hpp,etc)基于AGPL-3.0-or-later协议:限制最强的主流开源协议, - + 从设计上只为了源码交付, 主要是为了保护copyleft. - + 具体内容请看[`LICENSE_AGPL-3.0-or-later.md`](./LICENSE_AGPL_V3_0.md) ++ 较为简单 ++ 开箱即用 ++ 带有测试 ++ 针对需要提交 OJ 的 lab 设计的, 基于 JDK11 的代码模板仓库, 方便同学们进行课程的学习 ++ 同时会提供一些基本的算法框架 -2. 所有其他文件(主要是*.md)基于CC-BY-NC-SA-4.0(或以后版本)协议. - + 相同方式共享-署名-非商业性使用的知识共享协议4.0或任何以后版本. - + 署名(BY)-使用到相应内容的其他地方,应该加以注释,保留来源. - + 非商业性使用(NC)-默认情况下,只要署名,可以在不盈利的情况下使用.(并不是指商业情况不能用,而是需要和原作者沟通) - + 相同方式共享(SA)-使得协议具有传染性,只要其他内容采用了本repo的内容,就需要在署名的同时,保证其协议也是CC-BY-NC-SA-4.0 or later version. - + 具体内容请看[`LICENSE_CC_BY_NC_SA_V4_0.md`](./LICENSE_CC_BY_NC_SA_V4_0.md) +## 如何使用 -3. 本repo的目的:提供一个 - + 较为简单, - + 开箱即用, - + 带有测试, - + 针对CS203_dsaa的lab设计的,基于Java11的代码模板仓库,方便同学们进行课程的学习. - + 同时会提供一些基本的算法框架. +### 环境准备 -## 如何使用 +下载最新 LTS 版本的 JDK, 推荐使用 JDK21 + +``` powershell +$ java -version +openjdk version "21" LTS +OpenJDK Runtime Environment Temurin-21 (build 21-LTS) +OpenJDK 64-Bit Server VM Temurin-21 (build 21-LTS, mixed mode, sharing) +``` + +> 或者在 IDEA 中下载 + +下载最新版本的 maven + +``` powershell +$ mvn --version +Apache Maven 3.9.11 +Maven home: ~\scoop\apps\maven\current +Java version: 21, vendor: Eclipse Adoptium, runtime: ~\scoop\apps\temurin21-jdk\current +Default locale: zh_CN, platform encoding: UTF-8 +OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows" +``` + +> 或者使用 IDEA 捆绑的 maven + +#### Java 版本策略(重要) + ++ 本地开发与测试:推荐使用 JDK 21(IDEA 运行/调试更舒适) ++ 构建与提交:项目使用 Maven 以 Java 11 为编译目标(`--release 11`), 确保与远程 OJ(JDK 11)兼容 ++ 说明:即使本地安装的是 JDK21, Maven 根据 `release=11` 仍会按照JDK11的API对源文件进行约束, 不用担心用了新的API, OJ上无法编译 + +### 下载使用 + ++ 首先请到[release_latest](https://github.com/Certseeds/algorithm-template-java/releases/latest)下载 `script_no_need.zip` ++ 将其解压, 放到您的代码库中 + + 也可以直接使用 GitHub 的 "Use this template" 或 Fork 仓库开始 + +### 快速上手(5 分钟) + +1. 使用 IDEA 打开仓库, 等待 Maven 依赖下载完成 +2. 打开 `lab_welcome/lab_welcome_a/test/MainTest.java` 直接运行测试 +3. 修改 `lab_welcome/lab_welcome_a/src/Main.java` 的 `cal` 实现, 重新运行测试验证 +4. 提交到 OJ 时, 复制该题目的 `Main.java` 全文(包含嵌入的快读类)进行提交 -+ 首先请到[release_latest](https://github.com/Certseeds/CS203_DSAA_template_java/releases/latest)下载script_no_need.zip. -+ 将其解压,放到某处. -+ 执行代码和测试: - + 使用IDEA打开文件夹,配置好Java环境与Maven的基础上,会自动识别`pom.xml`.之后可选择test或源文件进行执行. - + `lab_${lab_number}/lab_${lab_number}_${ques_number}/src/Main.java`为将要提交的源文件. - + `lab_${lab_number}/lab_${lab_number}_${ques_number}/test/MainTest.java`为对源文件进行测试的测试文件,目的为方便测试,同时便于分享测试用例. +可选命令行(PowerShell): -## 实际场景: +```powershell +# 运行根项目所有测试 +mvn -q test -1. A+B: lab_00_A ,测试样例 +# 仅运行某一题(例如 lab_welcome_a)的测试 +mvn -q -pl lab_welcome/lab_welcome_a -am test +``` -+ 这个问题较为简单,见[A+B](./lab_welcome/lab_welcome_a/src/Main.java).解决起来不复杂. -+ 虽然手工一个一个输入,然后肉眼观察输出.但是如果我们希望严谨的测试,要100组测试数据,难道每次出新版本都要手动输入100次?
-显然,有更好的解决方式:使用测试框架. -+ 在本repo,使用`Junit`测试框架.
-比如,我们有四组数据,第一组,第二组测试边界值,第三组使用随机数测试对偶性与正确性,第四组测试几个手动的随机值.
-参见[test_for_lab00_A](./lab_welcome/lab_welcome_a/test/MainTest.java). -+ 这样一来,我们只需要每次修改完主文件之后,run `lab_welcome_a/test/MainTest.java`, 对其进行调用,就能验证其在所有的测试用例上的正确性.
-测试的结果也会出现在输出中. +## 实际场景 -2. 文件输入输出重定向 part1: +### A+B: lab_00_A , 测试样例 -+ 常见于tree,graph类的问题,debug需要的数据集都比较大,不方便直接写在代码中. -+ 比如[判断二分图](./lab_welcome/lab_welcome_c/src/Main.java),一张图可以有几十上百个node,写在内部占用空间太大. -+ 而在这里,使用`Redirect`对象,便可以省去手动输入的方式. ++ 这个问题较为简单, 见[A+B](./lab_welcome/lab_welcome_a/src/Main.java) 解决起来不复杂 + ++ 虽然手工一个一个输入, 然后肉眼观察输出.但是如果我们希望严谨的测试, 要100组测试数据, 难道每次出新版本都要手动输入100次?
+显然, 有更好的解决方式: 使用**测试框架** + ++ 在本repo, 使用 `Junit`
+ +比如, 我们有四组数据, 第一组, 第二组测试边界值, 第三组使用随机数测试对偶性与正确性, 第四组测试几个手动的随机值 + +参见[test_for_lab00_A](./lab_welcome/lab_welcome_a/test/MainTest.java) + ++ 这样一来, 我们只需要每次修改完主文件之后, run `lab_welcome_a/test/MainTest.java`, 对其进行调用, 就能验证其在所有的测试用例上的正确性.
+测试的结果也会出现在输出中 + +### 文件输入输出重定向 part1 + ++ 常见于tree, graph类的问题, debug需要的数据集都比较大, 不方便直接写在代码中 ++ 比如[判断二分图](./lab_welcome/lab_welcome_c/src/Main.java), 一张图可以有几十上百个node, 写在内部占用空间太大 ++ 而在这里, 使用`Redirect`对象, 便可以省去手动输入的方式 ``` java - try (Redirect redirect = Redirect.from(DATA_PATH,"01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义 - Main.output(Main.cal_warpper(Main.read())); // 执行 + try (Redirect redirect = Redirect.from(DATA_PATH, "01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义 + Main.output(Main.cal(Main.read())); // 执行 final Pair p = redirect.compare_double("01.data.out", "01.test.out"); // 获取两个文件中的字符串 assertEquals(p.getFirst().length(), p.getSecond().length()); // 比较长度 assertEquals(p.getFirst(), p.getSecond()); // 比较文本 } ``` - 只需要准备好输入的数据与结果,就可以从文件中读取,执行后判断结果是否符合预期. - + test_1 为最简单的逐个判断,最简单,代码量最大. - + test_2 则优化了一些,但是还是比较麻烦,for循环还需要了解测试样例的个数. - + test_3 with tuple 则最优雅,修改起来的难度最小. - + PS: 此处注意,引用文件的相对路径. - + PS2: 模版文件中已经将前面`resources/`预制好,只需要填写文件名. + 只需要准备好输入的数据与结果, 就可以从文件中读取, 执行后判断结果是否符合预期 + + test_1 为最简单的逐个判断, 最简单, 代码量最大 + + test_2 则优化了一些, 但是还是比较麻烦, for循环还需要了解测试样例的个数 + + test_3 with tuple 则最优雅, 修改起来的难度最小 + + PS: 此处注意, 引用文件的相对路径 + + PS2: 模版文件中已经将前面`resources/`预制好, 只需要填写文件名 -3. 文本输入输出重定向 part2: +### 文本输入输出重定向 part2 -+ 一般来说,题目的输出不会太复杂,但是反例也不是没有.:比如专门考输出的[立体图](./lab_welcome/lab_welcome_d/src/Main.java) -+ 这种情况下,使用c++的重定向输出就可以较为方便的对输入进行处理,同时保存输出方便调试. ++ 一般来说, 题目的输出不会太复杂, 但是反例也不是没有: 比如专门考输出的[立体图](./lab_welcome/lab_welcome_d/src/Main.java) ++ 这种情况下, 使用 Java 的标准输入/输出重定向就可以较为方便地处理输入, 同时保存输出便于调试 ``` java - try (Redirect redirect = Redirect.from(DATA_PATH,"01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义 + try (Redirect redirect = Redirect.from(DATA_PATH, "01.data.in", "01.test.out");) {// 设定目录 DATA_PATH在文件里有定义 Main.main(init_String); final Pair p = redirect.compare_double("01.data.out", "01.test.out"); assertEquals(p.getFirst().length(), p.getSecond().length()); @@ -78,79 +119,86 @@ } ``` - 这样就将标准输出重定向到了`01.test.out`中,并与`01.data.out`比对. - + 这里需要考虑的是,谨慎使用`println()`,因为`println()`的输出与平台有关,`print("\n")`比较方便和data.out比较. + 这样就将标准输出重定向到了`01.test.out`中, 并与`01.data.out`比对 + + 这里需要考虑的是, 谨慎使用`println()`, 因为`println()`的输出与平台有关;推荐使用 `System.out.print('\n')` 来对齐与 data.out 的比较 -4. 快读. +### 快读 -+ 一般来说,题目不会卡读入. -+ 但是,当数据量上来之后,读取时间不容小看. -+ 所以可以使用每个文件中自带的Reader类来进行快读. ++ 一般来说, 题目不会卡读入 ++ 但是, 当数据量上来之后, 读取时间不容小看 ++ 所以可以使用每个文件中自带的 Reader / FastReader 类来进行快读 ++ 注意:多数 OJ 仅允许单文件提交, 因此快读类需嵌入到 `Main.java` 中, 不能抽到外部文件依赖 -### 实现细节 +## 实现细节 -使用两层子模块来抽象lab-question, 给每个question一个独立文件夹, 有利于在README.md里面撰写文档, 梳理思路. +1. 使用两层子模块来抽象 lab-question , 给每个 question 一个独立文件夹, 有利于在 README.md 里面撰写文档, 梳理思路 +2. 使用子模块来实现, 每一个类内不需要加入 `package ...`路径, 这样可以直接复制 Main.java 全文到 OJ内, 方便实现 ## 为什么要将 `读取` `数据处理` `输出` 分开? -+ 便于理清思路,读完题目之后,不管别的,先把数据读入,输出的函数写好,方便后续写作. ++ 便于理清思路, 读完题目之后, 不管别的, 先把数据读入, 输出的函数写好, 方便后续写作 + 交流代码逻辑的时候不会受到无关逻辑的影响 -+ 可以互相分享少量代码而不触及核心逻辑,方便协作. -+ 便于使用测试. -+ 便于使用替换快读与scanner. ++ 可以互相分享少量代码而不触及核心逻辑, 方便协作 ++ 便于使用测试 ++ 便于使用替换快读与scanner ## 为什么要选择Java做题 -1. SUSTech大一默认用java教学. -2. java对字符串处理有一些预置方法,挺好用。 -3. 没了,欢迎补充. +1. SUSTech 大一默认用 Java 教学 +2. Java 对字符串处理有一些预置方法, 挺好用 +3. 可以在 Windows 环境下开发, 完全不需要安装 MSVC/gcc 环境 +4. 没了, 欢迎补充 -## 为什么要选择C++做题. +## ~~为什么要选择C++做题~~ 1. C++是dalao们的选择: 直接去 + + [dalao1](https://acm.sustech.edu.cn/onlinejudge/status.php?user_id=11710724&jresult=4) + [dalao2](https://acm.sustech.edu.cn/onlinejudge/status.php?user_id=11612908&jresult=4) + [dalao3](https://acm.sustech.edu.cn/onlinejudge/status.php?user_id=11712510&jresult=4) -等等dalao的解题页面看看,会发现在排行榜榜首的人,绝大多数题目使用的都是C++. -2. 速度. +等等dalao的解题页面看看, 会发现在排行榜榜首的人, 绝大多数题目使用的都是C++ -+ oj内一般java的最大运行时间都会是c++的2倍,显然是暗示速度之间的差别. -+ 其次,C++可以通过一些魔法操作,比如下文的优化等操作再获取一些时间上的优势. +1. 速度 + ++ OJ 内一般 Java 的最大运行时间都会是 C++ 的 2 倍, 显然是暗示速度之间的差别 ++ 其次, C++可以通过一些优化技巧, 比如下文的优化等操作再获取一些时间上的优势 ### 对数据结构的友好性 -DSAA既然内含Data structure,就势必涉及到类似Node,Tree,Graph等等数据结构,这类数据结构使用C++写,比较方便理解. +DSAA既然内含Data structure, 就势必涉及到类似Node, Tree, Graph等等数据结构, 这类数据结构使用C++写, 比较方便理解 ### 对算法友好的性能 -作者写树和图相关的题目时,最头疼的就是Java的爆栈,有一段时间只要用递归就爆栈,相同算法修改为C++之后问题就消失了. +作者写树和图相关的题目时, 最头疼的就是Java的爆栈, 有一段时间只要用递归就爆栈, 相同算法修改为C++之后问题就消失了 ### 相关资源的丰富程度 -不管怎么说,c++是dalao的选择,所以在网络上搜索题目,得到的大多数答案都是C/C++,java的数量很少. +不管怎么说, C++是 dalao 的选择, 所以在网络上搜索题目, 得到的大多数答案都是 C/C++, Java 的数量很少 ## 最后 C++的CS203库:[CS203_DSAA_template](https://github.com/Certseeds/CS203_DSAA_template) -TODO: 介绍使用Cyaron 生成数据. +TODO: 介绍使用 Cyaron 生成数据 ## 可能遇到的问题 -1. 提示找不到Jar包. - 请安装maven作为依赖管理的工具.然后在IDEA中`文件`-`打开`-选择`CS203_DSAA_template_java\pom.xml`-确定-作为项目打开. +1. 提示找不到Jar包 + 请安装maven作为依赖管理的工具.然后在IDEA中`文件`-`打开`-选择`algorithm-template-java\pom.xml`-确定-作为项目打开 + 2. maven下载包很慢 需要给maven 换源 (`pom.xml`中已有换源操作) -[![AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL-3.0-or-later-orange)][AGPL-3.0-or-later_Link] - -[![CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-orange)][cc_by_nc_sa_4_0] - -[![CC BY-SA 4.0][cc_by_nc_sa_4_0_image]][cc_by_nc_sa_4_0] +### copyleft 选择 -[AGPL-3.0-or-later_Link]: http://opensource.org/licenses/AGPL-3.0-or-later - -[cc_by_nc_sa_4_0]: https://creativecommons.org/licenses/by-nc-sa/4.0/ +1. 所有代码(*.java, etc) 基于AGPL-3.0-or-later协议: 限制最强的主流开源协议, + + 从设计上只为了源码交付 + + 具体内容请看[`LICENSE_AGPL-3.0-or-later.md`](./LICENSE_AGPL_V3_0.md) -[cc_by_nc_sa_4_0_image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png +2. 所有其他文件(主要是*.md)基于CC-BY-NC-SA-4.0(或以后版本)协议 + + 相同方式共享-署名-非商业性使用的知识共享协议4.0或任何以后版本 + + 署名(BY)-使用到相应内容的其他地方, 应该加以注释, 保留来源 + + 非商业性使用(NC)-默认情况下, 只要署名, 可以在不盈利的情况下使用.(并不是指商业情况不能用, 而是需要和原作者沟通) + + 相同方式共享(SA)-使得协议具有传染性, 只要其他内容采用了本repo的内容, 就需要在署名的同时, 保证其协议也是CC-BY-NC-SA-4.0 or later version + + 具体内容请看[`LICENSE_CC_BY_NC_SA_V4_0.md`](./LICENSE_CC_BY_NC_SA_V4_0.md) diff --git a/build_tools/pom.xml b/build_tools/pom.xml index f12d867..24286d8 100644 --- a/build_tools/pom.xml +++ b/build_tools/pom.xml @@ -5,11 +5,11 @@ nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template build_tools ${revision} ${project.groupId}.${project.artifactId} diff --git a/build_tools/resources/template/java_template.java b/build_tools/resources/template/java_template.java index c40ae0a..1434994 100644 --- a/build_tools/resources/template/java_template.java +++ b/build_tools/resources/template/java_template.java @@ -1,5 +1,6 @@ -import java.io.*; import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; @@ -46,6 +47,18 @@ private static final class Reader { private Reader() { br = new BufferedReader(new InputStreamReader(System.in)); + st = new StringTokenizer(""); + } + + public boolean hasNext() { + while (!st.hasMoreTokens()) { + String nextLine = nextLine(); + if (nextLine == null) { + return false; + } + st = new StringTokenizer(nextLine); + } + return true; } String next() { diff --git a/build_tools/resources/template/parent/top.xml b/build_tools/resources/template/parent/top.xml index 123b4c4..0bec6fc 100644 --- a/build_tools/resources/template/parent/top.xml +++ b/build_tools/resources/template/parent/top.xml @@ -5,12 +5,12 @@ 4.0.0 nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ${project.artifactId} ${project.artifactId} - 0.0.5 + 0.0.6-SNAPSHOT 11 3.0.0 5.9.2 diff --git a/build_tools/resources/template/subpom/buttom.xml b/build_tools/resources/template/subpom/buttom.xml index 31d4674..2c1e1c0 100644 --- a/build_tools/resources/template/subpom/buttom.xml +++ b/build_tools/resources/template/subpom/buttom.xml @@ -1,7 +1,7 @@ - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template test_include_package ${revision} test diff --git a/build_tools/resources/template/subpom/top.xml b/build_tools/resources/template/subpom/top.xml index 9028e6b..8916c4a 100644 --- a/build_tools/resources/template/subpom/top.xml +++ b/build_tools/resources/template/subpom/top.xml @@ -5,12 +5,12 @@ nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ./../pom.xml pom - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_%1$s ${revision} ${project.groupId}.${project.artifactId} diff --git a/build_tools/resources/template/subsubpom.xml b/build_tools/resources/template/subsubpom.xml index 2a228b2..75ca16b 100644 --- a/build_tools/resources/template/subsubpom.xml +++ b/build_tools/resources/template/subsubpom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_%1$s ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.%1$s + nanoseeds.algorithm-template.%1$s lab_%1$s_%2$s ${revision} ${project.groupId}.${project.artifactId} diff --git a/build_tools/src/producer/base.java b/build_tools/src/producer/base.java index 32acf78..817f004 100644 --- a/build_tools/src/producer/base.java +++ b/build_tools/src/producer/base.java @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2020-2025 nanoseeds package producer; import java.io.IOException; diff --git a/build_tools/src/producer/constant.java b/build_tools/src/producer/constant.java index 6f92654..eca088f 100644 --- a/build_tools/src/producer/constant.java +++ b/build_tools/src/producer/constant.java @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2020-2025 nanoseeds package producer; public enum constant { diff --git a/build_tools/src/producer/file_producer.java b/build_tools/src/producer/file_producer.java index 165dc63..8fc9658 100644 --- a/build_tools/src/producer/file_producer.java +++ b/build_tools/src/producer/file_producer.java @@ -1,4 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2020-2025 nanoseeds package producer; import java.io.File; diff --git a/build_tools/src/producer/lab.java b/build_tools/src/producer/lab.java index 07796dd..6f337ab 100644 --- a/build_tools/src/producer/lab.java +++ b/build_tools/src/producer/lab.java @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2020-2025 nanoseeds package producer; import java.io.IOException; diff --git a/build_tools/src/producer/question.java b/build_tools/src/producer/question.java index a8cd29f..28e0f21 100644 --- a/build_tools/src/producer/question.java +++ b/build_tools/src/producer/question.java @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later +// SPDX-FileCopyrightText: 2020-2025 nanoseeds + package producer; import java.io.IOException; diff --git a/changelog.config.ts b/changelog.config.ts deleted file mode 100644 index 2c0d1da..0000000 --- a/changelog.config.ts +++ /dev/null @@ -1,4 +0,0 @@ -// @ts-ignore -module.exports = { - linkReferences: false -} diff --git a/include/pom.xml b/include/pom.xml index ef1235a..4d5d8e9 100644 --- a/include/pom.xml +++ b/include/pom.xml @@ -5,11 +5,11 @@ nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template test_include_package ${revision} ${project.groupId}.${project.artifactId} @@ -17,16 +17,4 @@ ${project.basedir}/src - - - org.slf4j - slf4j-jdk14 - 2.0.7 - - - org.projectlombok - lombok - 1.18.24 - - diff --git a/lab_welcome/lab_welcome_a/pom.xml b/lab_welcome/lab_welcome_a/pom.xml index 77e2697..7973fe0 100644 --- a/lab_welcome/lab_welcome_a/pom.xml +++ b/lab_welcome/lab_welcome_a/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_welcome ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.welcome + nanoseeds.algorithm-template.welcome lab_welcome_a ${revision} ${project.groupId}.${project.artifactId} diff --git a/lab_welcome/lab_welcome_b/pom.xml b/lab_welcome/lab_welcome_b/pom.xml index ca400b3..7a5e54d 100644 --- a/lab_welcome/lab_welcome_b/pom.xml +++ b/lab_welcome/lab_welcome_b/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_welcome ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.welcome + nanoseeds.algorithm-template.welcome lab_welcome_b ${revision} ${project.groupId}.${project.artifactId} diff --git a/lab_welcome/lab_welcome_c/pom.xml b/lab_welcome/lab_welcome_c/pom.xml index bad50a4..45594b2 100644 --- a/lab_welcome/lab_welcome_c/pom.xml +++ b/lab_welcome/lab_welcome_c/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_welcome ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.welcome + nanoseeds.algorithm-template.welcome lab_welcome_c ${revision} ${project.groupId}.${project.artifactId} diff --git a/lab_welcome/lab_welcome_c/test/MainTest.java b/lab_welcome/lab_welcome_c/test/MainTest.java index 15bc615..9533c98 100644 --- a/lab_welcome/lab_welcome_c/test/MainTest.java +++ b/lab_welcome/lab_welcome_c/test/MainTest.java @@ -11,6 +11,7 @@ import java.util.List; @Slf4j +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) public final class MainTest { private static final String[] init_String = new String[0]; private static final String DATA_PATH = "resources/"; diff --git a/lab_welcome/lab_welcome_d/pom.xml b/lab_welcome/lab_welcome_d/pom.xml index e85b330..e46c087 100644 --- a/lab_welcome/lab_welcome_d/pom.xml +++ b/lab_welcome/lab_welcome_d/pom.xml @@ -4,12 +4,12 @@ 4.0.0 - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_welcome ${revision} ./../pom.xml - nanoseeds.CS203_DSAA_template_java.welcome + nanoseeds.algorithm-template.welcome lab_welcome_d ${revision} ${project.groupId}.${project.artifactId} diff --git a/lab_welcome/pom.xml b/lab_welcome/pom.xml index f4cb6d3..07909cd 100644 --- a/lab_welcome/pom.xml +++ b/lab_welcome/pom.xml @@ -5,12 +5,12 @@ nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ./../pom.xml pom - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template lab_welcome ${revision} ${project.groupId}.${project.artifactId} @@ -23,7 +23,7 @@ - nanoseeds.CS203_DSAA_template_java + nanoseeds.algorithm-template test_include_package ${revision} test diff --git a/mvnw.cmd b/mvnw.cmd deleted file mode 100755 index abb7c32..0000000 --- a/mvnw.cmd +++ /dev/null @@ -1,188 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% diff --git a/mvnw.sh b/mvnw.sh deleted file mode 100755 index eaa3d30..0000000 --- a/mvnw.sh +++ /dev/null @@ -1,316 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /usr/local/etc/mavenrc ] ; then - . /usr/local/etc/mavenrc - fi - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`\\unset -f command; \\command -v java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" \ - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/package.json b/package.json deleted file mode 100644 index 21529c9..0000000 --- a/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "CS203_DSAA_template_java", - "version": "0.0.5", - "description": "Template for CS203-DSAA Based on OpenJDK11 and Maven Monorepo", - "main": "index.js", - "scripts": { - "prepare": "husky install", - "preinstall": "npx only-allow pnpm -y", - "changelog": "conventional-changelog -i CHANGELOG.md -s --context changelog.config.ts" - }, - "keywords": [ - "java", - "template-project", - "data-structures-and-algorithms", - "cs203" - ], - "author": "Certseeds", - "license": "AGPL-3.0-or-later", - "devDependencies": { - "conventional-changelog-cli": "^2.2.2", - "husky": "^8.0.3" - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index bbff1f5..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1090 +0,0 @@ -lockfileVersion: 5.4 - -specifiers: - conventional-changelog-cli: ^2.2.2 - husky: ^8.0.3 - -devDependencies: - conventional-changelog-cli: 2.2.2 - husky: 8.0.3 - -packages: - - /@babel/code-frame/7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.18.6 - dev: true - - /@babel/helper-validator-identifier/7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/highlight/7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@hutson/parse-repository-url/3.0.2: - resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} - engines: {node: '>=6.9.0'} - dev: true - - /@types/minimist/1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true - - /@types/normalize-package-data/2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true - - /JSONStream/1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - - /add-stream/1.0.0: - resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /array-ify/1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true - - /arrify/1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - - /camelcase-keys/6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /compare-func/2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: true - - /conventional-changelog-angular/5.0.13: - resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - - /conventional-changelog-atom/2.0.8: - resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-cli/2.2.2: - resolution: {integrity: sha512-8grMV5Jo8S0kP3yoMeJxV2P5R6VJOqK72IiSV9t/4H5r/HiRqEBQ83bYGuz4Yzfdj4bjaAEhZN/FFbsFXr5bOA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - add-stream: 1.0.0 - conventional-changelog: 3.1.25 - lodash: 4.17.21 - meow: 8.1.2 - tempfile: 3.0.0 - dev: true - - /conventional-changelog-codemirror/2.0.8: - resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-conventionalcommits/4.6.3: - resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - lodash: 4.17.21 - q: 1.5.1 - dev: true - - /conventional-changelog-core/4.2.4: - resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==} - engines: {node: '>=10'} - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 5.0.1 - conventional-commits-parser: 3.2.4 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 2.0.11 - git-remote-origin-url: 2.0.0 - git-semver-tags: 4.1.1 - lodash: 4.17.21 - normalize-package-data: 3.0.3 - q: 1.5.1 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - through2: 4.0.2 - dev: true - - /conventional-changelog-ember/2.0.9: - resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-eslint/3.0.9: - resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-express/2.0.6: - resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-jquery/3.0.11: - resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==} - engines: {node: '>=10'} - dependencies: - q: 1.5.1 - dev: true - - /conventional-changelog-jshint/2.0.9: - resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==} - engines: {node: '>=10'} - dependencies: - compare-func: 2.0.0 - q: 1.5.1 - dev: true - - /conventional-changelog-preset-loader/2.3.4: - resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==} - engines: {node: '>=10'} - dev: true - - /conventional-changelog-writer/5.0.1: - resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - conventional-commits-filter: 2.0.7 - dateformat: 3.0.3 - handlebars: 4.7.7 - json-stringify-safe: 5.0.1 - lodash: 4.17.21 - meow: 8.1.2 - semver: 6.3.0 - split: 1.0.1 - through2: 4.0.2 - dev: true - - /conventional-changelog/3.1.25: - resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==} - engines: {node: '>=10'} - dependencies: - conventional-changelog-angular: 5.0.13 - conventional-changelog-atom: 2.0.8 - conventional-changelog-codemirror: 2.0.8 - conventional-changelog-conventionalcommits: 4.6.3 - conventional-changelog-core: 4.2.4 - conventional-changelog-ember: 2.0.9 - conventional-changelog-eslint: 3.0.9 - conventional-changelog-express: 2.0.6 - conventional-changelog-jquery: 3.0.11 - conventional-changelog-jshint: 2.0.9 - conventional-changelog-preset-loader: 2.3.4 - dev: true - - /conventional-commits-filter/2.0.7: - resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==} - engines: {node: '>=10'} - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - dev: true - - /conventional-commits-parser/3.2.4: - resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==} - engines: {node: '>=10'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - - /core-util-is/1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true - - /dargs/7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - dev: true - - /dateformat/3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dev: true - - /decamelize-keys/1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - - /decamelize/1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /dot-prop/5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true - - /find-up/2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-pkg-repo/4.2.1: - resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.1.0 - through2: 2.0.5 - yargs: 16.2.0 - dev: true - - /git-raw-commits/2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - - /git-remote-origin-url/2.0.0: - resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} - engines: {node: '>=4'} - dependencies: - gitconfiglocal: 1.0.0 - pify: 2.3.0 - dev: true - - /git-semver-tags/4.1.1: - resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - meow: 8.1.2 - semver: 6.3.0 - dev: true - - /gitconfiglocal/1.0.0: - resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - dependencies: - ini: 1.3.8 - dev: true - - /graceful-fs/4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - - /handlebars/4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} - engines: {node: '>=0.4.7'} - hasBin: true - dependencies: - minimist: 1.2.8 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - - /hard-rejection/2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /hosted-git-info/4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - - /husky/8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /indent-string/4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /ini/1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-obj/2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true - - /is-plain-obj/1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - - /is-text-path/1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} - dependencies: - text-extensions: 1.9.0 - dev: true - - /isarray/1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true - - /json-parse-better-errors/1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-stringify-safe/5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true - - /jsonparse/1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - dev: true - - /kind-of/6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true - - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /load-json-file/4.0.0: - resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} - engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - - /locate-path/2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /lodash.ismatch/4.4.0: - resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - dev: true - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /map-obj/1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj/4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - - /meow/8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: true - - /min-indent/1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - - /minimist-options/4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - - /minimist/1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /modify-values/1.0.1: - resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} - engines: {node: '>=0.10.0'} - dev: true - - /neo-async/2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true - - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-package-data/3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.11.0 - semver: 7.3.8 - validate-npm-package-license: 3.0.4 - dev: true - - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-locate/2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-try/1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /parse-json/4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.18.6 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /path-exists/3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: true - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-type/3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - - /pify/2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - - /pify/3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - dev: true - - /process-nextick-args/2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true - - /q/1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: true - - /quick-lru/4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true - - /read-pkg-up/3.0.0: - resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} - engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - read-pkg: 3.0.0 - dev: true - - /read-pkg-up/7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: true - - /read-pkg/3.0.0: - resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} - engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - - /read-pkg/5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: true - - /readable-stream/2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - dev: true - - /readable-stream/3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /redent/3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true - - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - - /safe-buffer/5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /spdx-correct/3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.13 - dev: true - - /spdx-exceptions/2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.13 - dev: true - - /spdx-license-ids/3.0.13: - resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} - dev: true - - /split/1.0.1: - resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - dependencies: - through: 2.3.8 - dev: true - - /split2/3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.2 - dev: true - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string_decoder/1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /string_decoder/1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-bom/3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - - /strip-indent/3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-preserve-symlinks-flag/1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /temp-dir/2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - dev: true - - /tempfile/3.0.0: - resolution: {integrity: sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==} - engines: {node: '>=8'} - dependencies: - temp-dir: 2.0.0 - uuid: 3.4.0 - dev: true - - /text-extensions/1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - dev: true - - /through/2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /through2/2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - dependencies: - readable-stream: 2.3.8 - xtend: 4.0.2 - dev: true - - /through2/4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: true - - /trim-newlines/3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true - - /type-fest/0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: true - - /type-fest/0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true - - /type-fest/0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true - - /uglify-js/3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} - engines: {node: '>=0.8.0'} - hasBin: true - requiresBuild: true - dev: true - optional: true - - /util-deprecate/1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /uuid/3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - dev: true - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: true - - /wordwrap/1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true diff --git a/pom.xml b/pom.xml index 690e539..59abd01 100644 --- a/pom.xml +++ b/pom.xml @@ -5,24 +5,45 @@ 4.0.0 nanoseeds - CS203_DSAA_template_java + algorithm-template ${revision} ${project.artifactId} ${project.artifactId} - 0.0.5 + 0.0.6 11 - 3.0.0 - 5.9.2 - 1.0.16 + 3.5.4 + 5.13.4 + 1.0.20 ${java.version} ${java.version} + ${java.version} UTF-8 + 3.14.0 ${maven.compiler.encoding} pom 2020 + https://github.com/Certseeds/algorithm-template-java + + + + AGPL-3.0-or-later + https://spdx.org/licenses/AGPL-3.0-or-later.html + repo + + + + + GitHub Issues + https://github.com/Certseeds/algorithm-template-java/issues + + + GitHub Actions + https://github.com/Certseeds/algorithm-template-java/actions + + org.junit.jupiter @@ -36,6 +57,18 @@ ${junit.version} test + + org.slf4j + slf4j-jdk14 + 2.0.17 + test + + + org.projectlombok + lombok + 1.18.42 + test + @@ -51,13 +84,21 @@ - clean - + clean flatten + + org.apache.maven.plugins + maven-compiler-plugin + ${maven.compiler.plugin.version} + + + ${java.version} + +