Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
3025cdb
feat(libs): declare and evaluate exp, ln, log and atan2 in a Systemic…
devin-ai-integration[bot] Aug 11, 2026
4151ec3
refactor(libs): rename the non-normative math library to OpenSysMLMat…
devin-ai-integration[bot] Aug 18, 2026
d198087
docs: rename the product to OpenSysML across docs, comments and fixtures
devin-ai-integration[bot] Aug 18, 2026
74921ab
docs: fix article before OpenSysML
devin-ai-integration[bot] Aug 18, 2026
5bbe05b
Merge pull request Open-MBEE/OpenSysML#292 from JPL-Devin/devin/17870…
HuiJun Aug 18, 2026
f4a1325
feat(query): add native document query planning
devin-ai-integration[bot] Aug 29, 2026
45ffbe1
feat(query): execute native document queries
devin-ai-integration[bot] Aug 30, 2026
131bf55
feat(queryexec): execute named relationship traversal in document que…
devin-ai-integration[bot] Aug 30, 2026
cba1d66
feat(docplan): native document planning and backend-agnostic document IR
devin-ai-integration[bot] Aug 30, 2026
26e241d
Merge pull request Open-MBEE/OpenSysML#695 from JPL-Devin/devin/17881…
HuiJun Aug 30, 2026
4122db0
chore: merge origin/main and reconcile documentation counts
devin-ai-integration[bot] Aug 30, 2026
c15f8a0
Merge pull request Open-MBEE/OpenSysML#696 from JPL-Devin/devin/17881…
HuiJun Aug 30, 2026
7413d5d
feat(docrender): embed generated diagrams as document content blocks
devin-ai-integration[bot] Aug 30, 2026
63f7f2d
feat(docplan): inline runs, cross-references and grouped tables in na…
devin-ai-integration[bot] Aug 31, 2026
502a0b0
Merge pull request Open-MBEE/OpenSysML#708 from JPL-Devin/devin/17881…
HuiJun Aug 31, 2026
647adf9
feat(queryexec): computed expression columns in Project projections
devin-ai-integration[bot] Aug 31, 2026
3ff8f7c
fix(queryexec): reject empty projections at planning, scope qualified…
devin-ai-integration[bot] Aug 31, 2026
0317efc
fix(queryexec): allow positional Project, default unrelated rows, enf…
devin-ai-integration[bot] Aug 31, 2026
854fe47
feat(docplan): style query-produced text through column runs
devin-ai-integration[bot] Aug 31, 2026
f1d46f2
feat(docgen): cross-document Ref targets with linked multi-document r…
devin-ai-integration[bot] Aug 31, 2026
43f440e
merge: main into devin/1788158029-cross-document-refs
devin-ai-integration[bot] Aug 31, 2026
a7ab826
Merge pull request Open-MBEE/OpenSysML#718 from JPL-Devin/devin/17881…
HuiJun Aug 31, 2026
561d14f
Merge pull request Open-MBEE/OpenSysML#82 from JPL-Devin/main
HuiJun Aug 31, 2026
77be1bc
feat(identity): IdentityMetadata library, identity side table, and va…
devin-ai-integration[bot] Sep 1, 2026
7d95eb6
Merge pull request Open-MBEE/OpenSysML#733 from JPL-Devin/devin/17882…
HuiJun Sep 1, 2026
3fb0716
Merge pull request Open-MBEE/OpenSysML#84 from JPL-Devin/main
HuiJun Sep 2, 2026
45fd4d4
feat(libs): add OOSEM library, example and prefixed use-case parsing
devin-ai-integration[bot] Sep 5, 2026
e6b1ff5
feat(docgen): project shortName/documentation and render query rows a…
devin-ai-integration[bot] Sep 5, 2026
7994edc
feat(libs): add OOSEM viewpoints, views and method checks
devin-ai-integration[bot] Sep 5, 2026
d88fb19
Merge origin/main into devin/1788631018-doc-shortname-documentation
devin-ai-integration[bot] Sep 5, 2026
ebac3d3
Merge pull request Open-MBEE/OpenSysML#103 from JPL-Devin/main
HuiJun Sep 5, 2026
08e4cd1
chore: merge main into devin/1788631018-doc-shortname-documentation
devin-ai-integration[bot] Sep 5, 2026
0028de2
Merge origin/main into devin/1788634272-oosem-views-checks
devin-ai-integration[bot] Sep 5, 2026
eab2241
Merge origin/main into devin/1788634272-oosem-views-checks
devin-ai-integration[bot] Sep 5, 2026
23c7ee0
Merge pull request Open-MBEE/OpenSysML#104 from JPL-Devin/main
HuiJun Sep 7, 2026
0b777c9
feat(libs): add the MOSA standard library
devin-ai-integration[bot] Sep 11, 2026
19a8dfe
feat(libs): let MOSA registers take the depth they walk below root
devin-ai-integration[bot] Sep 11, 2026
4b2d9df
feat(view): add Graphviz DOT render form
devin-ai-integration[bot] Sep 12, 2026
b3aa588
feat(libs): add the DiagramLayout metadata library
devin-ai-integration[bot] Sep 12, 2026
c83f16a
fix(semantics): let metadata body declarations redefine nonunique fea…
devin-ai-integration[bot] Sep 12, 2026
e0ac061
refactor(docrender): choose the diagram form at render time, not in t…
devin-ai-integration[bot] Sep 12, 2026
1fe895a
Merge remote-tracking branch 'origin/develop' into feature/dot-render…
devin-ai-integration[bot] Sep 12, 2026
8b8f444
feat(view): draw DOT in the Pilot's Standard B&W style with named pal…
devin-ai-integration[bot] Sep 13, 2026
cef0245
Merge pull request Open-MBEE/OpenSysML#248 from Open-MBEE/feature/dot…
HuiJun Sep 13, 2026
b6d6a3b
feat(view): add a PlantUML rendering form
devin-ai-integration[bot] Sep 13, 2026
9cc53e0
feat(query): document queries over the objects a session holds
devin-ai-integration[bot] Sep 13, 2026
915b3f2
Merge pull request Open-MBEE/OpenSysML#264 from Open-MBEE/feature/pla…
HuiJun Sep 13, 2026
b81703a
Merge remote-tracking branch 'origin/develop' into feature/query-obje…
devin-ai-integration[bot] Sep 13, 2026
eb72bbe
Merge pull request Open-MBEE/OpenSysML#268 from Open-MBEE/release/0.8.0
HuiJun Sep 13, 2026
0ebfa69
feat(docs): typeset LaTeX mathematics in Markdown, HTML and PDF docum…
devin-ai-integration[bot] Sep 14, 2026
2350875
chore: merge develop into feature/latex-math
devin-ai-integration[bot] Sep 14, 2026
49f5cbe
feat(query): Verdicts rows over an object's constraints, requirements…
devin-ai-integration[bot] Sep 14, 2026
e88d076
chore: merge develop into feature/query-verdicts
devin-ai-integration[bot] Sep 14, 2026
a7d35e2
fix(query): declare assertion and carrier on DocumentQueries::Verdict
devin-ai-integration[bot] Sep 14, 2026
bf70788
Merge pull request Open-MBEE/OpenSysML#286 from Open-MBEE/merge/main-…
HuiJun Sep 14, 2026
691400c
feat(runtime): run state-space dynamics by fixed-step integration on …
devin-ai-integration[bot] Sep 14, 2026
5e44394
fix(runtime): correct the state-space runner's review findings
devin-ai-integration[bot] Sep 15, 2026
fc74007
Merge pull request Open-MBEE/OpenSysML#296 from Open-MBEE/feature/sta…
HuiJun Sep 15, 2026
80f14f4
feat(lower): carry Probability metadata on decision successions
devin-ai-integration[bot] Sep 16, 2026
9a40521
feat(runtime): add stochastic execution and Monte Carlo runs
devin-ai-integration[bot] Sep 16, 2026
4af338f
fix(runtime): refuse malformed weighted witnesses, read quoted %runs …
devin-ai-integration[bot] Sep 16, 2026
a782e41
Merge pull request Open-MBEE/OpenSysML#344 from Open-MBEE/feature/sto…
HuiJun Sep 16, 2026
02c9b43
feat(query): States, InState and Events operations over a session's r…
devin-ai-integration[bot] Sep 17, 2026
c30e4f8
feat(query): add coverage and set operations
devin-ai-integration[bot] Sep 17, 2026
1f6159c
feat(query): traverse derivation and refinement relationships
devin-ai-integration[bot] Sep 17, 2026
6270e33
feat(query): add relationship-derived projection columns
devin-ai-integration[bot] Sep 17, 2026
377c553
fix(query): emit each Except row once by identity
devin-ai-integration[bot] Sep 17, 2026
952d6de
Merge remote-tracking branch 'origin/develop' into feature/derivation…
devin-ai-integration[bot] Sep 17, 2026
b74c96f
Merge remote-tracking branch 'origin/develop' into feature/query-cove…
devin-ai-integration[bot] Sep 17, 2026
7da2168
Merge remote-tracking branch 'origin/develop' into feature/traceabili…
devin-ai-integration[bot] Sep 17, 2026
c37662c
fix(query): give state and event rows a set identity
devin-ai-integration[bot] Sep 17, 2026
c17a756
feat(migrate): write SimulationConfig elements as action defs perform…
devin-ai-integration[bot] Sep 17, 2026
93b2ab9
docs(migrate): document run configurations, draw policies and the res…
devin-ai-integration[bot] Sep 18, 2026
3174f2c
fix(migrate): carry collection paths through swimlanes and lower Java…
devin-ai-integration[bot] Sep 18, 2026
35530c5
Merge remote-tracking branch 'origin/develop' into feature/v1-opaque-…
devin-ai-integration[bot] Sep 18, 2026
7215fd3
Merge remote-tracking branch 'origin/develop' into feature/query-cove…
devin-ai-integration[bot] Sep 18, 2026
9a8b27b
chore(query): stack RelatedColumn on the coverage set operations
devin-ai-integration[bot] Sep 18, 2026
40208ed
Merge remote-tracking branch 'origin/develop' into feature/v1-simulat…
devin-ai-integration[bot] Sep 18, 2026
5071352
Merge pull request Open-MBEE/OpenSysML#368 from Open-MBEE/feature/tra…
HuiJun Sep 18, 2026
caeba3d
Merge remote-tracking branch 'origin/develop' into feature/v1-simulat…
devin-ai-integration[bot] Sep 18, 2026
d023062
Merge remote-tracking branch 'origin/develop' into feature/v1-opaque-…
devin-ai-integration[bot] Sep 18, 2026
2f2f85b
fix(migrate): ceiling Math.ceil through an extension function safe at…
devin-ai-integration[bot] Sep 18, 2026
bf7724d
merge: bring feature/v1-state-interaction-fidelity into feature/v1-op…
devin-ai-integration[bot] Sep 19, 2026
c7a5095
Merge pull request Open-MBEE/OpenSysML#383 from Open-MBEE/feature/v1-…
HuiJun Sep 20, 2026
ecedb48
Merge remote-tracking branch 'origin/develop' into HEAD
devin-ai-integration[bot] Sep 20, 2026
2b662ff
Merge pull request Open-MBEE/OpenSysML#382 from Open-MBEE/feature/v1-…
HuiJun Sep 20, 2026
18d5124
feat(migrate): write the simulation tool's Monte Carlo analysis patte…
devin-ai-integration[bot] Sep 22, 2026
84d2e4a
feat(runtime): conclude a Simulation::MonteCarlo case over its seeded…
devin-ai-integration[bot] Sep 22, 2026
e1d33f2
feat(query): unbounded maxDepth, RelatedColumn targets and isIndividu…
devin-ai-integration[bot] Sep 22, 2026
e3fdca3
feat(query): add Named, resolving elements by qualified name
devin-ai-integration[bot] Sep 22, 2026
13ff736
Merge remote-tracking branch 'origin/feature/migrate-diagrams-to-view…
devin-ai-integration[bot] Sep 22, 2026
49f109f
feat(migrate): flatten generated row queries
devin-ai-integration[bot] Sep 23, 2026
f94f5f8
fix(migrate): keep a table's column order and unique column names wit…
devin-ai-integration[bot] Sep 23, 2026
0fd3d5d
fix(migrate): write a table's built-in columns first and note the reo…
devin-ai-integration[bot] Sep 23, 2026
2a7cc37
Merge pull request Open-MBEE/OpenSysML#533 from Open-MBEE/feature/mig…
HuiJun Sep 23, 2026
56f648b
feat(migrate): mark the names a migration makes up and draw those ele…
devin-ai-integration[bot] Sep 24, 2026
bfc40d9
feat(analysis): generate analysis-run records into the model
devin-ai-integration[bot] Sep 24, 2026
2db9987
fix(analysis): give a run's record its own kind
devin-ai-integration[bot] Sep 24, 2026
2d2815c
fix(analysis): record what a verification run's body decided
devin-ai-integration[bot] Sep 24, 2026
b9f4d69
Merge remote-tracking branch 'origin/develop' into feature/positioned…
devin-ai-integration[bot] Sep 24, 2026
491c0c0
Merge pull request Open-MBEE/OpenSysML#560 from Open-MBEE/feature/pos…
HuiJun Sep 24, 2026
60f448f
Merge pull request Open-MBEE/OpenSysML#564 from Open-MBEE/release/0.9.0
HuiJun Sep 24, 2026
91675c6
feat(doc): image content block
devin-ai-integration[bot] Sep 25, 2026
08a7d89
feat(queryexec): read features through nested members of the row element
devin-ai-integration[bot] Sep 25, 2026
f466f17
Merge remote-tracking branch 'origin/develop' into feature/nested-mem…
devin-ai-integration[bot] Sep 25, 2026
c44b7cc
fix(queryexec): bound-check a nested member's values against its mult…
devin-ai-integration[bot] Sep 25, 2026
706e281
feat(view): carry Style and Note diagram annotations through the rend…
devin-ai-integration[bot] Sep 25, 2026
4d8846d
chore(doc): merge feature/document-images into cameo-style diagrams
devin-ai-integration[bot] Sep 25, 2026
c746c5c
feat(record): record the tools a run reached
devin-ai-integration[bot] Sep 25, 2026
2faca90
Merge pull request Open-MBEE/OpenSysML#579 from Open-MBEE/feature/cam…
HuiJun Sep 25, 2026
2a974d0
chore: merge develop into feature/nested-member-document-columns
devin-ai-integration[bot] Sep 25, 2026
4799f80
Merge remote-tracking branch 'origin/develop' into feature/tool-dry-r…
devin-ai-integration[bot] Sep 25, 2026
ae66e47
Merge remote-tracking branch 'origin/develop' into feature/tool-dry-r…
devin-ai-integration[bot] Sep 25, 2026
474258d
feat(layout): add DiagramLayout::Picture for pictures placed on a view
devin-ai-integration[bot] Sep 25, 2026
164ebf7
fix(analysis): record repeated tool calls as the calls they are
devin-ai-integration[bot] Sep 25, 2026
a7f4c75
Merge remote-tracking branch 'origin/develop' into feature/tool-dry-r…
devin-ai-integration[bot] Sep 26, 2026
958aaa5
feat(doc): carry table column widths and row depth through the query …
devin-ai-integration[bot] Sep 26, 2026
31aca0d
feat(queryexec): add WhereText, metadata tag paths and the general pr…
devin-ai-integration[bot] Sep 26, 2026
23c2259
fix(view): mark migration stand-ins, place shared and strip-drawn pins
devin-ai-integration[bot] Sep 27, 2026
b1fbcef
fix(migrate): rename top-level packages colliding with standard libra…
devin-ai-integration[bot] Sep 27, 2026
b1e6fa6
fix(libs): make the OpenSysML libraries conform to the pilot (default…
devin-ai-integration[bot] Sep 27, 2026
fc3c68a
feat(migrate): encode deferred triggers in standard SysML v2 under -s…
devin-ai-integration[bot] Sep 27, 2026
6153104
feat(migrate): head table columns by the tool's titles, lead with the…
devin-ai-integration[bot] Sep 27, 2026
30b64d3
Merge pull request Open-MBEE/OpenSysML#626 from Open-MBEE/fix/libs-pi…
HuiJun Sep 27, 2026
06525db
Merge remote-tracking branch 'origin/develop' into feature/cameo-beha…
devin-ai-integration[bot] Sep 27, 2026
5cd66f6
Merge remote-tracking branch 'origin/develop' into feature/cameo-tabl…
devin-ai-integration[bot] Sep 27, 2026
51fd1d4
merge: develop into fix/migrate-library-root-names
devin-ai-integration[bot] Sep 27, 2026
61e5b72
Merge pull request Open-MBEE/OpenSysML#622 from Open-MBEE/feature/cam…
HuiJun Sep 27, 2026
cde4d78
Merge remote-tracking branch 'origin/develop' into feature/cameo-beha…
devin-ai-integration[bot] Sep 27, 2026
c6ac1ba
merge: develop into fix/migrate-library-root-names
devin-ai-integration[bot] Sep 27, 2026
891dd62
chore: merge origin/develop into feature/strict-deferred-events
devin-ai-integration[bot] Sep 27, 2026
850c884
Merge remote-tracking branch 'origin/feature/strict-deferred-events' …
devin-ai-integration[bot] Sep 27, 2026
a71851c
Merge remote-tracking branch 'origin/feature/cameo-behavior-notation'…
devin-ai-integration[bot] Sep 27, 2026
cdd6ded
feat(state-machines): express state-machine notation via the StateMac…
devin-ai-integration[bot] Sep 27, 2026
4283fe2
Merge remote-tracking branch 'origin/fix/migrate-library-root-names' …
devin-ai-integration[bot] Sep 27, 2026
635d651
merge: develop into fix/migrate-library-root-names
devin-ai-integration[bot] Sep 28, 2026
bea439c
Merge remote-tracking branch 'origin/fix/migrate-library-root-names' …
devin-ai-integration[bot] Sep 28, 2026
560c2c5
Merge remote-tracking branch 'origin/develop' into feat/state-machine…
devin-ai-integration[bot] Sep 28, 2026
8c6aeee
Merge pull request Open-MBEE/OpenSysML#628 from Open-MBEE/fix/migrate…
HuiJun Sep 28, 2026
29571b9
Merge remote-tracking branch 'origin/develop' into feat/state-machine…
devin-ai-integration[bot] Sep 28, 2026
a8652d9
Merge pull request Open-MBEE/OpenSysML#632 from Open-MBEE/feature/str…
HuiJun Sep 28, 2026
0716c46
Merge remote-tracking branch 'origin/develop' into feat/state-machine…
devin-ai-integration[bot] Sep 28, 2026
3bc4c31
feat(queryplan): support typed cell and path columns
devin-ai-integration[bot] Sep 28, 2026
f19c179
fix(queryplan): refuse a nested chain on a metadata-typed cell
devin-ai-integration[bot] Sep 29, 2026
62fbe86
docs(stdlib): mend the Column comment on metadata cells
devin-ai-integration[bot] Sep 29, 2026
fe23033
Merge remote-tracking branch 'origin/develop' into feat/state-machine…
devin-ai-integration[bot] Sep 29, 2026
63c82dd
Merge remote-tracking branch 'origin/develop' into release/0.9.1
devin-ai-integration[bot] Sep 30, 2026
cfe2e5d
Merge pull request Open-MBEE/OpenSysML#614 from Open-MBEE/release/0.9.1
HuiJun Sep 30, 2026
d873c7c
Merge pull request Open-MBEE/OpenSysML#754 from Open-MBEE/chore/backm…
HuiJun Sep 30, 2026
45ade6b
Merge pull request Open-MBEE/OpenSysML#639 from Open-MBEE/feat/state-…
HuiJun Sep 30, 2026
25ba02d
refactor(lang): merge develop, drop the StateMachines deferral metadata
devin-ai-integration[bot] Sep 30, 2026
fad3bde
feat(migrate): resolve View Editor and MagicDraw cross-references in …
devin-ai-integration[bot] Oct 1, 2026
8d16fce
feat(migrate): lower DocGen OCL columns, collected columns and looped…
devin-ai-integration[bot] Oct 1, 2026
9cb6e38
feat(runtime): unbounded KerML Integers with an int64 fast path
devin-ai-integration[bot] Oct 1, 2026
e1f033a
feat(view): draw the connected ports alone by default, every port und…
devin-ai-integration[bot] Oct 1, 2026
ffe56b1
Merge remote-tracking branch 'origin/develop' into fix/interconnectio…
devin-ai-integration[bot] Oct 1, 2026
dbe5d84
Merge remote-tracking branch 'origin/develop' into feat/docgen-ocl-co…
devin-ai-integration[bot] Oct 1, 2026
543d83e
Merge remote-tracking branch 'origin/develop' into fix/interconnectio…
devin-ai-integration[bot] Oct 1, 2026
e40d78e
Merge remote-tracking branch 'origin/develop' into feat/unbounded-int…
devin-ai-integration[bot] Oct 1, 2026
aaa7bf4
chore(ci): re-run checks after the Rust private-restart test raced
devin-ai-integration[bot] Oct 1, 2026
96625ec
ci: re-run the static and integrity job that hit its time limit
devin-ai-integration[bot] Oct 1, 2026
27438dc
chore(ci): re-run checks after the static job timed out
devin-ai-integration[bot] Oct 1, 2026
57bdb3e
Merge pull request Open-MBEE/OpenSysML#777 from Open-MBEE/feat/unboun…
HuiJun Oct 1, 2026
60f2974
Merge remote-tracking branch 'origin/develop' into fix/interconnectio…
devin-ai-integration[bot] Oct 1, 2026
43ab7e4
Merge remote-tracking branch 'origin/develop' into feat/docgen-ocl-co…
devin-ai-integration[bot] Oct 1, 2026
aff235f
Merge remote-tracking branch 'origin/develop' into fix/interconnectio…
devin-ai-integration[bot] Oct 2, 2026
5be5665
feat(sysml): add reflective self-model validation
devin-ai-integration[bot] Oct 2, 2026
2d35811
fix(runtime): identify a deferred signal's keeping accept by the Defe…
devin-ai-integration[bot] Oct 2, 2026
46bb8a3
chore: merge develop into self-model validation
devin-ai-integration[bot] Oct 2, 2026
9a7d439
Merge remote-tracking branch 'origin/develop' into feature/sysml-self…
devin-ai-integration[bot] Oct 2, 2026
42dc1f7
chore: import the extension libraries from Open-MBEE/OpenSysML with t…
devin-ai-integration[bot] Oct 4, 2026
4c635d2
feat: add pilot-pinned validation gate and kpar build tooling
devin-ai-integration[bot] Oct 4, 2026
2048874
ci: validate libraries and build the kpar on CI and releases
devin-ai-integration[bot] Oct 4, 2026
0f484ad
docs: README library table, usage and versioning; contribution rules
devin-ai-integration[bot] Oct 4, 2026
06e29a4
feat: engine contract manifest and checker
devin-ai-integration[bot] Oct 4, 2026
897ec0b
fix(contract): check metadata entries resolve to a Metaclass; MonteCa…
devin-ai-integration[bot] Oct 4, 2026
67f99c4
docs: say how other tools resolve models that use these libraries
devin-ai-integration[bot] Oct 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: CI

on:
pull_request:
push:
branches: [main]

permissions:
contents: read

jobs:
validate:
name: Validate the extension libraries
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Fetch the pull request base
if: github.event_name == 'pull_request'
run: git fetch origin "${{ github.base_ref }}"

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Cache the pilot validator
uses: actions/cache@v4
with:
path: build/pilot-validator
key: pilot-validator-${{ hashFiles('scripts/pilot-pin.sh', 'scripts/download-pilot-validator.sh', 'scripts/download-pilot-sysml-validator.sh', 'scripts/verify-pilot-pin.sh') }}
restore-keys: pilot-validator-

- name: Verify the pilot pin
run: ./scripts/verify-pilot-pin.sh

- name: Validate the libraries
run: ./scripts/validate-libraries.sh

- name: Check the README library table
run: ./scripts/check-readme-table.sh

- name: Check the engine contract
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
./scripts/check-engine-contract.sh --base "origin/${{ github.base_ref }}"
else
./scripts/check-engine-contract.sh
fi

- name: Build the project archive
run: ./scripts/build-kpar.py --version "0.0.0-dev.${{ github.run_number }}+${GITHUB_SHA::7}" --output opensysml-extension-libraries-dev.kpar

- name: Upload the project archive
uses: actions/upload-artifact@v4
with:
name: opensysml-extension-libraries-dev
path: opensysml-extension-libraries-dev.kpar

opensysml-mirror:
name: OpenSysML against these libraries (advisory)
runs-on: ubuntu-latest
continue-on-error: true
timeout-minutes: 90
steps:
- name: Check out this repository
uses: actions/checkout@v4
with:
path: extensions

- name: Check out OpenSysML
uses: actions/checkout@v4
with:
repository: Open-MBEE/OpenSysML
ref: develop
path: opensysml

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: opensysml/go.mod

- name: Install z3
run: |
sudo apt-get update
sudo apt-get install -y z3

- name: Install cvc5
run: |
curl -fsSL --proto '=https' --proto-redir '=https' -o /tmp/cvc5.zip \
https://github.com/cvc5/cvc5/releases/download/cvc5-1.3.4/cvc5-Linux-x86_64-static.zip
echo "dcdbfada0ce493ee98259c0816e0daafc561c223aadb3af298c2968e73ea39c6 /tmp/cvc5.zip" | sha256sum --check --strict
unzip -p /tmp/cvc5.zip '*/bin/cvc5' > /tmp/cvc5-bin
sudo install -m 0755 /tmp/cvc5-bin /usr/local/bin/cvc5
cvc5 --version | head -1

- name: Run OpenSysML against these libraries
env:
EXTENSIONS_DIR: ${{ github.workspace }}/extensions
run: |
cd "$GITHUB_WORKSPACE/opensysml"
if [ ! -f scripts/sync-extension-libraries.sh ]; then
echo "OpenSysML does not yet vendor from this repository (no sync-extension-libraries.sh); skipping."
exit 0
fi
scripts/sync-extension-libraries.sh --source "$EXTENSIONS_DIR"
make stdlib-snapshot-check || make stdlib-snapshot
go test ./internal/workspace/libs/... ./internal/exec/... ./internal/ir/... ./internal/doc/... ./internal/semantic/... ./internal/check/... ./internal/translate/... ./tests/hygiene/...
46 changes: 46 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Release

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'

permissions:
contents: write

jobs:
release:
name: Build and attach the project archive
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Verify the pilot pin
run: ./scripts/verify-pilot-pin.sh

- name: Validate the libraries
run: ./scripts/validate-libraries.sh

- name: Build the project archive
run: |
version="${GITHUB_REF_NAME#v}"
./scripts/build-kpar.py --version "$version" --output "opensysml-extension-libraries-${version}.kpar"

- name: Create the release
env:
GH_TOKEN: ${{ github.token }}
run: |
version="${GITHUB_REF_NAME#v}"
kpar="opensysml-extension-libraries-${version}.kpar"
gh release create "$GITHUB_REF_NAME" "$kpar" \
--verify-tag \
--title "OpenSysML Extension Libraries $GITHUB_REF_NAME" \
--notes "KerML 10.3 project archive of the extension libraries at $GITHUB_REF_NAME, validated against the pinned OMG SysML v2 Pilot Implementation."
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build/
*.kpar
49 changes: 49 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Contributing

## Proposing a library

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).

## Naming

- UpperCamelCase; the package name equals the file stem.
- One top-level `library package` per file.
- Never reuse an OMG standard-library package name.
- `.kerml` only for KerML-only content; everything else is `.sysml`.

## Documentation

- A top-level `doc` that says NON-NORMATIVE and what the library is for.
- Every public definition documented.

## Validation

- `./scripts/validate-libraries.sh` must pass on the pinned pilot with 0
errors and 0 warnings.
- `validation/allowed-warnings.txt` only 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).

## The engine contract

`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.

## Review

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.

## Bumping the pilot pin

Edit `scripts/pilot-pin.sh` (`PILOT_TAG` and `PILOT_COMMIT` together) and
re-run `./scripts/verify-pilot-pin.sh` and `./scripts/validate-libraries.sh`.
110 changes: 110 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# OpenSysML Extension Libraries

A community repository of **non-normative** SysML v2 / KerML extension
libraries. They are maintained here and consumed by
[OpenSysML](https://github.com/Open-MBEE/OpenSysML) and any other SysML v2
tool. They are **not** part of the OMG standard library; some of them are
proposed for standardization (DiagramLayout, IdentityMetadata and
MigrationMetadata say so in their doc text).

A model that uses one of these libraries is valid SysML v2 that depends on a
non-normative OpenSysML library; other tools resolve it when given the
`libraries/` folder (OpenSysML bundles the same files as its
`OpenSysML Libraries` folder).

## The libraries

| Library | File | Description | Portability |
|---|---|---|---|
| AnalysisRecords | AnalysisRecords.sysml | Metadata a run, sweep or sample records itself with: when it ran, the tool and command, verdicts and evaluations. | Executing engine |
| DiagramLayout | DiagramLayout.sysml | Diagram geometry: element placement, edge waypoints and the drawing extent. | Any SysML v2 tool |
| DocumentQueries | DocumentQueries.sysml | Calc definitions (OwnedElements, Descendants, Ancestors, …) that document views evaluate to select elements. | Executing engine |
| IdentityMetadata | IdentityMetadata.sysml | Binds notation to repository element identity. | Any SysML v2 tool |
| MOSA | MOSA.sysml | Modular Open Systems Approach (10 U.S.C. § 4401) vocabulary. | Any SysML v2 tool |
| MigrationMetadata | MigrationMetadata.sysml | What a migration from another modelling language had to make up because the source left it unstated. | Any SysML v2 tool |
| OOSEM | OOSEM.sysml | Object-Oriented Systems Engineering Method artefacts, viewpoints and product views. | Any SysML v2 tool |
| OpenSysMLMathFunctions | OpenSysMLMathFunctions.kerml | exp, ln, log, atan2, ceiling and the Integer quotient the Kernel Function Library omits. | Executing engine |
| RandomFunctions | RandomFunctions.kerml | Seeded random draws: uniform, uniformInteger, triangular, normal. | Executing engine |
| Simulation | Simulation.sysml | How a behavior is meant to be run: run count, draw resolution, clock, Monte Carlo. | Executing engine |
| StateMachines | StateMachines.sysml | Pseudostates (choice, junction, shallow/deep history) the grammar has no production for. | Executing engine |
| StateSpaceIntegration | StateSpaceIntegration.sysml | Fixed-step (Euler/RK4) running of StateSpaceRepresentation dynamics. | Executing engine |
| Stochastic | Stochastic.sysml | Probability metadata for branches; a tool unaware of it runs the branches as an unweighted choice. | Executing engine |
| SysMLValidation | SysMLValidation.sysml | KerML/SysML abstract-syntax validation constraints over the reflective metamodel. | Executing engine |

Portability "Executing engine" means an executing engine gives the library its
behavior; the libraries still parse and resolve in any tool — only their
behavior needs an engine.

## Layout

`libraries/` is flat: one `library package` per file, and the file stem equals
the package name. SysML resolves libraries by package name, not path, so any
tool can load the directory as-is. The folder these files used to live in,
`OpenSysML Libraries/`, was OpenSysML's library-tier folder; the history here
was imported from Open-MBEE/OpenSysML, and old `#N` references in commit
messages point at that repository.

