Skip to content

Conversation

@oschwald
Copy link
Member

@oschwald oschwald commented Jan 9, 2026

Summary

  • Add Maven Central publishing using Vanniktech maven-publish plugin via Central Portal
  • Create automated release script (dev-bin/release.sh) with pre-flight checks
  • Add developer documentation for the release process (README.dev.md)
  • Use mise for tool management (Java 21, yq for XML parsing)
  • Fix Gradle 10 deprecation warnings in Kotlin compiler options

Key Features

Publishing Configuration:

  • Uses Vanniktech maven-publish plugin for simpler Central Portal integration
  • GPG signing via system gpg command (consistent with Maven projects)
  • Credentials read from ~/.m2/settings.xml (server id "central") to share with other MaxMind Maven projects

Release Script:

  • Comprehensive pre-flight checks (gh auth, git remote, mise tools)
  • Parses version and release notes from CHANGELOG.md
  • Runs dependency update check and tests before publishing
  • Creates GitHub release with signed artifacts
  • Only requires mise as external dependency (manages Java 21 and yq)

Test plan

  • ./gradlew :device-sdk:assemble succeeds without credentials
  • ./gradlew :device-sdk:test passes
  • Full release via ./dev-bin/release.sh (tested during 0.1.0 release)

🤖 Generated with Claude Code

oschwald and others added 5 commits January 9, 2026 10:19
- Add Vanniktech maven-publish plugin for Central Portal publishing
- Add release automation script (dev-bin/release.sh) similar to
  minfraud-api-java
- Read credentials from ~/.m2/settings.xml to share with Maven projects
- Use system GPG command for signing (respects ~/.gnupg configuration)
- Add dependency-updates plugin for checking outdated dependencies
- Add README.dev.md documenting the release process
- Update CLAUDE.md with new publishing documentation

The release workflow mirrors minfraud-api-java:
1. Create release branch
2. Update CHANGELOG.md with version and date
3. Run ./dev-bin/release.sh
4. Script handles tests, version updates, Maven Central publish, and
   GitHub release creation

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add mise.toml specifying Java 21 (Dokka doesn't support Java 25+ yet)
- Add mise activation check to release.sh
- Also use mise for yq

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Migrate from deprecated kotlinOptions DSL to kotlin { compilerOptions { } }
in both device-sdk and sample modules. Update Dokka configuration from V1
task-based API to V2 extension-based API.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@oschwald oschwald force-pushed the greg/eng-3762-android-device-sdk-is-published-to-maven-central branch from 86b53b0 to 9e1551e Compare January 9, 2026 18:27
@horgh horgh merged commit 6aa0d3c into main Jan 9, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants