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

Add Aerie Maven artifacts to Maven Central #563

Open
camargo opened this issue Dec 28, 2022 · 9 comments
Open

Add Aerie Maven artifacts to Maven Central #563

camargo opened this issue Dec 28, 2022 · 9 comments
Assignees
Labels
ci Changes to our CI configuration files and scripts soon Not quite next up, but soon

Comments

@camargo
Copy link
Member

camargo commented Dec 28, 2022

See: https://maven.apache.org/repository/guide-central-repository-upload.html

This would help decrease the barrier to entry a bit since right now you need a GitHub account to use the Aerie Maven GitHub packages.

@camargo camargo added the ci Changes to our CI configuration files and scripts label Dec 28, 2022
@camargo camargo added this to Aerie Dec 28, 2022
@github-project-automation github-project-automation bot moved this to Todo in Aerie Dec 28, 2022
@camargo camargo added this to the 1.1.0 - Ad Hoc Improvements milestone Jan 5, 2023
@skovati skovati added this to the FY23 Q3 - Ad Hoc Improvements milestone May 16, 2023
@skovati
Copy link
Contributor

skovati commented May 18, 2023

Unfortunately, publishing to Maven Central is quite a can of worms. Maven Central simply acts as a centralized reverse proxy, and packages synced to Maven Central must actually be hosted on some third-party repo like Sonatype's OSSRH. This requires requesting an account through their Jira, creating and publishing a PGP key, signing binaries, and then manually syncing them to Maven Central.

Since the goal of this ticket is to just have publicly accessible maven packages, I looked into making our Github maven packages public. Unfortunately, this isn't supported first class by Github, (see this long-running discussion for details), but a workaround exists where you simply create a PAT that has read-only access to an organizations packages, and publish this publicly for those who want to consume your packages. Since public packages are 100% free according to Github's pricing page, this is a decent option while we wait for Github to natively support downloading public packages sans auth.

@camargo camargo closed this as completed May 18, 2023
@github-project-automation github-project-automation bot moved this from Todo to Done in Aerie May 18, 2023
@camargo camargo reopened this Aug 24, 2023
@camargo camargo moved this from Done to Todo in Aerie Aug 24, 2023
@camargo camargo removed this from the FY23 Q3 - Ad Hoc Improvements milestone Aug 24, 2023
@bradNASA
Copy link
Contributor

I have to create a new personal access token occasionally even though they seem fine and haven't expired. I vote for maven central. Here's some links for manually and automatically pushing jars.
https://stackoverflow.com/questions/28846802/how-to-manually-publish-jar-to-maven-central
https://www.albertgao.xyz/2018/01/18/how-to-publish-artifact-to-maven-central-via-gradle/

@camargo camargo added this to the FY23 Q4 - Ad Hoc Improvements milestone Aug 31, 2023
@skovati skovati moved this from Todo to Blocked in Aerie Oct 9, 2023
@skovati
Copy link
Contributor

skovati commented Oct 10, 2023

Looking into this further, I discovered that publishing to Maven Central requires you to have DNS records on the domain these Maven packages are namespaced to e.g. gov.nasa.jpl.aerie..., which means we would have to create a public facing website at aerie.jpl.nasa.gov. If this is high enough priority to warrant creating public DNS records under nasa.gov, we can move forward with this.

@ewferg
Copy link
Contributor

ewferg commented Oct 11, 2023

As a note, I am currently speaking with the web admin of ammos.nasa.gov to see if we can add an aerie.ammos.nasa.gov subdomain. If we can do this, I think that namespace is cleaner since we are intended Aerie to be for all of NASA.

@mattdailis mattdailis assigned ewferg and unassigned skovati Oct 12, 2023
@ewferg
Copy link
Contributor

ewferg commented Oct 20, 2023

aerie.ammos.nasa.gov is online and has a DNS record. Hopefully this unblocks us here.

@ewferg ewferg assigned skovati and unassigned ewferg Oct 20, 2023
@skovati skovati moved this from Blocked to In Progress in Aerie Oct 26, 2023
@skovati skovati moved this from In Progress to Todo in Aerie Oct 26, 2023
@dandelany
Copy link
Collaborator

Per @skovati we have the subdomain but there is some question about whether we are able to use it for Maven or whether it should be hosted somewhere else - more investigation needed.

@dandelany dandelany moved this from Todo to Blocked in Aerie Dec 22, 2023
@skovati skovati moved this from Blocked to In Progress in Aerie Jan 8, 2024
@skovati skovati moved this from In Progress to Blocked in Aerie Jan 18, 2024
@skovati
Copy link
Contributor

skovati commented Jan 18, 2024

I've confirmed that we are able to host DNS TXT records under ammos.nasa.gov, which will allow us to publish packages under that namespace, e.g. gov.nasa.ammos.aerie.contrib.*. This, of course, will require a rename of all aerie java packages, but it should be as simple as s/gov.nasa.jpl.aerie/gov.nasa.ammos.aerie/.

I created a ticket on Sonatype for our publishing account, but it looks like they are in the process of moving their account / namespace creation to a new (non-Jira based) system.

https://central.sonatype.org/news/20240109_issues_sonatype_org_deprecation/

Because of this, signups using the legacy flow are paused. We'll need to wait until Feb 1st to create an account using the new central portal.

Steps following account creation are:

  • Claim namespace under ammos.nasa.gov using DNS TXT records.
  • Update aerie CI/CD to publish to Maven Central

@dandelany dandelany moved this from Blocked to In Progress in Aerie Feb 1, 2024
@skovati skovati moved this from In Progress to Blocked in Aerie Feb 15, 2024
@skovati
Copy link
Contributor

skovati commented Feb 15, 2024

Chatted with @jpl-jengelke about publishing under gov.nasa.ammos.aerie.*, since AMMOS has already claimed ownership of this top level domain (gov.nasa.ammos) with Sonatype (Maven Central publisher). Related to NASA-AMMOS/slim-starterkit-java#5

@dandelany dandelany moved this from Blocked to In Progress in Aerie Feb 15, 2024
@skovati skovati moved this from In Progress to Blocked in Aerie Feb 27, 2024
@mattdailis mattdailis self-assigned this May 9, 2024
@dandelany
Copy link
Collaborator

This should no longer be blocked & we have the ability to publish packages to gov.nasa.ammos.aerie.*.

We need to test this process to make sure it works, but be careful to do so in a way that does not break things/expose an incorrect build to any consumers.

@dandelany dandelany moved this from Blocked to In Progress in Aerie May 23, 2024
@dandelany dandelany moved this from In Progress to Blocked in Aerie Aug 29, 2024
@joswig joswig moved this from Blocked to Todo in Aerie Sep 12, 2024
@dandelany dandelany moved this from Todo to Blocked in Aerie Oct 10, 2024
@dandelany dandelany added the soon Not quite next up, but soon label Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci Changes to our CI configuration files and scripts soon Not quite next up, but soon
Projects
Status: Blocked
Development

No branches or pull requests

7 participants