Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 0 additions & 83 deletions .github/workflows/main.yaml

This file was deleted.

78 changes: 78 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: PR

on: pull_request

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
verify:
name: JDK ${{ matrix.jdk }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
jdk: [21, 25]
steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
java-version: ${{ matrix.jdk }}
distribution: corretto
cache: maven
- name: Download scanii-cli
shell: bash
run: |
set -euo pipefail
# Resolve latest version
VERSION=$(curl -fsSL -H "Authorization: Bearer ${{ github.token }}" \
https://api.github.com/repos/scanii/scanii-cli/releases/latest \
| grep '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
echo "scanii-cli version: $VERSION"

# Map runner to GoReleaser's OS/arch naming
case "${{ runner.os }}" in
Linux) OS=linux ; EXT=tar.gz ;;
macOS) OS=darwin ; EXT=tar.gz ;;
Windows) OS=windows; EXT=zip ;;
esac
case "$(uname -m)" in
x86_64|amd64) ARCH=amd64 ;;
arm64|aarch64) ARCH=arm64 ;;
*) ARCH=amd64 ;;
esac

ASSET="scanii-cli-${VERSION}-${OS}-${ARCH}.${EXT}"
URL="https://github.com/scanii/scanii-cli/releases/download/v${VERSION}/${ASSET}"
echo "downloading $URL"
curl -fsSL "$URL" -o "$ASSET"

# Unpack
if [ "$EXT" = "tar.gz" ]; then
tar -xzf "$ASSET"
else
unzip -q "$ASSET"
fi

# Binary is inside a subdirectory due to wrap_in_directory: true
BINEXT=""
[ "$OS" = "windows" ] && BINEXT=".exe"
cp "scanii-cli-${VERSION}-${OS}-${ARCH}/sc${BINEXT}" "./sc${BINEXT}"
chmod +x ./sc 2>/dev/null || true

- name: Start scanii-cli server
shell: bash
run: |
EXT=""
[ "${{ runner.os }}" = "Windows" ] && EXT=".exe"
./sc${EXT} server &
# wait for the server to be ready
for i in $(seq 1 15); do
curl -sf http://localhost:4000/v2.2/ping && break || sleep 1
done

- name: mvn verify
run: mvn -B verify
24 changes: 0 additions & 24 deletions .github/workflows/pull-request.yaml

This file was deleted.

54 changes: 54 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Release

on:
push:
tags:
- 'v*.*.*'

permissions:
contents: write

jobs:
release:
name: Release to Maven Central
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Java for signing and publishing
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: corretto
cache: maven
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_TOKEN
gpg-private-key: ${{ secrets.CODESIGN_PGP_KEY }}
gpg-passphrase: PASSPHRASE

- name: Strip snapshot from version
run: |
mvn -q build-helper:parse-version versions:set \
-DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion} \
versions:commit

- name: Publish to Maven Central
run: mvn deploy --batch-mode -DskipTests --activate-profiles central --no-transfer-progress
env:
MAVEN_USERNAME: ${{ secrets.MAVEN_TOKEN_USER }}
MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }}
PASSPHRASE: ${{ secrets.CODESIGN_PGP_PASSPHRASE }}

- name: Create GitHub Release
uses: actions/github-script@v7
with:
script: |
const tag = context.ref.replace('refs/tags/', '');
await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: tag,
name: tag,
generate_release_notes: true,
});
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
.idea
target
*.iml
.claude
release.properties
pom.xml.releaseBackup
23 changes: 0 additions & 23 deletions .run/Run Tests.run.xml

This file was deleted.

44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Changelog

## [8.0.0] — 2026-04-23

### Breaking changes

- **groupId renamed:** `com.uvasoftware` → `com.scanii`
- **Package renamed:** `com.uvasoftware.scanii` → `com.scanii`
- **Java minimum version raised:** Java 11 → Java 21 LTS

### Changes

- Rebranded to `com.scanii:scanii-java`
- Java source and target updated to 21
- Integration tests now run against [scanii-cli](https://github.com/scanii/scanii-cli) — no real credentials required
- CI matrix: Java 21 and 25 across Ubuntu, macOS, and Windows
- JUnit 5.12.2

### Migration

Update your Maven dependency:

```xml
<!-- before -->
<dependency>
<groupId>com.uvasoftware</groupId>
<artifactId>scanii-java</artifactId>
<version>7.x.x</version>
</dependency>

<!-- after -->
<dependency>
<groupId>com.scanii</groupId>
<artifactId>scanii-java</artifactId>
<version>8.0.0</version>
</dependency>
```

Then update your imports:
```
import com.uvasoftware.scanii.* → import com.scanii.*
```

The old `com.uvasoftware:scanii-java` coordinates are deprecated. See the migration guide at https://github.com/scanii/scanii-java.
Loading
Loading