Repository navigation
Replies: 1 comment 3 replies
|
We use fury.io for Python. They also support Maven. What's the reason to not re-use that? |
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Publish future
org.lance:lance-corebeta and RC versions to a public Maven repository backed by Cloudflare R2. Stable versions would continue to be published to Maven Central.Motivation
Lance's Java package bundles native libraries for Linux x86-64, Linux ARM64, and macOS ARM64. Version
13.1.0-beta.2totals approximately 210 MB across its JARs, POM, signatures, and checksums.A count of the public Maven Central files for July–September 2026 shows:
These are public repository totals, including signatures and checksums, rather than Portal usage figures; GB denotes decimal gigabytes. Beta and RC versions account for approximately 91% of the bytes. Hosting them separately would reduce average monthly Central publishing volume from 7.71 GB to 0.70 GB at this cadence, while preserving the existing distribution path for stable releases.
Proposed behavior
https://maven.lance.org.org.lance:lance-core:13.1.0-beta.2andorg.lance:lance-core:13.0.0-rc.1. Published versions remain immutable and are retained long term.SNAPSHOTversions. No download credentials are required.Publishing
Extend the existing Java publishing workflow to route numbered beta and RC versions to R2. The build continues to produce the same artifacts and signatures.
During the transition, #9757 keeps stable, beta, and RC publication on Maven Central and adds one R2 upload step after it succeeds. The step extracts the same signed Central bundle and uploads its POM, JARs, signatures, and checksums with the AWS CLI. R2 serves those files through the custom domain using the standard Maven HTTP file layout. No custom publishing script or repository manager is needed.
Consumers specify an exact published version, including the full beta or RC suffix. This supports our preview testing workflow without generating
maven-metadata.xml; version discovery and version ranges are outside this proposal.Release maintainers own the bucket and domain. CI receives Object Read & Write access scoped to the publishing bucket; consumers download anonymously. A failed R2 upload fails the existing publish job after Central publication has already succeeded. Re-running that job also repeats Central publication; this change does not add an independent R2 retry or a content-conflict check.
Cost and tradeoffs
At roughly 35 beta and RC versions per month and today's package size, storage grows by approximately 7.4 GB per month, or 89 GB per year. At R2 Standard pricing, retaining one year's output costs approximately $1.34 per month in storage before free allowances. Direct R2 egress is free; request and domain costs are additional.
Lance would maintain the upload step, bucket, domain, and CI credentials. Beta and RC consumers would configure an additional repository, and organizations restricting dependency sources would need to allow it. This extra responsibility buys predictable hosting costs and control over artifact retention.
All reactions