## Using the libraries

Every tool also needs the OMG standard library (`sysml.library`).

- **OMG pilot batch validator** —
`validate-sysml-batch --library <sysml.library> libraries <your model dir>`
(`validate-sysml --library DIR [--root DIR] FILE|DIR...`). The validator in
this repository (`./scripts/download-pilot-sysml-validator.sh`) builds the
same program.
- **Pilot Eclipse** — import this repository into the workspace as a project
alongside `sysml.library`, so the editor indexes it the same way.
- **SysON** — import the `.sysml` files into the project, or into a library
project it references if your SysON version supports that; see SysON's
documentation. SysON does not execute behavior, so the portable libraries
are the ones that matter there.
- **sysml-toolkit** —
`sysmlv2 check --lib <sysml.library> libraries/*.sysml libraries/*.kerml model.sysml`,
or pass the release `.kpar` (the CLI expands `.kpar` inputs).
- **OpenSysML** — bundled: it vendors a pinned copy at
`internal/workspace/libs/stdlib/OpenSysML Libraries/`, pinned by
`scripts/extension-libraries-pin.sh` and refreshed by
`scripts/sync-extension-libraries.sh`. Edits land here first.

## Versioning

Releases are semver tags `vX.Y.Z` on `main`:

- **MAJOR** — removing or renaming a library or a public element, or changing
its meaning.
- **MINOR** — adding a library or element.
- **PATCH** — documentation and doc-comment changes and fixes that keep names
and meaning.

