-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Maven publication #190
Conversation
6f6e7a1
to
789a379
Compare
55bc25d
to
ea160e8
Compare
e4e375d
to
3b825fa
Compare
Adds publishing for Maven artifacts, including signing. Includes most prerequisites to publish Maven artifacts to Maven Central. The build-code parts have been taken from Nessie, including the necessary special treatment of shadow-jars and support to publish a bom. `./gradlew publishToMavenLocal` works out of the box. On top of the Nessie parts, this change can also build a source tarball from using `git archive`, plus some Apache project specific adoptions. Fully signed invocation example, assuming GPG agent (there are alternative ways to provide the GPG key+passphrase): ```bash ./ gradlew \ publishToMavenLocal \ sourceTarball \ -Prelease \ -PuseGpgAgent ``` This change also introduces a `version.txt`, which contains `999-SNAPSHOT`. Using `999-SNAPSHOT` on the `main` branch makes it easier later on to enable multiple major/minor version branches and releases from those. `version.txt` on a major/minor version branch would contain something like `2.1-SNAPSHOT`. With `999-SNAPSHOT` on the `main` branch eliminates the need to update `version.txt` on the `main` branch when a new major version branch is created, eliminating the need to commit and push to multiple branches from a mostly automated release workflow infrastructure.
@jbonofre can you review? |
|
||
mailingLists.addAll("dev", "issues", "commits") | ||
|
||
podlingPpmcAsfIds.addAll("anoop", "ashvin", "jackye", "russellspitzer", "snazy", "vvcephei") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add the mentors here (very selfish, but I would like to be on the list :) ).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was a trick to verify that you review this change ;) ;) :disappear:
build.gradle.kts
Outdated
|
||
repositories { | ||
register("apache") { | ||
this.nexusUrl // TODO configure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean https://repository.apache.org ?
It's used for staging and snapshots.
The stagingProfileId
is the one from the release managers, or the release bot. Right ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to keep these as TODOs for now until we can actually test at least snapshot-releases e2e.
BTW: stagingProfileId
isn't the user/bot (credentials are configured in a different way) - it's an ID "per-release".
Adds publishing for Maven artifacts, including signing. Includes most prerequisites to publish Maven artifacts to Maven Central.
The build-code parts have been taken from Nessie, including the necessary special treatment of shadow-jars and support to publish a bom.
./gradlew publishToMavenLocal
works out of the box.On top of the Nessie parts, this change can also build a source tarball from using
git archive
, plus some Apache project specific adoptions.Fully signed invocation example, assuming GPG agent (there are alternative ways to provide the GPG key+passphrase):
This change also introduces a
version.txt
, which contains999-SNAPSHOT
. Using999-SNAPSHOT
on themain
branch makes it easier later on to enable multiple major/minor version branches and releases from those.version.txt
on a major/minor version branch would contain something like2.1-SNAPSHOT
. With999-SNAPSHOT
on themain
branch eliminates the need to updateversion.txt
on themain
branch when a new major version branch is created, eliminating the need to commit and push to multiple branches from a mostly automated release workflow infrastructure.