-
Notifications
You must be signed in to change notification settings - Fork 3
Vendor Onboarding
SDKMAN! lets SDK vendors publish their releases directly onto the platform, so
that millions of developers can install them with a single sdk install
command. This page explains who qualifies, how to get set up, and where to go
next.
If you just want to publish versions and already have an account, jump to the Vendor API Integration Guide.
There are three distinct routes onto SDKMAN!, and picking the right one saves everyone time.
Every Java distribution on SDKMAN! (Temurin, Corretto, Zulu, GraalVM, Liberica, and the rest) is sourced automatically from the Foojay DISCO API, which pushes new builds to us directly.
You do not use the vendor API for Java. If a Java version is missing, it usually means DISCO hasn't picked it up yet - raise it with the Foojay DISCO project or the distribution vendor.
Want to add a new JDK distribution to SDKMAN!? Come and talk to us in the #vendors channel on Discord and we'll help you get it onboarded.
If you maintain a JVM SDK other than Java (such as a build tool, language, framework, or CLI) and you want to publish your own releases as they happen, you're a vendor-managed candidate. You get an account and publish versions yourself through the SDKMAN! State API.
This is what the rest of this guide is about. See Getting started as a vendor below.
If your SDK isn't a candidate on SDKMAN! at all, it needs to be created first. See Requesting a new candidate.
SDKMAN! is focused on the JVM ecosystem. A tool qualifies if it's either built on the JVM or directly serves JVM developers (build tools, JVM languages, frameworks, and the like).
Tools with no connection to the JVM universe are out of scope - for example Go, Rust, Node.js, Python, or Ruby toolchains. They're excellent tools; they just belong with ecosystem-specific managers rather than SDKMAN!. If you're not sure which side of the line your project falls on, ask in the #vendors channel on Discord before applying and we'll let you know.
Before any versions can be published, the candidate itself must exist in the
SDKMAN! registry (this is what drives sdk list).
For now, new candidates are created by hand. Email info@sdkman.io with:
-
Candidate identifier - lowercase, letters and digits only, max 20
characters (e.g.
gradle,springboot). This is what users type:sdk install <identifier>. -
Display name - e.g.
Gradle,Spring Boot. -
Description - one to three sentences, starting with the product name and
ending with a full stop. Factual, no marketing or exclamation marks. It shows
in full in
sdk list(wrapped at 80 columns), so aim for 2-5 lines; keep it to a single paragraph of plain ASCII. -
Website URL - an
https://link to your project's homepage.
We'll register the candidate and set up your vendor account in one go.
Coming soon: a self-service, YAML-based workflow for candidate and version updates is planned to replace this manual step. Until then, email is the way.
- Request access. Join us on Discord and start a new thread in the #vendors channel introducing your project: what it is, who's behind it, and what you'd like to publish. If your candidate doesn't exist yet, see Requesting a new candidate first. Prefer email? Reach us at info@sdkman.io.
-
Share a public PGP key. Our preferred way to deliver credentials securely
is encrypted over PGP. Sending an
armoured public PGP key
(
gpg --armor --export) is the smoothest path; if that's tricky for you, say so and we'll sort out a secure alternative. - We provision your account. You'll receive a vendor email and a generated password (encrypted to your PGP key), scoped to the specific candidate(s) you're authorised to publish. Store it somewhere safe.
-
Integrate. Follow the
Vendor API Integration Guide
to authenticate (JWT) and publish versions - with
curland GitHub Actions examples.
- Vendor API Integration Guide - auth + publishing, step by step
- Well-formed SDK Archives - how to lay out your distribution archive
- Platform and Distribution Reference - the exact platform and distribution values
-
Tags,
latestand default - how the default/stable version works now - Migrating from the old Vendor API - if you were on the old Consumer-Key API
- API Reference - Swagger UI + OpenAPI spec
Questions? The #vendors channel on Discord is the fastest way to reach us.