Each release attaches a `.kpar` project archive. Consumers pin a tag or
commit.

## Engine contract

`engine-contract.json` lists the qualified names in `libraries/` that
OpenSysML's engine binds to — the functions its runtime registry implements,
the metadata and features it reads, the DocumentQueries elements its document
and query plans compile, and the names the SysML v1 migrator writes into user
models. OpenSysML binds by qualified name, so those names are an API: removing,
renaming or changing an entry is a breaking change and needs `contract`
bumped, a coordinated Open-MBEE/OpenSysML pull request that re-pins its
vendored copy, and a MAJOR release. Additions are MINOR.

`./scripts/check-engine-contract.sh` validates the manifest and resolves every
entry against `libraries/` on the pinned pilot; in pull requests it also diffs
the manifest against the base and fails on unannounced breaking changes.

## Validation

`./scripts/validate-libraries.sh` runs the pinned OMG pilot batch validator
(`scripts/pilot-pin.sh`) over `libraries/` and requires zero errors and zero
warnings. Four warnings are temporarily allow-listed in
`validation/allowed-warnings.txt` — the four files that still declare
`standard library package`; an upstream change to `library package` is being
ported and those entries will be deleted. The allow-list only shrinks.

## License

Apache-2.0. Every library was authored in OpenSysML; no OMG material is
redistributed here.
Loading
Loading