Skip to content

Publish to Maven Central - #1

Closed
calixtus wants to merge 2 commits into
mainfrom
release-workflow
Closed

calixtus wants to merge 2 commits into
mainfrom
release-workflow

Conversation

@calixtus

Copy link
Copy Markdown
Member

Summary

Prepares ChatPane for Maven Central as org.jabref:chatpane, with the same publishing setup as html-to-node: signed snapshots of main and of each pull request, and a release for every pushed v<version> tag.
The first release makes the version scheme a real decision, so MADR 0012 switches from daily CalVer to SemVer (starting at 0.1.0-SNAPSHOT) and supersedes MADR 0003's versioning.
Dependabot and the auto-merge workflow for its PRs come along as well.

Before this can publish, a maintainer has to:

  • add the repository secrets KOPPOR_SIGNING_KEYID, KOPPOR_SIGNING_PASSWORD, KOPPOR_SIGNING_SECRETKEYRINGFILE_BASE64, KOPPOR_MAVENCENTRALUSERNAME and KOPPOR_MAVENCENTRALPASSWORD (the same names html-to-node uses);
  • turn on "Allow auto-merge" in the repository settings, which automerge.yml needs.

Steps to test

  1. gradlew :chatpane:publishToMavenLocal -x signMavenPublication
  2. Look in ~/.m2/repository/org/jabref/chatpane/0.1.0-SNAPSHOT/: it holds the jar, sources, javadoc (only the org.jabref.chatpane and org.jabref.chatpane.skin packages), a POM with Apache-2.0 and the JavaFX dependency without classifier, and Gradle module metadata.
  3. gradlew -q :chatpane:properties -PversionSuffix=PR7 shows version: 0.1.0-PR7-SNAPSHOT.
  4. Once the secrets are set, this PR's Publish snapshot to Maven Central run publishes 0.1.0-PR<n>-SNAPSHOT.

Related issues and pull requests

None.

AI usage

Claude Code (model claude-opus-5-5) adapted html-to-node's workflows and wrote the Gradle publishing setup, MADR 0012 and the documentation changes.
AI Influence Level: high. The author chose the approach (SemVer, which workflows to take over) and reviewed every change.

Checklist

  • [/] Tested in the running demo (build and publishing only; the demo is unchanged)
  • [/] Tests added (build configuration; checked with a local publish)
  • [/] Screenshots for visible changes
  • CHANGELOG.md entry for user-visible changes
  • README.md / docs/ updated

🤖 Generated with Claude Code

calixtus and others added 2 commits September 23, 2026 00:33
The first Maven Central release is where MADR 0003 said to revisit the
version scheme. A library API is what SemVer describes, and JabRef's
html-to-node already publishes this way, so chatpane adopts its setup:

- :chatpane applies com.vanniktech.maven.publish as org.jabref:chatpane:
  signed jar, sources, javadoc of the exported packages only, Apache-2.0
  POM. The version lives in gradle.properties (chatpaneVersion).
- publish.yml publishes snapshots of main and <version>-PR<n>-SNAPSHOT
  for same-repo pull requests; release.yml releases on a v* tag and
  refuses a tag that disagrees with chatpaneVersion.
- CHANGELOG.md moves to an Unreleased section (heylogs versioning=semver);
  no daily date tag had been pushed, so nothing is lost.
- AGENTS.md drops the daily tagging ritual and describes the release steps.

Javadoc gets every source file from Gradle, so the internal package is
excluded explicitly and its classes patched into the module, as
html-to-node does.

Blocked on maintainers: the signing and Central secrets (same names as
html-to-node) must be added to the repository.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Taken over from html-to-node: daily Gradle and weekly GitHub Actions
updates; automerge.yml approves and squash-merges bot PRs and same-repo
PRs titled like dependency bumps or labelled automerge. Needs "Allow
auto-merge" enabled in the repository settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@koppor

koppor commented Sep 25, 2026

Copy link
Copy Markdown
Member

Supersed by #2

@calixtus calixtus closed this Sep 25, 2026
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.

2 participants