SDK lifecycle

An SDK rarely springs into existence ready to publish. It usually starts as a quick local hack, hardens into a project-private artifact, and only then graduates into a fully packaged release on the SDK Store. The shape of the definition stays similar throughout; what changes is where it lives, who can see it, and how Workshop installs it.

The lifecycle has five stages:

  1. Sketch an SDK. This is a throwaway local experiment in a single workshop.

  2. Save it as an in-project SDK. The definition moves next to the project’s source code and is committed to version control.

  3. Build an SDK project. This is a complete SDKcraft project with parts, hooks, platforms, and tests.

  4. Publish the SDK. Register the name on the SDK Store, upload built artifacts, and release them to channels.

  5. Consume the SDK. Add the SDK to a workshop.yaml definition and pick a channel.

Not every SDK travels the whole road, and the sequence may vary; for instance, you can create an in-project SDK manually without a sketch SDK to eject it from. However, the general sequence is common enough to be presented as a single flow:

        flowchart TD
  subgraph Sketch
    SketchEdit[workshop sketch-sdk]
  end

  subgraph Project[In-project SDK]
    SketchEject[workshop sketch-sdk --eject]
  end

  subgraph Build
    BuildInit[sdkcraft init] --> BuildPack[sdkcraft pack] --> BuildTry[sdkcraft try] --> BuildTest[sdkcraft test]
  end

  subgraph Publish
    PubLogin[sdkcraft login] --> PubRegister[sdkcraft register] --> PubTrack[sdkcraft create-track] --> PubUpload[sdkcraft upload] --> PubRelease[sdkcraft release]
  end

  subgraph Consume
    UseFind[sdk find] --> UseLaunch[workshop launch] --> UseInfo[workshop info]
  end

  SketchEdit --> SketchEject
  SketchEject -->|promote| BuildInit
  BuildTest -->|publish| PubLogin
  PubRelease -->|add to workshop.yaml| UseFind
  Manual[Author by hand] -.-> Project
    

SDK lifecycle stages and their commands

Each stage trades immediacy for reach. A sketch is instant but lives and dies with one workshop; an in-project SDK is shared through the project repository; a published SDK is packaged once and consumed anywhere through the SDK Store. Each command above is documented in the SDK CLI reference, while the deeper mechanics of each stage, from hooks and parts to channels and guardrails, are covered in the SDK concepts and how-to guides.

See also

Explanation:

How-to guides:

Reference:

Tutorial: