Sunset on May 1st: Bintray, JCenter

@david_bernard_31 has opened issue 1468 to track the transition to MavenCentral.

1 Like

My personal Sonatype account has been activated. I used my personal e-mail and proved ownership of ā€œstephengold.github.comā€ by creating a temporary repo.

As far as I know, JMonkeyEngine project doesnā€™t have a Sonatype account yet. I could use my personal account for official JME stuff, but I think the project should have its own account, password, and e-mail in case the project and I part ways at some point in the future.

  1. I assume the project already has an e-mail account. As far as I know, I donā€™t have access. Who does?
  2. To set up the Sonatype account for ā€œorg.jmonkeyengineā€ groupId, weā€™ll need to prove ownership of the ā€œjmonkeyengine.orgā€ domain. I canā€™t do that. Who can?

I think Riccardo can prove it. We needed that prove when I transferred my AWS credit to JME

1 Like

Yes, usually to prove the domain you need to set up a dns record, if thatā€™s the case, I can.

1 Like

usually to prove the domain you need to set up a dns record, if thatā€™s the case, I can.

Great!

Iā€™m still unclear what e-mail address should be used to set up the Sonatype account for JMonkeyEngine.

Yesterday I made good progress with my personal projects. I added automatic deployment to the build script for the Heart library, built v6.4.2, deployed it to the staging repo, closed it, released it, and verified that it got synched to MavenCentral. It took me 5-6 tries to get everything perfect, but it wasnā€™t as difficult as Iā€™d feared: I didnā€™t have to change the artifactId or upload dependencies to MavenCentral or anything like that. I hope to have new releases of my other libraries (including MaVehicles) at MavenCentral in the next day or 2.

I havenā€™t yet figured out how to upload a past release to the staging repo, but Iā€™m sure itā€™s possible. I have a couple ideas to try.

Past releases of my personal projects pose additional challenges since the POMs at JCenter are incomplete and most of the artifacts arenā€™t signed. Iā€™d need to edit the POMs and retroactively sign the artifacts. Not sure itā€™s worth the trouble.

The JMonkeyEngine libraries at JCenter have RSA signatures and better POMs; perhaps they wonā€™t need such rework.

1 Like

Note that daveb has already gotten one version of JME into maven central:

2 Likes

I only pushed the version 3.3.2-stable, and not for every artifacts, see Central Repository: org/jmonkeyengine

To push, to sync your artifacts from bintray to maven central, there are few steps to follow, I list them into the script I used (it also includes info/links for manual sync via web UI, that is simpler for few artifact+version).
a script to batch request sync from bintray/JCenter into maven central

Also do not forgot to update your release process (and doc) to publish to maven central (instead of bintray) for your future release (eg: Gradle ).

6 Likes

Thanks for that scriptā€”very helpful.

1 Like

An update:

So far weā€™ve copied 19 out of 22 Maven artifacts from 2 JMonkeyEngine releases (3.2.4-stable and 3.3.2-stable), for a total of 38 artifacts.

The 3 problematic artifacts are:

  • jme3-examples (lacks javadoc)
  • jme3-ios (not linked to JCenter)
  • jme3-testdata (not linked to JCenter)

(JFrogā€™s interface to MavenCentral only works for artifacts that are linked to JCenter.)

Iā€™ve modified most of my personal projects to use MavenCentral and uploaded at least one release for 6 of my libraries:

  • Heart (v6.3.0, v6.4.0, and v6.4.2)
  • SkyControl (v0.9.30)
  • Wes (v0.6.2)
  • jme3-utilities-nifty (v0.9.18)
  • jme3-utilities-ui (v0.9.2)
  • jme3-utilities-x (v0.2.20)

80 days remaining.

8 Likes

An updateā€¦ with 77 days remaining.

119 libraries have been copied to MavenLocal, from 6 of the last 8 stable releases of JME:

  • 3.1.0-stable,
  • 3.2.2-stable,
  • 3.2.3-stable,
  • 3.2.4-stable,
  • 3.3.0-stable, and
  • 3.3.2-stable.

No resolution of the issues with 3.2.0-stable, 3.2.1-stable, jme3-examples, and jme3-testdata. They could probably be re-worked to meet the requirements of MavenCentral, but my current plan is to upload them elsewhere instead.

JME 3.0.10 used the ā€œcom.jme3ā€ groupId, but unfortunately we donā€™t control the ā€œjme3.comā€ domain, so they canā€™t go on MavenCentral without rework. I plan to upload those artifacts elsewhere.

No alpha or beta releases have been copied to MavenCentral yet. I regard them as a low priority.

The JME build scripts still need to be reworked. Documentation still needs to be updated.

All 12 libraries in the ā€œcom.github.stephengoldā€ groupId now have at least one release at MavenCentral. I consider the older releases (including dozens of Minie releases) to be low priorityā€”except for Heart v5.2.0for32 and Minie v1.6.0+for32.

I havenā€™t decided whether to continue publishing my fork of TonegodGUI. Is anybody still using it?

  • @tryder told me he plans to copy jme-ttf over to MavenCentral.
  • @pspeed, what are your plans for the ā€œcom.simsilicaā€ libraries?
  • @RiccardoBlb, what are your plans for ā€œeffekseerā€ and such?
  • I assume Jayfellaā€™s artifacts will become inaccessible in May.
9 Likes

Now that JME has been moved, I do plan to move my libraries to maven central. I guess itā€™s not as straight forward for me because I didnā€™t generate the signatures or whatever. So I have some additional legwork to do.

1 Like

Yeah, the extra legwork is a pain. Thatā€™s why, for my personal projects, I mostly opted to release new versions (with signatures and more complete POMs) and forget the old ones.

5 Likes

EDIT: Never mind, the following guide only works for private repositories.

1 Like

54 days remaining.

Most of JMEā€™s alpha and beta releases are available from MavenCentral. Has any other progress been made?

2 Likes

Note that jfrog extended the date for updates to the end of Marchā€¦ and clarified that the jcenter coordinates would continue to resolve for a year.

Edit: from the announcement page:

UPDATE: To better support the community in this migration, JFrog has extended the JCenter new package versions submission deadline through March 31st 2021.

To clarify, the JCenter repository will keep serving packages for 12 months until February 1st 2022. Only the JCenter REST API and UI will be sunsetted on May 1st 2021.

2 Likes

A couple days ago I switched out all jcenter dependencies (except for a couple community projects - Lemur & PBR terrain materials) for MyWorld - everything is building fine against the 3.3.2-stable engine builds on MavenCentral.

2 Likes

i heard they change date, is it correct?

Yesterday I modified the build scripts in the Engineā€™s master branch, so that they no longer use Bintray for natives snapshots. Instead, they use the MinIO instance that @RiccardoBlb set up last month.

I started work on automatically uploading release artifacts to Sonatype (instead of Bintray) but got stuck on signing. Our Bintray repo is set up to automatically sign uploaded artifacts, but Sonatype requires them to be signed before they are uploaded.

I know a couple ways to sign artifacts before uploading them from a private build environment: the ā€œgpg2ā€ app or Gradleā€™s signing plugin with a keyring. However, I donā€™t see how to use such methods securely in GitHub Actions, so, Iā€™m trying to use the Gradle 5.6.4 signing plugin with in-memory ascii-armored keys.

Edit: ascii-armored keys are working! (at least in my private env)

5 Likes

One of the tasks for moving hosting of artifacts out of jcenter (to maven central) Ā· Issue #1468 Ā· jMonkeyEngine/jmonkeyengine Ā· GitHub is to ā€œupdate doc for release managerā€.

Does JMonkeyEngine have any documentation for release managers? And if not, where should it be kept?