Skip to content

Create Release

Stable

Creating a release adds a new versioned snapshot to an existing mod in the registry. The release is created empty — with no assets, symbolic links, or mission scripts — and the maintainer populates it by updating it before publishing.

PropertyValue
Applies toWebapp
TriggerAn authenticated maintainer submits the create release form
PreconditionsThe user is authenticated and is a maintainer of the mod

Inputs

modId : String, required. The identifier of the mod to create a release for.

version : String, required. The version string for the release (e.g. 1.0.0).

Assertions

AssertionStatus
The user must be authenticatedImplemented
The mod must exist in the registryImplemented
The authenticated user must be a maintainer of the modImplemented

Outputs

Result<ModReleaseData, ModNotFoundError | NotMaintainerError> : On success, returns the created release record. On failure, returns one of the following error types:

ModNotFoundError : The mod does not exist in the registry.

NotMaintainerError : The authenticated user is not a maintainer of the mod.

Effects

EffectStatus
A new release record is created in the registryImplemented
The release's initial visibility is set to PUBLICImplemented
The release is created with empty assets, symbolicLinks, and missionScripts listsImplemented
A unique identifier is generated and assigned to the releaseImplemented
A versionHash is generated and stored with the releaseImplemented

Behavior

mermaid
flowchart TD
    Start([createRelease user data]) --> Authenticated{User authenticated?}

    Authenticated -- No --> Reject401([Reject: 401 Unauthorized])
    Authenticated -- Yes --> Exists{Mod exists?}

    Exists -- No --> ErrNotFound([Reject: ModNotFoundError])
    Exists -- Yes --> IsMaintainer{User is maintainer?}

    IsMaintainer -- No --> ErrNotMaintainer([Reject: NotMaintainerError])
    IsMaintainer -- Yes --> Create[Create release with PUBLIC visibility,<br/>empty assets/symlinks/scripts,<br/>new versionHash]

    Create --> Done([Release created])

    style Reject401 fill:#f87171,color:#fff
    style ErrNotFound fill:#f87171,color:#fff
    style ErrNotMaintainer fill:#f87171,color:#fff
    style Done fill:#4ade80,color:#000

See Also

  • Update release — Spec page for adding assets, symbolic links, and mission scripts to a release.
  • Delete release — Spec page for removing a release from the registry.
  • Create mod — Spec page for registering the mod that a release belongs to.
  • How the Webapp works — Guide covering release structure, assets, and symbolic link definitions.
  • Add Release — Spec page for the Daemon behavior that installs a release after the user requests it.