Skip to content
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

Deploy SNAPSHOT artifact to the sonatype snapshot repository #108

Closed
2 of 7 tasks
KengoTODA opened this issue May 2, 2020 · 7 comments
Closed
2 of 7 tasks

Deploy SNAPSHOT artifact to the sonatype snapshot repository #108

KengoTODA opened this issue May 2, 2020 · 7 comments
Assignees
Labels
dev development tasks, build issues...

Comments

@KengoTODA
Copy link
Collaborator

KengoTODA commented May 2, 2020

To help the community to develop their features, it's nice to deploy artifacts to the sonatype snapshot repository. This is the first deployment, so we need cooperation from a few roles.

Let me summarize our TODOs and PICs in this issue.

TODOs

  1. Make sure the version is suitable to deploy
    • In my understanding based on the doc, the first release should be 0.1, so current version 0.1.0-SNAPSHOT should be OK.
  2. Decide final package name (Decide final package name #1)
  3. Rename package in code and build script (Rename package and module, to prepare for install and deploy #107)
  4. Decide groupId and artifactId
    • org.jspecify:annotations or org.jspecify:jspecify?
  5. Create a new issue at Sonatype JIRA, to get permission to deploy
    • TBU: Which Sonatype account we use? It's possible to grant multiple accounts.
  6. Add a TXT record to the jspecify.org DNS record
    • We'll be requested to add a TXT record referencing the JIRA ticket like this.
    • TBU: Who can handle this task?
  7. Create a deployment task in our CD pipeline (working in deploy branch)
    • Need to be admin of this repository to add several secrets
@KengoTODA KengoTODA self-assigned this May 2, 2020
@cpovirk
Copy link
Collaborator

cpovirk commented May 4, 2020

RE: artifactId

It sounds like you may already have an idea for the groupId, then?

I went digging for guidelines on artifact and group IDs, and I found a lot:

Let's assume for the moment that our package ends up being org.jspecify.annotations.

My guess would be that artifactId:groupId would be something like:

  • org.jspecify.annotations:annotations
  • org.jspecify:annotations

We might look ahead to the possibility that we end up publishing an artifact of "stubs" / "external annotations" for the JDK classes. Possible Maven coordinates for that might be:

  • org.jspecify.stubs:jdk-stubs
  • org.jspecify:jdk-stubs
  • org.jspecify.jdkstubs:jdkstubs

Do these match the kinds of names you have in mind? Do you (or others) have guidelines that you recommend?

@cpovirk
Copy link
Collaborator

cpovirk commented May 4, 2020

RE: jspecify.org: We can figure out if we need some kind of approval for that internally, since it's a change from what we'd discussed during the original domain registration.

@JakeWharton
Copy link
Collaborator

Multiple artifacts of the same project (with the same version) generally have the same groupId. Multiple projects of the same organization generally share a groupId prefix.

@cpovirk
Copy link
Collaborator

cpovirk commented May 4, 2020

Thanks, some of the guidelines seemed to be hinting at that without saying it directly.

We've talked before about releasing the JDK stubs in sync with the annotations. I think that could lead us to either release the annotations a lot (as we make tweaks to the stub) or else delay releasing the annotations for a while (to avoid releasing the annotations a lot :)) Really, though, our overall plans around the JDK stubs are not settled, so I wouldn't put too much weight on that.

@KengoTODA
Copy link
Collaborator Author

Thanks for your comments! I also think that org.jspecify is enough suitable to use as groupId.
Then groupId:artifactId will be org.jspecify:annotations.

@cpovirk
Copy link
Collaborator

cpovirk commented Jun 10, 2020

We talked in the meeting about publishing snapshots. Some of us are worried that, if we publish them, people will use them, even if they're clearly labeled as pre-1.0 snapshots. Others are worried that, even if people don't use them, they'll still think that we're much further along in the development process than we are. (For example, they might think that we're still planning to add annotations but that the ones that already exist are finalized.)

We were interested in hearing more about your SpotBugs-jspecify work. Maybe we can find a way for you to make progress without publishing a snapshot, or maybe you can help us better appreciate how you (and likely others) are blocked without it.

@KengoTODA
Copy link
Collaborator Author

KengoTODA commented Jun 11, 2020

It's OK to keep the current situation, then I'll git clone & ./gradlew publishToMavenLocal in the CI build. I just don't like complexity like this.

Then I'll close this PR. Thanks! 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev development tasks, build issues...
Projects
None yet
Development

No branches or pull requests

4 participants