diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..6b53613 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,18 @@ + +version: 2 + +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "weekly" + + target-branch: "develop" + ignore: + - dependency-name: "*" + update-types: [ "version-update:semver-major" ] diff --git a/.github/workflows/Tools.java b/.github/workflows/Tools.java new file mode 100644 index 0000000..32c63c3 --- /dev/null +++ b/.github/workflows/Tools.java @@ -0,0 +1,162 @@ +/* + * Copyright © 2024 Mark Raynsford https://www.io7m.com + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathFactory; +import java.io.File; +import java.io.IOException; +import java.util.List; +import java.util.TreeMap; + +public final class Tools +{ + private static final TreeMap OPS = + new TreeMap<>(); + + static { + final var opsList = List.of( + new ShowProjectVersion(), + new ShowProjectIsSnapshot() + ); + + for (final var op : opsList) { + OPS.put(op.name(), op); + } + } + + private Tools() + { + + } + + private interface OpType + { + String name(); + + void execute(String[] args) + throws Exception; + } + + private static String getProjectVersion( + final File file) + throws Exception + { + final var documentBuilders = + DocumentBuilderFactory.newInstance(); + final var documentBuilder = + documentBuilders.newDocumentBuilder(); + final var document = + documentBuilder.parse(file); + + final var xPathFactory = + XPathFactory.newInstance(); + final var xPath = + xPathFactory.newXPath(); + + final var nodes = + (NodeList) xPath.evaluate( + "//project/version", + document, + XPathConstants.NODESET + ); + + for (var i = 0; i < nodes.getLength(); i++) { + final var node = nodes.item(i); + if (node.getNodeType() == Node.ELEMENT_NODE) { + return node.getTextContent().trim(); + } + } + + throw new IOException( + "Could not locate a //project/version node!" + ); + } + + private static final class ShowProjectVersion implements OpType + { + ShowProjectVersion() + { + + } + + @Override + public String name() + { + return "ShowProjectVersion"; + } + + @Override + public void execute( + final String[] args) + throws Exception + { + System.out.print("IO7M_PROJECT_VERSION="); + System.out.println(getProjectVersion(new File(args[1]))); + } + } + + private static final class ShowProjectIsSnapshot implements OpType + { + ShowProjectIsSnapshot() + { + + } + + @Override + public String name() + { + return "ShowProjectIsSnapshot"; + } + + @Override + public void execute( + final String[] args) + throws Exception + { + System.out.print("IO7M_PROJECT_VERSION_IS_SNAPSHOT="); + System.out.println( + getProjectVersion(new File(args[1])).endsWith("-SNAPSHOT") + ); + } + } + + public static void main( + final String[] args) + throws Exception + { + if (args.length == 0) { + System.err.println("Usage: command"); + System.exit(1); + } + + final var op = OPS.get(args[0]); + if (op == null) { + System.err.println("Unrecognized command."); + System.err.println(" Must be one of:"); + for (final var name : OPS.keySet()) { + System.err.print(" "); + System.err.println(name); + } + System.exit(1); + } + + op.execute(args); + } +} \ No newline at end of file diff --git a/.github/workflows/deploy-release.sh b/.github/workflows/deploy-release.sh new file mode 100755 index 0000000..e25fc82 --- /dev/null +++ b/.github/workflows/deploy-release.sh @@ -0,0 +1,58 @@ +#!/bin/sh + +fatal() +{ + echo "fatal: $1" 1>&2 + exit 1 +} + +if [ -z "${MAVEN_CENTRAL_USERNAME}" ] +then + fatal "MAVEN_CENTRAL_USERNAME is not set." +fi + +if [ -z "${MAVEN_CENTRAL_PASSWORD}" ] +then + fatal "MAVEN_CENTRAL_PASSWORD is not set." +fi + +(cat < + + + + io7m + + true + github-ci-maven-rsa-key + true + + + + + + + sonatype-nexus-snapshots + ${MAVEN_CENTRAL_USERNAME} + ${MAVEN_CENTRAL_PASSWORD} + + + sonatype-nexus-staging + ${MAVEN_CENTRAL_USERNAME} + ${MAVEN_CENTRAL_PASSWORD} + + + +EOF +) > "$HOME/.m2/settings.xml" || fatal "could not update $HOME/.m2/settings.xml" + +exec mvn \ +-Dio7m.release=true \ +-Dio7m.deployment=true \ +--batch-mode \ +--strict-checksums \ +-DskipTests=true \ +-DskipITs=true deploy diff --git a/.github/workflows/deploy-snapshot.sh b/.github/workflows/deploy-snapshot.sh new file mode 100755 index 0000000..227c79c --- /dev/null +++ b/.github/workflows/deploy-snapshot.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +fatal() +{ + echo "fatal: $1" 1>&2 + exit 1 +} + +if [ -z "${MAVEN_CENTRAL_USERNAME}" ] +then + fatal "MAVEN_CENTRAL_USERNAME is not set." +fi + +if [ -z "${MAVEN_CENTRAL_PASSWORD}" ] +then + fatal "MAVEN_CENTRAL_PASSWORD is not set." +fi + +(cat < + + + sonatype-nexus-snapshots + ${MAVEN_CENTRAL_USERNAME} + ${MAVEN_CENTRAL_PASSWORD} + + + sonatype-nexus-staging + ${MAVEN_CENTRAL_USERNAME} + ${MAVEN_CENTRAL_PASSWORD} + + + +EOF +) > "$HOME/.m2/settings.xml" || fatal "could not update $HOME/.m2/settings.xml" + +exec mvn \ +--batch-mode \ +--strict-checksums \ +-DskipTests=true \ +-DskipITs=true deploy diff --git a/.github/workflows/deploy.linux.temurin.lts.yml b/.github/workflows/deploy.linux.temurin.lts.yml new file mode 100644 index 0000000..cc7759b --- /dev/null +++ b/.github/workflows/deploy.linux.temurin.lts.yml @@ -0,0 +1,30 @@ +name: deploy.linux.temurin.lts + +on: + push: + tags: [ com.io7m.jaffirm-* ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: JDK + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: 'temurin' + + - name: Import signing key + env: + PGP_SIGNING_KEY: ${{ secrets.PGP_SIGNING_KEY }} + run: echo "${PGP_SIGNING_KEY}" | gpg --import + + - name: Deploy release + env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + run: .github/workflows/deploy-release.sh diff --git a/.github/workflows/main-openjdk_current-linux.yml b/.github/workflows/main-openjdk_current-linux.yml deleted file mode 100644 index cabb4e3..0000000 --- a/.github/workflows/main-openjdk_current-linux.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: main-openjdk_current-linux - -on: - push: - branches: [ develop, feature/*, release/* ] - pull_request: - branches: [ develop ] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: JDK - uses: actions/setup-java@v1 - with: - java-version: 17 - - name: Build - run: mvn --errors clean verify site diff --git a/.github/workflows/main-openjdk_current-windows.yml b/.github/workflows/main-openjdk_current-windows.yml deleted file mode 100644 index 5432450..0000000 --- a/.github/workflows/main-openjdk_current-windows.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: main-openjdk_current-windows - -on: - push: - branches: [ develop, feature/*, release/* ] - pull_request: - branches: [ develop ] - -jobs: - build: - runs-on: windows-latest - steps: - - uses: actions/checkout@v2 - - name: JDK - uses: actions/setup-java@v1 - with: - java-version: 17 - - name: Build - run: mvn --errors clean verify site diff --git a/.github/workflows/main-openjdk_lts-linux.yml b/.github/workflows/main-openjdk_lts-linux.yml deleted file mode 100644 index 1c65f29..0000000 --- a/.github/workflows/main-openjdk_lts-linux.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: main-openjdk_lts-linux - -on: - push: - branches: [ develop, feature/*, release/* ] - pull_request: - branches: [ develop ] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: JDK - uses: actions/setup-java@v1 - with: - java-version: 17 - - name: Build - run: mvn --errors clean verify site - - name: Coverage - uses: codecov/codecov-action@v1 - with: - file: com.io7m.jaffirm.tests/target/site/jacoco/jacoco.xml diff --git a/.github/workflows/main.linux.temurin.current.yml b/.github/workflows/main.linux.temurin.current.yml new file mode 100644 index 0000000..d2014e2 --- /dev/null +++ b/.github/workflows/main.linux.temurin.current.yml @@ -0,0 +1,40 @@ +name: main.linux.temurin.current + +on: + push: + branches: [ develop, feature/*, release/* ] + pull_request: + branches: [ develop ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: JDK + uses: actions/setup-java@v4 + with: + java-version: 22 + distribution: 'temurin' + + - name: Collect project version + id: project_version + run: java .github/workflows/Tools.java ShowProjectVersion pom.xml >> "$GITHUB_OUTPUT" + + - name: Collect project snapshot + id: project_is_snapshot + run: java .github/workflows/Tools.java ShowProjectIsSnapshot pom.xml >> "$GITHUB_OUTPUT" + + - name: Build + run: mvn --batch-mode --strict-checksums --errors clean verify site + + - name: Upload test logs + uses: actions/upload-artifact@v4 + if: always() + with: + name: test-logs + path: ./com.io7m.jaffirm.tests/target/surefire-reports + diff --git a/.github/workflows/main.linux.temurin.lts.yml b/.github/workflows/main.linux.temurin.lts.yml new file mode 100644 index 0000000..5fd7ddc --- /dev/null +++ b/.github/workflows/main.linux.temurin.lts.yml @@ -0,0 +1,53 @@ +name: main.linux.temurin.lts + +on: + push: + branches: [ develop, feature/*, release/* ] + pull_request: + branches: [ develop ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: JDK + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: 'temurin' + + - name: Collect project version + id: project_version + run: java .github/workflows/Tools.java ShowProjectVersion pom.xml >> "$GITHUB_OUTPUT" + + - name: Collect project snapshot + id: project_is_snapshot + run: java .github/workflows/Tools.java ShowProjectIsSnapshot pom.xml >> "$GITHUB_OUTPUT" + + - name: Build + run: mvn --batch-mode --strict-checksums --errors clean verify site + + - name: Upload test logs + uses: actions/upload-artifact@v4 + if: always() + with: + name: test-logs + path: ./com.io7m.jaffirm.tests/target/surefire-reports + + - name: Coverage + uses: codecov/codecov-action@v4.3.1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + file: com.io7m.jaffirm.tests/target/site/jacoco-aggregate/jacoco.xml + + - name: Deploy snapshot + if: ${{ steps.project_is_snapshot.outputs.IO7M_PROJECT_VERSION_IS_SNAPSHOT == 'true' }} + env: + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + run: .github/workflows/deploy-snapshot.sh + diff --git a/.github/workflows/main.windows.temurin.current.yml b/.github/workflows/main.windows.temurin.current.yml new file mode 100644 index 0000000..0e9f594 --- /dev/null +++ b/.github/workflows/main.windows.temurin.current.yml @@ -0,0 +1,40 @@ +name: main.windows.temurin.current + +on: + push: + branches: [ develop, feature/*, release/* ] + pull_request: + branches: [ develop ] + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: JDK + uses: actions/setup-java@v4 + with: + java-version: 22 + distribution: 'temurin' + + - name: Collect project version + id: project_version + run: java .github/workflows/Tools.java ShowProjectVersion pom.xml >> "$GITHUB_OUTPUT" + + - name: Collect project snapshot + id: project_is_snapshot + run: java .github/workflows/Tools.java ShowProjectIsSnapshot pom.xml >> "$GITHUB_OUTPUT" + + - name: Build + run: mvn --batch-mode --strict-checksums --errors clean verify site + + - name: Upload test logs + uses: actions/upload-artifact@v4 + if: always() + with: + name: test-logs + path: ./com.io7m.jaffirm.tests/target/surefire-reports + diff --git a/.github/workflows/main.windows.temurin.lts.yml b/.github/workflows/main.windows.temurin.lts.yml new file mode 100644 index 0000000..4e1ca04 --- /dev/null +++ b/.github/workflows/main.windows.temurin.lts.yml @@ -0,0 +1,40 @@ +name: main.windows.temurin.lts + +on: + push: + branches: [ develop, feature/*, release/* ] + pull_request: + branches: [ develop ] + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: JDK + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: 'temurin' + + - name: Collect project version + id: project_version + run: java .github/workflows/Tools.java ShowProjectVersion pom.xml >> "$GITHUB_OUTPUT" + + - name: Collect project snapshot + id: project_is_snapshot + run: java .github/workflows/Tools.java ShowProjectIsSnapshot pom.xml >> "$GITHUB_OUTPUT" + + - name: Build + run: mvn --batch-mode --strict-checksums --errors clean verify site + + - name: Upload test logs + uses: actions/upload-artifact@v4 + if: always() + with: + name: test-logs + path: ./com.io7m.jaffirm.tests/target/surefire-reports + diff --git a/.gitmodules b/.gitmodules index 809031e..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule ".jenkins"] - path = .jenkins - url = https://github.com/io7m/jenkinsfiles diff --git a/.jenkins b/.jenkins deleted file mode 160000 index fa8acaa..0000000 --- a/.jenkins +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fa8acaaeb69e3ea943b634ee0012987ee81b4157 diff --git a/README-CHANGES.xml b/README-CHANGES.xml index 93ec3c5..9bdff4f 100644 --- a/README-CHANGES.xml +++ b/README-CHANGES.xml @@ -58,13 +58,22 @@ - + + + + + + + + + + - + diff --git a/README-LICENSE.txt b/README-LICENSE.txt index 170a94b..f627468 100644 --- a/README-LICENSE.txt +++ b/README-LICENSE.txt @@ -1,4 +1,4 @@ -Copyright © 2016 http://io7m.com +Copyright © 2023 Mark Raynsford https://www.io7m.com Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/README.in b/README.in new file mode 100644 index 0000000..225bd9d --- /dev/null +++ b/README.in @@ -0,0 +1,63 @@ + +## jaffirm + +The `jaffirm` package provides simple and fast pre/postcondition and invariant +checking functions. + +## Features + +* Static invocation, zero-allocation code paths for the common case of non-failing contracts. +* Specialized and generic variants of all functions for use in low-latency software. +* Detailed contract failure messages by construction. +* Written in pure Java 17. +* High coverage test suite. +* [OSGi-ready](https://www.osgi.org/) +* [JPMS-ready](https://en.wikipedia.org/wiki/Java_Platform_Module_System) +* ISC license. + +## Usage + +Declare preconditions with the `Preconditions` class. +Declare postconditions with the `Postconditions` class. +Declare invariants with the `Invariants` class. + +``` +import static com.io7m.jaffirm.core.Contracts.conditionI; +import static com.io7m.jaffirm.core.Preconditions.checkPreconditionI; +import static com.io7m.jaffirm.core.Preconditions.checkPreconditionsI; + +int exampleSingles(final int x) +{ + checkPreconditionI(x, x > 0, i -> "Input " + i + " must be > 0"); + checkPreconditionI(x, x % 2 == 0, i -> "Input " + i + " must be even"); + return x * 2; +} + +int exampleMultis(final int x) +{ + checkPreconditionsI( + x, + conditionI(i -> i > 0, i -> "Input " + i + " must be > 0"), + conditionI(i -> i % 2 == 0, i -> "Input " + i + " must be even")); + return x * 2; +} + +> exampleSingles(0) +Exception in thread "main" com.io7m.jaffirm.core.PreconditionViolationException: Precondition violation. + Received: 0 + Violated conditions: + [0]: Input 0 must be > 0 + +> exampleSingles(1) +Exception in thread "main" com.io7m.jaffirm.core.PreconditionViolationException: Precondition violation. + Received: 1 + Violated conditions: + [0]: Input 1 must be even + +> exampleMultis(-1) +Exception in thread "main" com.io7m.jaffirm.core.PreconditionViolationException: Precondition violation. + Received: -1 + Violated conditions: + [0]: Input -1 must be > 0 + [1]: Input -1 must be even +``` diff --git a/README.md b/README.md index bf4d7c2..da709fa 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,78 @@ jaffirm === [![Maven Central](https://img.shields.io/maven-central/v/com.io7m.jaffirm/com.io7m.jaffirm.svg?style=flat-square)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.io7m.jaffirm%22) -[![Maven Central (snapshot)](https://img.shields.io/nexus/s/https/oss.sonatype.org/com.io7m.jaffirm/com.io7m.jaffirm.svg?style=flat-square)](https://oss.sonatype.org/content/repositories/snapshots/com/io7m/jaffirm/) -[![Codecov](https://img.shields.io/codecov/c/github/io7m/jaffirm.svg?style=flat-square)](https://codecov.io/gh/io7m/jaffirm) +[![Maven Central (snapshot)](https://img.shields.io/nexus/s/com.io7m.jaffirm/com.io7m.jaffirm?server=https%3A%2F%2Fs01.oss.sonatype.org&style=flat-square)](https://s01.oss.sonatype.org/content/repositories/snapshots/com/io7m/jaffirm/) +[![Codecov](https://img.shields.io/codecov/c/github/io7m-com/jaffirm.svg?style=flat-square)](https://codecov.io/gh/io7m-com/jaffirm) -![jaffirm](./src/site/resources/jaffirm.jpg?raw=true) +![com.io7m.jaffirm](./src/site/resources/jaffirm.jpg?raw=true) -| JVM | Platform | Status | -|-----------------|----------|--------| -| OpenJDK LTS | Linux | [![Build (OpenJDK LTS, Linux)](https://img.shields.io/github/workflow/status/io7m/jaffirm/main-openjdk_lts-linux)](https://github.com/io7m/jaffirm/actions?query=workflow%3Amain-openjdk_lts-linux) | -| OpenJDK Current | Linux | [![Build (OpenJDK Current, Linux)](https://img.shields.io/github/workflow/status/io7m/jaffirm/main-openjdk_current-linux)](https://github.com/io7m/jaffirm/actions?query=workflow%3Amain-openjdk_current-linux) -| OpenJDK Current | Windows | [![Build (OpenJDK Current, Windows)](https://img.shields.io/github/workflow/status/io7m/jaffirm/main-openjdk_current-windows)](https://github.com/io7m/jaffirm/actions?query=workflow%3Amain-openjdk_current-windows) +| JVM | Platform | Status | +|-----|----------|--------| +| OpenJDK (Temurin) Current | Linux | [![Build (OpenJDK (Temurin) Current, Linux)](https://img.shields.io/github/actions/workflow/status/io7m-com/jaffirm/main.linux.temurin.current.yml)](https://www.github.com/io7m-com/jaffirm/actions?query=workflow%3Amain.linux.temurin.current)| +| OpenJDK (Temurin) LTS | Linux | [![Build (OpenJDK (Temurin) LTS, Linux)](https://img.shields.io/github/actions/workflow/status/io7m-com/jaffirm/main.linux.temurin.lts.yml)](https://www.github.com/io7m-com/jaffirm/actions?query=workflow%3Amain.linux.temurin.lts)| +| OpenJDK (Temurin) Current | Windows | [![Build (OpenJDK (Temurin) Current, Windows)](https://img.shields.io/github/actions/workflow/status/io7m-com/jaffirm/main.windows.temurin.current.yml)](https://www.github.com/io7m-com/jaffirm/actions?query=workflow%3Amain.windows.temurin.current)| +| OpenJDK (Temurin) LTS | Windows | [![Build (OpenJDK (Temurin) LTS, Windows)](https://img.shields.io/github/actions/workflow/status/io7m-com/jaffirm/main.windows.temurin.lts.yml)](https://www.github.com/io7m-com/jaffirm/actions?query=workflow%3Amain.windows.temurin.lts)| + +## jaffirm + +The `jaffirm` package provides simple and fast pre/postcondition and invariant +checking functions. + +## Features + +* Static invocation, zero-allocation code paths for the common case of non-failing contracts. +* Specialized and generic variants of all functions for use in low-latency software. +* Detailed contract failure messages by construction. +* Written in pure Java 17. +* High coverage test suite. +* [OSGi-ready](https://www.osgi.org/) +* [JPMS-ready](https://en.wikipedia.org/wiki/Java_Platform_Module_System) +* ISC license. + +## Usage + +Declare preconditions with the `Preconditions` class. +Declare postconditions with the `Postconditions` class. +Declare invariants with the `Invariants` class. + +``` +import static com.io7m.jaffirm.core.Contracts.conditionI; +import static com.io7m.jaffirm.core.Preconditions.checkPreconditionI; +import static com.io7m.jaffirm.core.Preconditions.checkPreconditionsI; + +int exampleSingles(final int x) +{ + checkPreconditionI(x, x > 0, i -> "Input " + i + " must be > 0"); + checkPreconditionI(x, x % 2 == 0, i -> "Input " + i + " must be even"); + return x * 2; +} + +int exampleMultis(final int x) +{ + checkPreconditionsI( + x, + conditionI(i -> i > 0, i -> "Input " + i + " must be > 0"), + conditionI(i -> i % 2 == 0, i -> "Input " + i + " must be even")); + return x * 2; +} + +> exampleSingles(0) +Exception in thread "main" com.io7m.jaffirm.core.PreconditionViolationException: Precondition violation. + Received: 0 + Violated conditions: + [0]: Input 0 must be > 0 + +> exampleSingles(1) +Exception in thread "main" com.io7m.jaffirm.core.PreconditionViolationException: Precondition violation. + Received: 1 + Violated conditions: + [0]: Input 1 must be even + +> exampleMultis(-1) +Exception in thread "main" com.io7m.jaffirm.core.PreconditionViolationException: Precondition violation. + Received: -1 + Violated conditions: + [0]: Input -1 must be > 0 + [1]: Input -1 must be even +``` diff --git a/com.io7m.jaffirm.core/pom.xml b/com.io7m.jaffirm.core/pom.xml index 8b9d452..f6b1c30 100644 --- a/com.io7m.jaffirm.core/pom.xml +++ b/com.io7m.jaffirm.core/pom.xml @@ -8,7 +8,7 @@ com.io7m.jaffirm com.io7m.jaffirm - 4.0.0 + 4.0.1 com.io7m.jaffirm.core @@ -39,8 +39,8 @@ provided - com.io7m.immutables.style - com.io7m.immutables.style + com.io7m.immutables-style + com.io7m.immutables-style provided diff --git a/com.io7m.jaffirm.documentation/pom.xml b/com.io7m.jaffirm.documentation/pom.xml deleted file mode 100644 index aea91a8..0000000 --- a/com.io7m.jaffirm.documentation/pom.xml +++ /dev/null @@ -1,242 +0,0 @@ - - - - 4.0.0 - - - com.io7m.jaffirm - com.io7m.jaffirm - 4.0.0 - - - com.io7m.jaffirm.documentation - jar - - com.io7m.jaffirm.documentation - Contract checking (Documentation) - https://www.io7m.com/software/jaffirm - - - true - - - - - ${project.groupId} - com.io7m.jaffirm.core - ${project.version} - - - - com.io7m.primogenitor - com.io7m.primogenitor.support - - - - org.osgi - org.osgi.annotation.bundle - provided - - - org.osgi - org.osgi.annotation.versioning - provided - - - org.immutables - value - provided - - - com.io7m.immutables.style - com.io7m.immutables.style - provided - - - - - - - - org.apache.maven.plugins - maven-resources-plugin - - - copy-documentation-resources - - copy-resources - - generate-resources - - ${project.build.directory}/documentation/ - - - src/main/resources/com/io7m/jaffirm/documentation/ - true - - - - - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - unpack-sources - package - - unpack-dependencies - - - module-info.java - ${project.groupId} - sources - false - ${project.build.directory}/javadoc-sources - - - - make-classpath - package - - build-classpath - - - ${project.build.directory}/javadoc-classpath - - - - - - - - com.io7m.kstructural - io7m-kstructural-maven-plugin - - - exec-multi - - compileXHTML - - process-resources - - ${project.build.directory}/documentation/documentation.sd - ${project.build.directory}/documentation/ - XHTML_MULTI_PAGE - - documentation.css - - - - - exec-single - - compileXHTML - - process-resources - - ${project.build.directory}/documentation/documentation.sd - ${project.build.directory}/documentation/ - XHTML_SINGLE_PAGE - - documentation.css - - - - - exec-plain - - compilePlain - - process-resources - - ${project.build.directory}/documentation/documentation.sd - ${project.build.directory}/documentation/ - - - - - - - - org.codehaus.mojo - exec-maven-plugin - - - - java - - package - - com.io7m.primogenitor.support.TrivialJavadoc - - ${project.build.directory}/javadoc-sources - ${project.build.directory}/javadoc-classpath - ${project.build.directory}/documentation/apidocs - ${project.build.directory}/javadoc-log.txt - ${project.build.directory}/javadoc-options - - - - - - - - - org.apache.maven.plugins - maven-assembly-plugin - - - src/main/assembly/documentation.xml - - - - - make-assembly - package - - single - - - false - - - - - - - - - org.codehaus.mojo - truezip-maven-plugin - false - - - copy-site-documentation - - copy - - site - - true - - - ${project.build.directory}/${project.name}-${project.version}.zip/${project.name}-${project.version}/ - - ${project.parent.build.directory}/minisite/documentation/ - - - - - - - - - diff --git a/com.io7m.jaffirm.documentation/src/main/assembly/documentation.xml b/com.io7m.jaffirm.documentation/src/main/assembly/documentation.xml deleted file mode 100644 index b888871..0000000 --- a/com.io7m.jaffirm.documentation/src/main/assembly/documentation.xml +++ /dev/null @@ -1,20 +0,0 @@ - - documentation - ${project.name}-${project.version} - - zip - - - - ${project.build.directory}/documentation - / - - - ${project.build.directory}/site/apidocs - /apidocs - - - diff --git a/com.io7m.jaffirm.documentation/src/main/java/com/io7m/jaffirm/documentation/Documentation.java b/com.io7m.jaffirm.documentation/src/main/java/com/io7m/jaffirm/documentation/Documentation.java deleted file mode 100644 index 5164371..0000000 --- a/com.io7m.jaffirm.documentation/src/main/java/com/io7m/jaffirm/documentation/Documentation.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright © 2016 Mark Raynsford https://www.io7m.com - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR - * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package com.io7m.jaffirm.documentation; - -/** - * Marker class for looking up files by resource. - */ - -public final class Documentation -{ - private Documentation() - { - throw new AssertionError("Unreachable code"); - } -} - diff --git a/com.io7m.jaffirm.documentation/src/main/java/com/io7m/jaffirm/documentation/package-info.java b/com.io7m.jaffirm.documentation/src/main/java/com/io7m/jaffirm/documentation/package-info.java deleted file mode 100644 index 54aecb1..0000000 --- a/com.io7m.jaffirm.documentation/src/main/java/com/io7m/jaffirm/documentation/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright © 2016 Mark Raynsford https://www.io7m.com - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR - * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/** - * Documentation. - */ - -package com.io7m.jaffirm.documentation; - diff --git a/com.io7m.jaffirm.documentation/src/main/java/module-info.java b/com.io7m.jaffirm.documentation/src/main/java/module-info.java deleted file mode 100644 index c1ff925..0000000 --- a/com.io7m.jaffirm.documentation/src/main/java/module-info.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright © 2016 Mark Raynsford https://www.io7m.com - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR - * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/** - * Documentation. - */ - -module com.io7m.jaffirm.documentation -{ - requires com.io7m.jaffirm.core; - requires static com.io7m.immutables.style; - - exports com.io7m.jaffirm.documentation; -} \ No newline at end of file diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/api.sdi b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/api.sdi deleted file mode 100644 index ca17cb5..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/api.sdi +++ /dev/null @@ -1,4 +0,0 @@ -[part [title API] [id api]] -[section [title JavaDoc] [id api.javadoc]] -[paragraph] -API documentation for the package is provided via the included [link-ext [target "apidocs"] Javadoc]. diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/brand.xml b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/brand.xml deleted file mode 100644 index 0cd038f..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/brand.xml +++ /dev/null @@ -1,9 +0,0 @@ - -
-
- io7m -
-
- ${project.parent.name} ${project.version} -
-
diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/documentation.css b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/documentation.css deleted file mode 100644 index 3f34ec9..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/documentation.css +++ /dev/null @@ -1,118 +0,0 @@ -.brand -{ - font-size: 75%; - font-family: monospace; -} - -.brand_left -{ - float: left; -} - -.brand_right -{ - text-align: right; -} - -.package -{ - font-family: monospace; - font-weight: bold; -} - -.emphasis, -.term -{ - font-style: italic; -} - -.attribute, -.class, -.command, -.constant, -.element, -.expression, -.file, -.function, -.keyword, -.parameter, -.protocol, -.variable, -.type -{ - font-family: monospace; -} - -.example, .license, .terminal -{ - font-family: monospace; - border: 1px solid #ccc; - padding-top: 1.0em; - padding-left: 1.0em; - padding-bottom: 1.0em; - margin-top: 1.2em; - overflow: auto; -} - -.monospace -{ - font-family: monospace; -} -.italic -{ - font-style: italic; -} -.bold -{ - font-weight: bold; -} - -.example_3x3 td, -.example_3x3 th -{ - padding-right: 3.0em; - font-family: monospace; - font-size: 9pt; -} - -.comparison_good -{ - background-color: #ccffcc; -} - -.comparison_neutral -{ - background-color: #ffffcc; -} - -.comparison_bad -{ - background-color: #ffcccc; -} - -.comparison td, .comparison th -{ - padding-right: 1.0em; - font-family: monospace; - font-size: 9pt; - vertical-align: top; -} - -.dependencies table td -{ - padding-right: 3.0em; - font-family: monospace; - font-size: 9pt; -} - -.platforms table td -{ - padding-right: 2.0em; -} -.platforms table tbody, -.platforms table thead -{ - font-size: 8pt; - font-family: monospace; -} - diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/documentation.sd b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/documentation.sd deleted file mode 100644 index 9acbc63..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/documentation.sd +++ /dev/null @@ -1,3 +0,0 @@ -[document [title ${project.parent.name} ${project.version} Documentation] - [import "pkg.sdi"] - [import "api.sdi"]] diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-install.sdi b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-install.sdi deleted file mode 100644 index 244e315..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-install.sdi +++ /dev/null @@ -1,23 +0,0 @@ -[section [title Installation] [id pkg.install]] -[subsection [title Source compilation] [id pkg.install.source]] -[paragraph] -The project can be compiled and installed with -[link-ext [target "http://maven.apache.org"] Maven]: - -[paragraph] -[verbatim [type example] "$ mvn -C clean install"] - -[subsection [title Maven] [id pkg.install.maven]] -[paragraph] -Regular releases are made to the -[link-ext [target "http://search.maven.org/#search%7Cga%7C1%7C${project.parent.name}"] Central Repository]. - -[paragraph] -All [link-ext [target "http://io7m.com"] io7m.com] packages use -Semantic Versioning [footnote-ref semver], which implies that it is -always safe to use version ranges with an exclusive upper bound equal -to the next major version - the API of the package will not change in -a backwards-incompatible manner before the next major version. - -[footnote [id semver]] -[link-ext [target "http://semver.org"] http://semver.org] diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-license.sdi b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-license.sdi deleted file mode 100644 index 72fa987..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-license.sdi +++ /dev/null @@ -1,20 +0,0 @@ -[section [title License] [id pkg.license]] -[paragraph] -All files distributed with the [term [type package] ${project.parent.name}] -package are placed under the following license: - -[formal-item [title License]] -[verbatim [type license] -"Copyright © 2017 http://io7m.com - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE."] diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-overview.sdi b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-overview.sdi deleted file mode 100644 index d7ed008..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-overview.sdi +++ /dev/null @@ -1,5 +0,0 @@ -[section [title Orientation] [id pkg.orientation]] -[subsection [title Overview] [id pkg.orientation.overview]] -[paragraph] -The [term [type package] ${project.parent.name}] package provides simple and -fast pre/postcondition and invariant checking functions. diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-platform.sdi b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-platform.sdi deleted file mode 100644 index 3719fa5..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg-platform.sdi +++ /dev/null @@ -1,3 +0,0 @@ -[section [title Platform Specific Issues] [id pkg.platform]] -[paragraph] -There are no known platform-specific issues. diff --git a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg.sdi b/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg.sdi deleted file mode 100644 index 9006f31..0000000 --- a/com.io7m.jaffirm.documentation/src/main/resources/com/io7m/jaffirm/documentation/pkg.sdi +++ /dev/null @@ -1,5 +0,0 @@ -[part [title Package Information] [id pkg]] -[import "pkg-overview.sdi"] -[import "pkg-install.sdi"] -[import "pkg-platform.sdi"] -[import "pkg-license.sdi"] \ No newline at end of file diff --git a/com.io7m.jaffirm.tests/pom.xml b/com.io7m.jaffirm.tests/pom.xml index 7b20791..58cb13d 100644 --- a/com.io7m.jaffirm.tests/pom.xml +++ b/com.io7m.jaffirm.tests/pom.xml @@ -8,7 +8,7 @@ com.io7m.jaffirm com.io7m.jaffirm - 4.0.0 + 4.0.1 com.io7m.jaffirm.tests @@ -19,6 +19,8 @@ true + true + true @@ -31,12 +33,10 @@ org.junit.jupiter junit-jupiter-engine - test org.junit.jupiter junit-jupiter-api - test diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractConditionTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractConditionTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractConditionTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractConditionTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractDoubleConditionTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractDoubleConditionTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractDoubleConditionTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractDoubleConditionTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractExample.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractExample.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractExample.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractExample.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractIntConditionTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractIntConditionTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractIntConditionTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractIntConditionTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractLongConditionTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractLongConditionTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractLongConditionTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractLongConditionTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractsTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractsTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/ContractsTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/ContractsTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/InvariantsTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/InvariantsTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/InvariantsTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/InvariantsTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/PostconditionsTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/PostconditionsTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/PostconditionsTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/PostconditionsTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/PreconditionsTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/PreconditionsTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/PreconditionsTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/PreconditionsTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/SafeApplicationTest.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/SafeApplicationTest.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/SafeApplicationTest.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/SafeApplicationTest.java diff --git a/com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/package-info.java b/com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/package-info.java similarity index 100% rename from com.io7m.jaffirm.tests/src/test/java/com/io7m/jaffirm/tests/core/package-info.java rename to com.io7m.jaffirm.tests/src/main/java/com/io7m/jaffirm/tests/core/package-info.java diff --git a/pom.xml b/pom.xml index e3345c2..d7683da 100644 --- a/pom.xml +++ b/pom.xml @@ -9,12 +9,12 @@ com.io7m.primogenitor com.io7m.primogenitor.full - 7.0.0 + 8.2.0 com.io7m.jaffirm com.io7m.jaffirm - 4.0.0 + 4.0.1 pom com.io7m.jaffirm @@ -23,26 +23,26 @@ com.io7m.jaffirm.core - com.io7m.jaffirm.documentation com.io7m.jaffirm.tests - 3.0.4 - 2.6.0 + 4.0.0 + 17 + 2.10.1 - ISC License + ISC https://io7m.com/license/isc.txt - https://github.com/io7m/jaffirm - scm:git:https://github.com/io7m/jaffirm - scm:git:https://github.com/io7m/jaffirm + https://www.github.com/io7m-com/jaffirm + scm:git:https://www.github.com/io7m-com/jaffirm + scm:git:https://www.github.com/io7m-com/jaffirm @@ -55,7 +55,7 @@ - https://github.com/io7m/jaffirm/issues + https://www.github.com/io7m-com/jaffirm/issues GitHub Issues @@ -67,11 +67,11 @@ sonatype-nexus-staging - https://oss.sonatype.org/service/local/staging/deploy/maven2/ + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ sonatype-nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots/ + https://s01.oss.sonatype.org/content/repositories/snapshots/ @@ -89,7 +89,7 @@ com.io7m.junreachable com.io7m.junreachable.core - 4.0.0 + 4.0.2 @@ -98,26 +98,26 @@ ${io7m.org.immutables.version} - com.io7m.immutables.style - com.io7m.immutables.style - 0.0.1 + com.io7m.immutables-style + com.io7m.immutables-style + 1.0.0 org.junit.jupiter junit-jupiter-engine - 5.8.2 + 5.10.2 org.junit.jupiter junit-jupiter-api - 5.8.2 + 5.10.2 com.io7m.primogenitor com.io7m.primogenitor.support - 7.0.0 + 8.2.0 @@ -151,13 +151,6 @@ - - - com.io7m.kstructural - io7m-kstructural-maven-plugin - 0.3.1 - - com.github.spotbugs diff --git a/src/site/resources/documentation.xml b/src/site/resources/documentation.xml index d240953..7b88642 100644 --- a/src/site/resources/documentation.xml +++ b/src/site/resources/documentation.xml @@ -2,9 +2,7 @@

User documentation

- +

+ See the README. +

diff --git a/src/site/resources/icon.png b/src/site/resources/icon.png index d68bb2b..ae48801 100644 Binary files a/src/site/resources/icon.png and b/src/site/resources/icon.png differ diff --git a/src/site/resources/jaffirm.jpg b/src/site/resources/jaffirm.jpg index f373f6b..5c2c55e 100644 Binary files a/src/site/resources/jaffirm.jpg and b/src/site/resources/jaffirm.jpg differ diff --git a/src/site/resources/overview.xml b/src/site/resources/overview.xml index 93726f4..33bc5c6 100644 --- a/src/site/resources/overview.xml +++ b/src/site/resources/overview.xml @@ -1,15 +1,15 @@