PublishRA

Packages & the kpar format

Everything published to Forge is a package: a versioned, immutable bundle of SysML v2 model elements plus metadata, distributed as a single kpar file.

What is a package?

A package is a LibraryPackage exported from a project together with its metadata (name, version, license, tags, dependencies) and its transitive library dependencies. Consumers import a package into their project and specialize or reference its elements; the package content itself is read-only.

The kpar archive

Forge accepts and distributes every package as a single kpar file (KerML Project Archive, KerML clause 10.3). A kpar carries the model source, a .project.json manifest, a README, and its licences.

KerML 1.0 §10.3 compliance

kpar archives produced by Bloom, sysand, or the Forge CLI conform strictly to the KerML interchange standard and can be unpacked by any compliant KerML tool.

.project.json
{
  "name": "@mycelium/isq-quantities-units",
  "version": "1.2.0",
  "license": "Apache-2.0",
  "metamodel": "SysML v2 2025.1",
  "description": "Standard International System of Quantities and Units library package for SysML v2 models.",
  "dependencies": {}
}

Package identity

Every package has a scoped identifier of the form @scope/name, where the scope resolves to a Mycelium account or organization slug. The unscoped, global namespace is reserved for standard libraries distributed by the Mycelium operator.

⚠️
Scope ownership

Publishing to an organization scope requires the Publisher role. Personal scopes are reserved exclusively for the corresponding account.

Last updated 29 July 2026 Edit this page
Was this page helpful?