Open an issue or pull request stating the library's purpose, its intended consumers, and its portability (any SysML v2 tool, or an executing engine).
- UpperCamelCase; the package name equals the file stem.
- One top-level
library packageper file. - Never reuse an OMG standard-library package name.
.kermlonly for KerML-only content; everything else is.sysml.
Use a standard filtered view wherever one exists; a library name is only an
optional shorter form of it. The extension libraries are for what standard
SysML cannot express: mixed diagrams, results from runs, and layout. A
proposal for new rendering or view vocabulary must show that no standard view
(a GeneralView, GridView, InterconnectionView or other standard view
with a filter) expresses the same diagram.
- A top-level
docthat says NON-NORMATIVE and what the library is for. - Every public definition documented.
./scripts/validate-libraries.shmust pass on the pinned pilot with 0 errors and 0 warnings.validation/allowed-warnings.txtonly shrinks: never add an entry.- Never write
standard library package— that keyword is reserved for the OMG standard library and the pilot validator warns on it. - A README table row is required; CI checks the table against
libraries/. - State the semver impact of your change in the pull request (see Versioning in the README).
engine-contract.json records the qualified names OpenSysML binds to.
Changing or removing a manifest entry is a breaking change: it needs
contract bumped, a coordinated Open-MBEE/OpenSysML pull request that
re-pins its vendored copy, and a MAJOR release. New engine bindings are added
to the manifest by the OpenSysML-side pull request that introduces them —
upstream there first.
At least one maintainer approval. Changes OpenSysML's runtime depends on need a matching OpenSysML pull request that re-pins its vendored copy; edits to that vendored copy are not accepted in OpenSysML — they come here.
Edit scripts/pilot-pin.sh (PILOT_TAG and PILOT_COMMIT together) and
re-run ./scripts/verify-pilot-pin.sh and ./scripts/validate-libraries.sh.