Skip to content

Setup release infrastructure for v1.0.0#2

Merged
OneXeor merged 5 commits intomainfrom
feature/release-infrastructure
Jan 13, 2026
Merged

Setup release infrastructure for v1.0.0#2
OneXeor merged 5 commits intomainfrom
feature/release-infrastructure

Conversation

@OneXeor
Copy link
Copy Markdown
Owner

@OneXeor OneXeor commented Jan 12, 2026

Summary

This PR sets up the complete release infrastructure for publishing UXCam-KMP to Maven Central.

Changes

Release Infrastructure:

  • Add Vanniktech Maven Publish Plugin (v0.30.0) for Maven Central publishing
  • Configure Sonatype Central Portal as the publishing target
  • Create automated release workflow triggered on tag push (v*)
  • Centralize version management in gradle.properties (VERSION_NAME=1.0.0)

Documentation:

  • Add CHANGELOG.md following Keep a Changelog format
  • Add CODE_OF_CONDUCT.md (referenced in CONTRIBUTING.md)
  • Add KMP installation instructions to README

Code Quality:

  • Add null safety checks to Android implementation
  • Replace System.err with Napier logging
  • Fix validate-pr workflow to target 'main' branch (was 'master')

Files Changed

File Change
build.gradle.kts Add vanniktech plugin
gradle.properties Add version and Maven properties
uxcam-kmp-shared/build.gradle.kts Add publishing config
uxcam-kmp-shared/src/androidMain/.../UXCam.kt Null checks + Napier
.github/workflows/release.yml New release workflow
.github/workflows/validate-pr.yml Fix branch target
CHANGELOG.md New
CODE_OF_CONDUCT.md New
README.md Add KMP installation

Required Secrets (before first release)

  • MAVEN_CENTRAL_USERNAME - Sonatype Central Portal token username
  • MAVEN_CENTRAL_PASSWORD - Sonatype Central Portal token password
  • SIGNING_KEY - GPG private key (ASCII armored)
  • SIGNING_PASSWORD - GPG key passphrase

Release Process (after merge)

git checkout main
git pull
git tag v1.0.0
git push origin v1.0.0

Test plan

  • Android build passes (./gradlew :uxcam-kmp-shared:compileReleaseKotlinAndroid)
  • Verify GitHub secrets are configured
  • Test release workflow with tag push

- Add Vanniktech Maven Publish Plugin for Maven Central publishing
- Configure Sonatype Central Portal publishing
- Centralize version management in gradle.properties (VERSION_NAME)
- Create release workflow triggered on tag push
- Add CHANGELOG.md following Keep a Changelog format
- Add CODE_OF_CONDUCT.md
- Fix validate-pr workflow to target 'main' branch
- Add null safety checks to Android implementation
- Replace System.err with Napier logging
- Add KMP installation instructions to README
@OneXeor OneXeor self-assigned this Jan 12, 2026
@OneXeor OneXeor added the enhancement New feature or request label Jan 12, 2026
Kotlin/Native 1.9.21 is incompatible with Xcode 16.4 (macos-latest).
Pin to macos-14 with Xcode 15.4 to resolve cinterop errors.
Kotlin 1.9.21 has compatibility issues with newer Xcode versions.
Build Android target only in CI for now. iOS build can be done locally.
@OneXeor OneXeor merged commit 33b3a1d into main Jan 13, 2026
1 check passed
@OneXeor OneXeor deleted the feature/release-infrastructure branch January 13, 2026 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant