Skip to content

DO NOT MERGE: Bump to 2.2.0 (release review and CI check only) - #249

Merged
jmao-denver merged 3 commits into
jpy-consortium:masterfrom
jmao-denver:bump-2.2.0
Oct 20, 2026
Merged

jmao-denver merged 3 commits into
jpy-consortium:masterfrom
jmao-denver:bump-2.2.0

Conversation

@jmao-denver

@jmao-denver jmao-denver commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Do not merge this PR with the merge button. It exists only for review and a CI check of the 2.2.0 release commits.

This PR has three commits:

  1. Bump to 2.2.0 (7cc1f66). It removes "(in development)" from CHANGES.md and the .dev0 and -SNAPSHOT qualifiers from jpyutil.py and pom.xml. It adds changelog lines for Bump actions/checkout from 6 to 7 #240, Bump actions/setup-python from 6 to 7 #242, Bump actions/setup-java from 5 to 6 #244, Bump docker/bake-action from 7.2.0 to 7.4.0 #246 and fix: fetch bullseye packages from archive.debian.org #247. The fix: DH-23469: Support Python 3.15 #245 lines were already there.
  2. Bump maven-gpg-plugin from 3.0.1 to 3.2.8 (8210394). This fixes jar signing in the publish-jar job.
  3. Pin Maven 3.9.16 in publish-jar (c85e97f). This fixes the Maven Central upload.

Why the maven-gpg-plugin bump

The first publish run for 7cc1f66 (run 39343321417) uploaded the wheels to PyPI. Its publish-jar job failed while signing the jars, with gpg: signing failed: No pinentry. Nothing reached Maven Central.

The cause is #244, which moved the workflow from actions/setup-java v5 to v6.

  • setup-java writes ~/.m2/settings.xml, which tells Maven where to find the GPG passphrase.
  • v5 wrote a gpg.passphrase server entry that holds the passphrase. maven-gpg-plugin 3.0.1 reads that entry by default.
  • v6 no longer writes that entry (actions/setup-java#1123). It sets the gpg.passphraseEnvName property instead, which names the environment variable that holds the passphrase.
  • maven-gpg-plugin only supports gpg.passphraseEnvName from 3.2.0 on. With 3.0.1 the plugin found no passphrase. gpg then tried to prompt for one, and a CI runner has no prompt.

The PR checks for #244 passed because signing only runs on release/v* branches.

Why the Maven 3.9.16 pin

The second publish run for 8210394 (run 39356752123) signed and uploaded the jars. Maven Central then rejected the deployment during validation:

Bundle has content that does NOT have a .pom file: org/jpyconsortium/jpy
  • The ubuntu-24.04 runner image ships Maven 3.10.0 since image 20261012. The 2.1.0 release ran on Maven 3.9.x.
  • With Maven 3.10, central-publishing-maven-plugin packs maven-metadata-local.xml into the artifact folder of the upload bundle, next to the version folders. Central rejects any folder in the bundle that has files but no .pom.
  • This is an open plugin bug, mavenplugins/central-publishing-maven-plugin#79. Other projects work around it by pinning Maven 3.9.x.

The publish-jar job now generates a Maven wrapper for 3.9.16 and deploys with ./mvnw. Only that job changes. The wrapper files are made on the runner and are not committed.

How this PR is used

  1. CI on this PR builds everything without publishing. Publishing only runs on release/v* branches, so neither fix can be tested here.
  2. A reviewer approves it.
  3. c85e97f is pushed to release/v2.2.0 on this repo. The PyPI upload fails there because 2.2.0 is already on PyPI. publish-jar runs on its own and stages the jars on Maven Central. They are published by hand in the Central portal. c85e97f is tagged v2.2.0.
  4. The same commits are then pushed to master. GitHub marks this PR as merged on its own.

A squash or rebase merge would put different commits on master than the ones tagged and published. That is why the button must not be used.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jmao-denver
jmao-denver requested review from devinrsmith and a balanced review from Copilot October 19, 2026 23:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Version declarations are consistent, and the changelog matches the supplied release context with no blocking issues identified.

No open issues 🎉

What changed in this PR

Prepares JPY 2.2.0 for release review and CI validation. Publication follows the documented release-branch process; do not use the merge button.

Changes:

  • Sets Python and Maven versions to 2.2.0.
  • Finalizes the changelog and records dependency and build fixes.
File Description
pom.xml Removes the Maven -SNAPSHOT qualifier.
jpyutil.py Removes the Python .dev0 qualifier.
CHANGES.md Marks 2.2.0 released and adds five changelog entries.

Review effort: Balanced

devinrsmith
devinrsmith previously approved these changes Oct 19, 2026
actions/setup-java v6 (jpy-consortium#244) no longer writes the gpg.passphrase server
entry to settings.xml. It sets gpg.passphraseEnvName instead, which
maven-gpg-plugin only reads from 3.2.0 on. With 3.0.1 the plugin found
no passphrase and gpg failed with "No pinentry" in publish-jar.

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

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

PR CI does not exercise release-only signing, so publication recovery needs human verification.

No open issues 🎉

Review effort: Balanced

devinrsmith
devinrsmith previously approved these changes Oct 20, 2026
Maven 3.10, on ubuntu-24.04 since image 20261012, leaves
maven-metadata-local.xml in the central-publishing bundle. Central
rejects the deployment with "Bundle has content that does NOT have a
.pom file". See mavenplugins/central-publishing-maven-plugin#79.

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

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

PR CI does not exercise the release-only Maven deployment changes, so human validation is still required.

No open issues 🎉

Review effort: Balanced

@jmao-denver
jmao-denver marked this pull request as ready for review October 20, 2026 16:36
@jmao-denver
jmao-denver merged commit c85e97f into jpy-consortium:master Oct 20, 2026
182 of 186 checks passed
@jmao-denver
jmao-denver deleted the bump-2.2.0 branch October 20, 2026 17:06
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.

3 participants