SDKMAN! Golang CLI This project has been downgraded to a mere spike, the learnings of which will lead to the next phase of exploration of the CLI. We are also…
SDKMAN! Golang CLI

This project has been downgraded to a mere spike, the learnings of which will lead to the next phase of exploration of the CLI. We are also looking at Rust as an alternative implementation solution.
The current bash implementation is still completely fit for purpose and remains in full production use.
Living Documentation
SDKMAN's development is always driven by tests. More than that, we use Cucumber to describe the behaviour of the CLI in plain English. We do so using Cucumber features, all of which can be found under the [_features/_](features) folder of this repo. These Features form a body of Living Documentation that evolves with the software implementation.
The Cucumber Features are backed by Step Definitions, snippets of matched code that are invoked in order as the Cucumber Feature are
Development
Prerequisites
Ensure that Go is installed on your system.
Optionally, install Godog for running the Cucumber specifications directly:
$ go get github.com/DATA-DOG/godog/cmd/godog
Running the tests
To run all tests using Go's builtin test support (unit and cukes):
$ cd path/to/the/repo/sdk
$ go test --godog.format=pretty
If Godog was installed earlier, run the Cucumber specs directly in isolation with the following command:
$ godog
Run
To kick the tyres before building:
$ go run sdk.go version
Build
To build and run the binary executable:
$ go build
$ ./sdk
Members
-
sdkman-cli ★ PINNED
The SDKMAN! Command Line Interface
Shell ★ 6.8k just nowExplain → -
sdkman-cli-native ★ PINNED
The next generation of SDKMAN! CLI commands, written in Rust
Rust ★ 347 1m agoExplain → -
sdkman-db-migrations ★ PINNED
Database migrations for the sdkman API
Scala ★ 76 7d agoExplain → -
sdkman.github.io ★ PINNED
The SDKman website
TypeScript ★ 10 3d agoExplain → -
homebrew-tap
No description.
Ruby ★ 66 10mo agoExplain → -
sdk ▣
The next generation of SDKMAN! written in golang
Go ★ 45 7y agoExplain → -
sdkman-action ▣
SDKMAN! GitHub Action
★ 24 2y agoExplain → -
sdkman-java-sdk ▣
An sdk for the Groovy enVironment Manager (GVM)
Groovy ★ 24 12y agoExplain → -
sdkman-extensions ▣
SDKMAN! Extension Commands
Shell ★ 17 4y agoExplain → -
sdkman-vendor-gradle-plugin
A plugin for Gradle to allow Vendors to release Candidate Versions on SDKMAN!
★ 16 1y agoExplain → -
sdkman-website-playframework ⑂ ▣
The SDKman website
HTML ★ 16 1y agoExplain → -
sdkman-disco-integration
No description.
Java ★ 12 7d agoExplain → -
sdkman-candidates
The Candidates service that under-girds SDKMAN! CLI.
Scala ★ 11 23d agoExplain → -
sdkman-vendor-maven-plugin
Maven Plugin for SDKMAN Vendors
Java ★ 8 4mo agoExplain → -
vendor-proxy
The API used by Vendors to Create and Announce their new Releases.
Scala ★ 7 3mo agoExplain → -
sdkman-hooks
An API responsible for serving up pre- and post- hooks
Scala ★ 5 12m agoExplain → -
sdkman-release-action
Release your SDK to SDKMAN! using GitHub Actions
JavaScript ★ 5 7d agoExplain → -
vendor-release-legacy ▣
The SDKMAN! Vendor Release microservice.
Scala ★ 5 9y agoExplain → -
prompt-library
A place to store prompt templates and rules for LLMs
★ 4 1mo agoExplain → -
sdkman-broadcast ▣
The SDKMAN! REST API service for Broadcasting
Groovy ★ 4 4y agoExplain → -
posh-gvm ⑂ ▣
GVM for Powershell
PowerShell ★ 4 8y agoExplain → -
sdkman-state
Exposes candidates and versions through a JSON API
Kotlin ★ 3 3h agoExplain → -
sdkman-candidates-legacy ▣
The main candidate service for SDKMAN!
Shell ★ 3 8y agoExplain → -
sdkman-gui ▣
A Griffon GUI for GVM
Groovy ★ 3 5y agoExplain → -
sdkman-broker-2
Next generation SDKMAN Broker applicatoin
Kotlin ★ 2 just nowExplain → -
new-sdkman.github.io
The SDKman website
TypeScript ★ 2 1d agoExplain → -
vendor-release
The Vendor Release API, supporting Universal and Multi-Platform Vendor Releases
Gherkin ★ 1 7d agoExplain → -
sdkman-mcp-server
No description.
Rust ★ 1 3mo agoExplain → -
vendor-announce ▣
SDKMAN Vendor API for announcing new broadcast messages
Groovy ★ 1 1y agoExplain → -
sdkman-db-crawler ▣
Application that scours the mongodb Versions collection for invalid URL resources
Scala ★ 1 1y agoExplain → -
sdkman-default-action
Change the default version of your SDK in SDKMAN! using GitHub Actions
JavaScript ★ 1 3mo agoExplain → -
sdkman-mongodb-persistence
Microlibrary to be used in SDKMAN microservices for mongodb persistence.
Scala ★ 1 2y agoExplain → -
sdkman-persistent-model
Persistent model for SDKMAN as Scala case classes
Scala ★ 1 2y agoExplain → -
.github
No description.
★ 0 1d agoExplain → -
sdkman-broker ▣
Download broker service for SDKMAN!
Java ★ 0 1y agoExplain → -
sdkman-vendor-release-action ▣
No description.
★ 0 5y agoExplain → -
sdkman-url-validator
Perform URL validation to determine if URLs are orphaned
Scala ★ 0 1y agoExplain → -
beta.sdkman.github.io ▣
Beta statically generated website for SDKMAN!
HTML ★ 0 8y agoExplain → -
sdkman-test ▣
The GVM multi-platform test project
★ 0 4y agoExplain →
No repos match these filters.