Skip to content

Implement staged releases to JBoss Nexus #48

@bstansberry

Description

@bstansberry

@michpetrov

JBoss Nexus has changed in two key ways:

  1. The old workflow where things were deployed to a staging repository and then promoted using the Nexus UI is gone. Now staging workflows must be done via use of the nxrm3-maven-plugin. The maven-deploy-plugin should not be used.

  2. The mechanism by which artifacts get synced from Nexus to Maven Central has changed, with a side effect that many requirements Central has long imposed on things directly deployed there are now enforced on things being synced from JBoss Nexus. This means weaknesses in our deployments that have been overlooked will no longer be overlooked. Issue licenses-plugin does not meet Maven Central requirements #47 is an example of this kind of thing.

Going forward, WildFly projects cannot produce releases that will fail the validation that is done before syncing to central. Doing so will block syncing of anything in the relevant Nexus repo, not just the problematic artifact.

This means projects must adapt a workflow that deploys to a staging repo ('wildfly-staging' for this project), and then the staged content must be validated by a JBoss Nexus task. Once validated, the artifacts can be moved to the final repo, from which they will be synced to Central.

A new release of jboss-parent will provide the infrastructure for this, so part of resolving this will be updating to that.

The other part is changing the deployment workflow to use the new jboss-parent facilities, plus executing the staging repo validation task (or waiting for the next hourly execution) and confirming all is well, or deleting the staged content, fixing problems and trying again.

There's been some discussion of this on wildfly-dev and there will be more. I'm writing all this here because of #47; to help guard against more releases until this stuff is handled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions