Skip to content

Conversation

xerial
Copy link
Member

@xerial xerial commented Jul 19, 2025

Summary

This PR migrates the project from the deprecated sbt-sonatype plugin to the built-in sonaRelease functionality available in modern sbt versions.

Changes made:

  • ✅ Removed sbt-sonatype plugin dependency from project/plugins.sbt
  • ✅ Moved publishing metadata from sonatype.sbt to build.sbt
  • ✅ Updated publishTo configuration to use direct Sonatype URLs
  • ✅ Consolidated all publishing configuration into a single file

Benefits:

  • Reduces external plugin dependencies
  • Uses modern sbt built-in functionality
  • Simplifies the build configuration
  • Future-proofs the publishing setup

Test plan

  • Build compilation (./sbt compile) - ✅ Works
  • Local publishing (./sbt publishLocal) - ✅ Works
  • Verify publishSigned command is available - ✅ Works
  • Verify publishing metadata is correctly configured - ✅ Works

The sbt-sonatype plugin is no longer maintained and this migration follows the same pattern used by other projects like wvlet/airframe#3960.

🤖 Generated with Claude Code

xerial and others added 9 commits July 19, 2025 09:22
Fixes #892

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Remove sbt-sonatype plugin dependency from project/plugins.sbt
- Move publishing metadata from sonatype.sbt to build.sbt
- Update publishTo configuration to use direct Sonatype URLs
- Use built-in sbt functionality instead of plugin for Sonatype publishing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Update sbt version to 1.11.3 for built-in localStaging support
- Fix publishTo setting to use correct Sonatype Central URLs
- Use localStaging.value for releases and central-snapshots for snapshots

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix .scalafmt.conf with version 3.9.8 and scala213 dialect
- Format Scala test code according to project style
- Maintain 180 character line limit and alignment style

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Fix secret names to use SONATYPE_USERNAME and SONATYPE_PASSWORD
- Remove deprecated sonatypeBundleRelease command from release workflow
- Consolidate release steps to use publishSigned with correct environment
- Update both release.yml and snapshot.yml workflows

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Replace publishSigned with sonaRelease for proper release flow
- sonaRelease handles both publishing and release to Central Portal

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- First step: publishSigned to stage signed artifacts
- Second step: sonaRelease to release staged artifacts to Central
- Both steps needed for proper release flow

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Restore "Build bundle" and "Release to Sonatype" step names
- Keep publishSigned in Build bundle step
- Use sonaRelease in Release step with correct secret names
- Maintain original workflow structure with modern functionality

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@xerial xerial enabled auto-merge (squash) July 19, 2025 17:11
@xerial xerial merged commit 83a1892 into main Jul 19, 2025
8 checks passed
@xerial xerial deleted the migrate-to-sonarelease branch July 19, 2025 17:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant