Changing release process

The current (long) release process we use for Orekit will need to be changed soon, at least for some steps. We currently use the legacy OSSRH system set up by Sonatype, who manages maven central. This legacy system will reach end of life on June 30 and will be replaced by central portal. We have already been notified several times about that and are clearly late to migrate.

The differences between the two systems are explained here. After a first quick read of this page and some linked pages, I think this will mainly require all release managers to register authentication tokens that could be saved in their $HOME/.m2/settings.xml file, and to change the maven plugin we use to push artifacts to the central portal.

It seems we can still have a time slot to vote for the release, if we select the pushing type to USER_MANAGED (which is the default) instead of AUTOMATIC. When the artifacts are in this staging phase, we can select to drop it or publish it depending of the vote results.

This change is mandatory, legacy OSSRH will be shut down soon.
How do you think we manage the transition?

1 Like

Hello!

We can do exactly as you described in your message. I quickly looked and this seems to be the only solution for publishing artifacts to Maven Central.

Bryan

1 Like

I took a look at the documentation. It seems that we can use the self-migration process:


In order to share the knowledge gained during the migration and the new publication process, it may be useful to carry out this migration as part of a videoconference between the relevant release managers (I am not a release manager, but I am interested in following the process). What do you think?

2 Likes

Yes, it is a good idea.
We should all read the migration process before and agree on what to do, i.e. look at the plugins and create accounts and authentication tokens.

2 Likes

Dear all,

I suggest we start the migration this week or next week.

It’s going to be difficult to find a time slot that suits Australians, Europeans, and Americans. :slight_smile:

So, I suggest we proceed with the migration between Europeans and then, if necessary, write a short guide on:

  • what you need to know (and what you shouldn’t miss) about the new Sonatype portal;

  • the impact on the existing system, particularly on the required versions of Maven and its plugins, and on the pom.xml file.

I am available:

  • Thursday 19
  • Friday 20 morning
  • Monday 23 afternoon
  • Tuesday 24
  • Wednesday 25

I agree with you.
My own availability is:
- Thursday 19
- Tuesday 24
- Wednesday 25

Dear all,

As it seemed difficult to find a time slot that suited everyone, Luc and I migrated the namespace from the old Sonatype portal to the new one (Legacy OSSRH => Central Portal).

Future artifacts can therefore be pushed to the new portal, but no longer to the old one.

However, there is still work to be done:

I have already created an authentication token on the new portal. I will add it to the CI/CD environment variables.

1 Like

Hi Sébastien,

thanks for this.
Shall Orekit 13.1 be our trial with the new system then?

Cheers,
Romain.

Yes, definitely. We are halfway there, there is no turning back now. :sweat_smile:

1 Like

In addition, Luc showed me that the new portal supports snapshots (the corresponding feature must be enabled). If this is confirmed, we could use the new portal to publish both official releases and snapshots. In this case, our Nexus instance would become unnecessary (provided that the Hipparchus project makes the same choice upstream).

If so, we will still need to consider how to securely implement cryptographic signatures for our packages.

1 Like

I have started updating the release guide and setting up a release.sh script.
This scripts attempts to perform many steps automatically, asking just a few questions
to users and asking for confirmation before each commit or critical action.

It is not production ready yet, but I would like to have people look at it. It is in the issue-1760 branch (look at at scripts/release.sh and src/site/markdown/release-guide.md).

I would really like to have this script manage all steps, up to creating the voting post on forum (I guess there is an API in discourse for this). Even if the first version of the script does not achieve this, I think it already simplifies a lot the release process, it could probably be used right now.

1 Like

Wow, that is some script Luc!
Nice work. I could test it but I’m not fluent enough in bash to comment it sorry :sweat_smile:

Same as @MaximeJ, i’m not proficient enough in bash to give useful insights :sweat_smile:.

Thank you for making it though, we shall try it to see how it goes !

Cheers,
Vincent

Thanks for the job @luc,

Streamlining and making the release process reproducible by automating it is highly desirable.

To meet current expectations for supply chain security, the CI/CD process should sign the artifacts generated (whether releases or snapshots). The same artifacts should also be pushed to the Maven Central Portal and our Nexus instance.

I’ll take a look at the Shell script.

@luc, to help us review your work and add in situ comments, could you open a merge request in draft mode?

Done, it is MR 825.

1 Like

I just submitted my review and made a few minor comments. Impressive work, Luc.

Hi @luc,

Two more suggestions. I think the other XPath filters could also be simplified, but I need to test them before suggesting anything.

Sébastien

Done. I submitted a third review. The last one. :wink:

Sébastien

Thanks Sébastien and Luc.

I’d say, after this review and once MR!816 is closed (@Vincent :wink:), Luc you can trial your process to release 13.1!

1 Like