From af10d06e9a2ab5a1eafac6f5296004d2c34c6d79 Mon Sep 17 00:00:00 2001 From: Blake Regalia Date: Fri, 2 Oct 2026 15:58:06 -0700 Subject: [PATCH] chore(release): v0.10.0 --- .github/workflows/ci.yml | 39 +- CBOR.md | 31 +- CHANGELOG.md | 121 + CLI.md | 77 +- Cargo.lock | 28 +- Cargo.toml | 19 +- IDS.md | 83 +- INTEROP.md | 58 +- LICENSE | 2 +- README.md | 21 +- SDK.md | 6 +- crates/sysmlv2-cbor/Cargo.toml | 2 +- crates/sysmlv2-cbor/src/decode.rs | 67 +- crates/sysmlv2-cbor/src/delta.rs | 45 +- crates/sysmlv2-cbor/src/describe.rs | 6 +- crates/sysmlv2-cbor/src/encode.rs | 96 +- crates/sysmlv2-cbor/src/lib.rs | 17 +- crates/sysmlv2-cbor/src/resolver.rs | 12 +- .../tests/canonical_constructors.rs | 153 + .../sysmlv2-cbor/tests/conditional_graph.rs | 288 + .../tests/connector_end_defaults.rs | 71 + crates/sysmlv2-cbor/tests/delta.rs | 39 +- crates/sysmlv2-cbor/tests/determinism.rs | 4 +- crates/sysmlv2-cbor/tests/elide.rs | 29 +- crates/sysmlv2-cbor/tests/owned_results.rs | 110 + crates/sysmlv2-cbor/tests/resolver.rs | 6 + crates/sysmlv2-cli/Cargo.toml | 2 +- crates/sysmlv2-cli/src/lib.rs | 422 +- crates/sysmlv2-cli/tests/cli.rs | 117 +- crates/sysmlv2-cli/tests/inprocess.rs | 17 +- crates/sysmlv2-lint/Cargo.toml | 4 +- crates/sysmlv2-lint/src/lib.rs | 83 + crates/sysmlv2-lint/tests/lint.rs | 284 +- crates/sysmlv2-lsp/src/accept.rs | 488 + crates/sysmlv2-lsp/src/autofix.rs | 311 +- crates/sysmlv2-lsp/src/autoimport.rs | 611 +- crates/sysmlv2-lsp/src/kinds.rs | 1162 + crates/sysmlv2-lsp/src/lib.rs | 198 +- crates/sysmlv2-lsp/src/nav.rs | 4039 +++- crates/sysmlv2-lsp/src/nav/namespaces.rs | 1381 ++ crates/sysmlv2-lsp/src/outline.rs | 241 +- crates/sysmlv2-lsp/src/push.rs | 7680 ++++++- crates/sysmlv2-lsp/src/receiver.rs | 401 + crates/sysmlv2-lsp/src/reuse.rs | 1440 ++ crates/sysmlv2-lsp/src/salvage.rs | 1337 ++ crates/sysmlv2-lsp/src/signature.rs | 587 + crates/sysmlv2-lsp/src/site.rs | 3461 +++ crates/sysmlv2-lsp/src/tokens.rs | 16 +- crates/sysmlv2-lsp/src/units.rs | 993 + crates/sysmlv2-lsp/tests/extras.rs | 59 +- .../sysmlv2-lsp/tests/library_signatures.rs | 198 + crates/sysmlv2-lsp/tests/nav.rs | 32 +- crates/sysmlv2-lsp/tests/tokens_corpus.rs | 43 +- crates/sysmlv2-lsp/tests/unit_typing.rs | 1318 +- crates/sysmlv2-model/Cargo.toml | 3 +- crates/sysmlv2-model/src/ambient.rs | 67 +- crates/sysmlv2-model/src/cache_codec.rs | 278 +- crates/sysmlv2-model/src/check.rs | 73 +- crates/sysmlv2-model/src/check/actions.rs | 16 +- crates/sysmlv2-model/src/check/chains.rs | 5 +- crates/sysmlv2-model/src/check/dimensions.rs | 42 + crates/sysmlv2-model/src/check/directions.rs | 443 + .../src/check/distinguishability.rs | 85 +- crates/sysmlv2-model/src/check/expressions.rs | 118 +- crates/sysmlv2-model/src/check/facts.rs | 209 +- crates/sysmlv2-model/src/check/invocations.rs | 85 +- .../sysmlv2-model/src/check/multiplicities.rs | 127 +- .../src/check/multiplicity_domains.rs | 496 + .../sysmlv2-model/src/check/relationships.rs | 12 +- crates/sysmlv2-model/src/check/scalars.rs | 33 +- .../sysmlv2-model/src/check/specialization.rs | 171 +- crates/sysmlv2-model/src/check/structural.rs | 51 +- crates/sysmlv2-model/src/check/values.rs | 101 +- crates/sysmlv2-model/src/eval.rs | 2603 ++- crates/sysmlv2-model/src/eval/report.rs | 387 + crates/sysmlv2-model/src/full.rs | 642 +- crates/sysmlv2-model/src/ids.rs | 62 +- crates/sysmlv2-model/src/json.rs | 5511 ++++- crates/sysmlv2-model/src/json/behavior.rs | 94 +- .../sysmlv2-model/src/json/callable_bodies.rs | 190 + crates/sysmlv2-model/src/json/cardinality.rs | 1612 ++ crates/sysmlv2-model/src/json/closures.rs | 51 +- .../src/json/constructor_bindings.rs | 1449 ++ crates/sysmlv2-model/src/json/derived.rs | 269 +- .../src/json/derived_compositions.rs | 8 +- .../sysmlv2-model/src/json/direction_proof.rs | 366 + .../sysmlv2-model/src/json/dynamic_graph.rs | 1166 + .../src/json/dynamic_invocations.rs | 1535 ++ .../sysmlv2-model/src/json/end_constancy.rs | 553 + crates/sysmlv2-model/src/json/exposure.rs | 190 + .../src/json/feature_type_projection.rs | 426 + .../json/feature_type_projection/adapter.rs | 534 + .../readiness_tests.rs | 319 + .../json/feature_type_projection/report.rs | 196 + .../repository_tests.rs | 272 + ...function_specialization_readiness_tests.rs | 40 + .../src/json/generated_defaults.rs | 238 + .../src/json/identity_tables_tests.rs | 163 + crates/sysmlv2-model/src/json/implied.rs | 6035 ++++- .../src/json/import_memberships.rs | 363 + .../src/json/invocation_bindings.rs | 1074 + .../src/json/literal_inheritance.rs | 502 + .../sysmlv2-model/src/json/local_featuring.rs | 597 + .../src/json/membership_context.rs | 558 + .../src/json/membership_evidence.rs | 525 + .../src/json/membership_projection.rs | 406 + .../src/json/metadata_associations.rs | 368 + .../src/json/model_level_evaluability.rs | 559 + .../json/model_level_evaluability/adapter.rs | 1355 ++ .../src/json/named_argument_index_tests.rs | 249 + crates/sysmlv2-model/src/json/naming.rs | 130 +- crates/sysmlv2-model/src/json/operations.rs | 874 + .../src/json/operations/namespaces.rs | 941 + .../src/json/operations/namespaces/imports.rs | 992 + .../namespaces/imports/depth_tests.rs | 263 + .../namespaces/recursive_features.rs | 354 + .../json/operations/namespaces/resolution.rs | 294 + .../operations/namespaces/type_memberships.rs | 373 + .../sysmlv2-model/src/json/owned_results.rs | 783 + .../src/json/parameter_context.rs | 463 + crates/sysmlv2-model/src/json/parameters.rs | 1586 ++ crates/sysmlv2-model/src/json/positional.rs | 2296 ++ .../src/json/positional_delta.rs | 194 + .../src/json/provider_completeness.rs | 1046 + .../json/provider_completeness/mixed_tests.rs | 244 + .../json/provider_completeness/recursive.rs | 519 + .../recursive/qualified.rs | 122 + .../provider_completeness/recursive_tests.rs | 495 + crates/sysmlv2-model/src/json/publication.rs | 124 + .../sysmlv2-model/src/json/recorded_lookup.rs | 1232 ++ .../src/json/redefinition_provenance.rs | 145 + .../src/json/replay_dependencies_tests.rs | 413 + .../src/json/result_redefinition.rs | 1213 + .../sysmlv2-model/src/json/runtime_frames.rs | 259 + crates/sysmlv2-model/src/json/scope_table.rs | 6 +- crates/sysmlv2-model/src/json/semantic.rs | 520 + .../src/json/semantic/certified_types.rs | 1507 ++ .../json/semantic/definition_usage_tests.rs | 163 + .../sysmlv2-model/src/json/semantic/export.rs | 505 + .../src/json/semantic/type_fidelity_tests.rs | 120 + .../sysmlv2-model/src/json/semantic_batch.rs | 52 + .../src/json/semantic_ownership.rs | 400 + crates/sysmlv2-model/src/json/settled.rs | 448 + .../src/json/structural_index.rs | 2334 ++ .../src/json/succession_endpoints.rs | 251 + .../src/json/supertypes_checked_tests.rs | 236 + .../sysmlv2-model/src/json/type_features.rs | 564 + crates/sysmlv2-model/src/json/type_inputs.rs | 1686 ++ .../json/type_inputs/authored_dependencies.rs | 177 + .../json/type_inputs/import_dependencies.rs | 257 + .../type_inputs/parameter_dependencies.rs | 279 + .../json/type_inputs/visible_dependencies.rs | 233 + .../sysmlv2-model/src/json/type_relations.rs | 2893 +++ crates/sysmlv2-model/src/json/typeops.rs | 332 +- .../src/json/usage_variability.rs | 708 + .../sysmlv2-model/src/json/value_context.rs | 381 + crates/sysmlv2-model/src/layered.rs | 208 +- crates/sysmlv2-model/src/lib.rs | 5 +- crates/sysmlv2-model/src/libcache.rs | 50 +- crates/sysmlv2-model/src/lift.rs | 397 +- crates/sysmlv2-model/src/loader.rs | 810 +- crates/sysmlv2-model/src/metamodel.rs | 139 + crates/sysmlv2-model/src/migration.rs | 1819 ++ crates/sysmlv2-model/src/model.rs | 327 +- crates/sysmlv2-model/src/operation_catalog.rs | 414 + crates/sysmlv2-model/src/prepared.rs | 396 +- crates/sysmlv2-model/src/properties.rs | 101 +- crates/sysmlv2-model/src/quantity.rs | 67 +- crates/sysmlv2-model/src/render.rs | 767 - crates/sysmlv2-model/src/semantic_catalog.rs | 14132 ++++++++++++ crates/sysmlv2-parser/Cargo.toml | 6 +- crates/sysmlv2-parser/examples/bench.rs | 2 +- .../examples/derived_correspondence.rs | 2 +- crates/sysmlv2-parser/examples/evalstats.rs | 5 +- crates/sysmlv2-parser/examples/fullcheck.rs | 2 +- .../examples/implied_reachability_bench.rs | 64 + crates/sysmlv2-parser/examples/modelcheck.rs | 2 +- crates/sysmlv2-parser/examples/modelcheck2.rs | 2 +- crates/sysmlv2-parser/examples/refreport.rs | 2 +- crates/sysmlv2-parser/examples/semstats.rs | 5 +- crates/sysmlv2-parser/examples/verifystats.rs | 5 +- crates/sysmlv2-parser/src/lib.rs | 4 +- .../tests/annotation_precision.rs | 45 + .../tests/binary_connection_bases.rs | 184 + .../sysmlv2-parser/tests/cardinality_body.rs | 667 + .../tests/cardinality_context.rs | 422 + .../tests/cardinality_subject.rs | 163 + .../tests/certified_type_properties.rs | 265 + crates/sysmlv2-parser/tests/check.rs | 272 +- .../tests/checked_authored_prerequisites.rs | 303 + .../tests/checked_cardinality.rs | 179 + .../tests/checked_constructors.rs | 203 + .../tests/checked_definition_usage.rs | 70 + .../tests/checked_end_contexts.rs | 127 + .../tests/checked_import_planning.rs | 250 + .../tests/checked_owned_relationships.rs | 86 + .../tests/checked_parameter_prerequisites.rs | 301 + .../tests/checked_positional_prerequisites.rs | 237 + .../tests/checked_recursive_providers.rs | 352 + .../tests/checked_structural_members.rs | 57 + .../tests/checked_type_imports.rs | 307 + .../tests/checked_type_memberships.rs | 168 + .../tests/checked_usage_typing.rs | 406 + .../tests/checked_visible_prerequisites.rs | 255 + .../sysmlv2-parser/tests/checker_identity.rs | 872 + crates/sysmlv2-parser/tests/closure_policy.rs | 39 +- .../tests/connector_bound_scopes.rs | 78 + .../tests/connector_end_bindings.rs | 138 + .../tests/connector_relationship_ends.rs | 346 + .../tests/constructor_static_evaluation.rs | 85 + .../sysmlv2-parser/tests/corpus_identity.rs | 45 + .../tests/cross_feature_scopes.rs | 157 + .../tests/default_featuring_identity.rs | 151 + crates/sysmlv2-parser/tests/derived_api.rs | 308 +- .../tests/distinguishability.rs | 58 +- .../tests/dynamic_invocations.rs | 91 + crates/sysmlv2-parser/tests/eval.rs | 745 +- .../sysmlv2-parser/tests/exposure_context.rs | 204 + .../tests/exposure_memberships.rs | 233 + .../tests/expression_fixed_roles.rs | 157 + .../tests/expression_static_ancestry.rs | 193 + .../tests/feature_chain_static_typing.rs | 108 + .../tests/feature_library_bases.rs | 229 + .../tests/feature_type_report.rs | 119 + .../sysmlv2-parser/tests/filter_identity.rs | 247 + .../tests/fixtures/full-form-baseline.tsv | 4558 ++-- .../fixtures/opensysml/baseline-library.json | 86 +- .../tests/fixtures/opensysml/baseline.json | 76 +- crates/sysmlv2-parser/tests/full_baseline.rs | 2 +- crates/sysmlv2-parser/tests/full_json.rs | 175 +- crates/sysmlv2-parser/tests/grammar_edge.rs | 9 - .../tests/import_memberships.rs | 704 + .../tests/inherited_base_context.rs | 97 + .../sysmlv2-parser/tests/inherited_battery.rs | 31 +- .../tests/inherited_default_report.rs | 486 + .../sysmlv2-parser/tests/inherited_lookup.rs | 888 + .../tests/inherited_lookup_provenance.rs | 47 + crates/sysmlv2-parser/tests/kerml.rs | 38 + crates/sysmlv2-parser/tests/libcache.rs | 265 +- .../sysmlv2-parser/tests/literal_results.rs | 587 + crates/sysmlv2-parser/tests/metadata_about.rs | 192 + .../sysmlv2-parser/tests/metadata_results.rs | 299 + crates/sysmlv2-parser/tests/model.rs | 282 +- .../tests/model_level_evaluability.rs | 180 + .../tests/model_level_function_identity.rs | 293 + .../tests/multiplicity_validation.rs | 931 + .../tests/negative/cstyle_operators.sysml | 4 +- .../tests/negative/expressions.sysml | 2 +- .../tests/negative/imports.sysml | 2 +- .../tests/negative/missing_expressions.kerml | 18 + .../tests/negative/missing_expressions.sysml | 45 + .../tests/negative/pilot_era.sysml | 2 +- .../tests/negative/result_terminators.kerml | 10 + .../tests/negative/result_terminators.sysml | 37 + crates/sysmlv2-parser/tests/operations.rs | 337 + .../tests/owned_result_featuring.rs | 98 + .../tests/owned_result_redefinition.rs | 71 + crates/sysmlv2-parser/tests/owned_results.rs | 509 + crates/sysmlv2-parser/tests/parser.rs | 142 + .../tests/positional_alias_memberships.rs | 194 + .../tests/positional_members.rs | 190 + .../tests/positional_redefinitions.rs | 654 + .../tests/qualified_positional_slots.rs | 218 + crates/sysmlv2-parser/tests/query.rs | 61 +- .../tests/recorded_alias_paths.rs | 173 + .../tests/recorded_lookup_effects.rs | 168 + .../tests/redefinition_direction.rs | 279 + .../tests/reference_bindings.rs | 456 + crates/sysmlv2-parser/tests/roundtrip.rs | 272 +- .../tests/sdk_semantic_regressions.rs | 286 + .../tests/semantic_names_reporting.rs | 272 + crates/sysmlv2-parser/tests/semantic_reads.rs | 231 + .../tests/shared_implied_plan.rs | 159 + crates/sysmlv2-parser/tests/static_rules.rs | 30 + .../tests/supertypes_operation.rs | 165 + .../tests/sysml_assertion_roles.rs | 210 + crates/sysmlv2-parser/tests/xmi_audit.rs | 5 +- crates/sysmlv2-py/Cargo.toml | 10 +- crates/sysmlv2-py/src/lib.rs | 27 + .../sysmlv2-py/tests/implied_conformance.py | 25 + crates/sysmlv2-py/tests/smoke.py | 4 +- crates/sysmlv2-solve/Cargo.toml | 4 +- crates/sysmlv2-solve/examples/solvestats.rs | 5 +- crates/sysmlv2-solve/examples/unknowns.rs | 5 +- crates/sysmlv2-solve/src/lib.rs | 123 +- crates/sysmlv2-solve/src/translate.rs | 1210 +- crates/sysmlv2-solve/tests/apollo.rs | 9 +- .../tests/common/collection_identity.rs | 217 + crates/sysmlv2-solve/tests/corpus.rs | 22 +- .../tests/environment_identity.rs | 794 + crates/sysmlv2-solve/tests/propagate.rs | 450 +- .../tests/propagation_approximation.rs | 339 + .../tests/runtime_frame_visibility.rs | 470 + crates/sysmlv2-solve/tests/solve.rs | 283 +- crates/sysmlv2-solve/tests/source_identity.rs | 187 + .../tests/source_identity_chains.rs | 190 + .../tests/value_receiver_identity.rs | 442 + crates/sysmlv2-syntax/src/ast.rs | 3 - crates/sysmlv2-syntax/src/check.rs | 116 +- crates/sysmlv2-syntax/src/parser.rs | 122 +- crates/sysmlv2-syntax/src/print.rs | 1 - crates/sysmlv2-syntax/src/visit.rs | 2 +- crates/sysmlv2-testkit/src/lib.rs | 72 + crates/sysmlv2-transform/Cargo.toml | 6 +- .../examples/sessionbench.rs | 298 + crates/sysmlv2-transform/src/lib.rs | 826 +- .../tests/cardinality_identity.rs | 148 + .../tests/exposure_roundtrip.rs | 76 + .../tests/format_transport_adversarial.rs | 232 + .../sysmlv2-transform/tests/graph_format.rs | 377 + .../tests/inherited_lookup_provenance.rs | 72 + .../tests/library_reference_spelling.rs | 552 + .../sysmlv2-transform/tests/payload_loader.rs | 517 +- .../tests/settled_outcomes.rs | 129 + .../tests/text_reference_spelling.rs | 207 + crates/sysmlv2-transform/tests/transform.rs | 2 +- crates/sysmlv2-transform/tests/type_inputs.rs | 55 + crates/sysmlv2-viz/Cargo.toml | 4 +- crates/sysmlv2-viz/README.md | 2 +- crates/sysmlv2-viz/src/lib.rs | 165 +- crates/sysmlv2-viz/tests/viz.rs | 170 +- crates/sysmlv2-wasm/Cargo.toml | 4 + crates/sysmlv2-wasm/README.md | 25 +- crates/sysmlv2-wasm/npm/build.mjs | 165 +- crates/sysmlv2-wasm/npm/cli_smoke.mjs | 21 +- crates/sysmlv2-wasm/npm/smoke.mjs | 95 + .../sysmlv2-wasm/src/bin/gen_stdlib_bundle.rs | 33 +- crates/sysmlv2-wasm/src/lib.rs | 201 +- crates/sysmlv2-wasm/tests/api.rs | 494 +- .../sysmlv2-wasm/tests/implied_conformance.rs | 17 + crates/sysmlv2-wasm/tests/prepared_library.rs | 126 +- crates/sysmlv2-wasm/tests/settled.rs | 309 + local-packages/README.md | 28 +- local-packages/Svelte.provenance.json | 802 - local-packages/Svelte.sysml | 147 - local-packages/SvelteKit.provenance.json | 227 - local-packages/SvelteKit.sysml | 69 - local-packages/Template.provenance.json | 612 - local-packages/Template.sysml | 129 - local-packages/Web.provenance.json | 18337 ---------------- local-packages/Web.sysml | 2753 --- local-packages/WebApp.provenance.json | 131 - local-packages/WebApp.sysml | 41 - spec-refs/README.md | 14 +- spec-refs/derived-correspondence.json | 5352 ++--- spec-refs/derived-properties.json | 630 +- spec-refs/derived-properties.md | 204 +- tools/derived_census.py | 42 +- tools/operation_catalog.py | 79 + tools/semantic_catalog.py | 140 + tools/test_derived_compositions.py | 31 + 351 files changed, 142703 insertions(+), 34350 deletions(-) create mode 100644 crates/sysmlv2-cbor/tests/canonical_constructors.rs create mode 100644 crates/sysmlv2-cbor/tests/conditional_graph.rs create mode 100644 crates/sysmlv2-cbor/tests/connector_end_defaults.rs create mode 100644 crates/sysmlv2-cbor/tests/owned_results.rs create mode 100644 crates/sysmlv2-lsp/src/accept.rs create mode 100644 crates/sysmlv2-lsp/src/kinds.rs create mode 100644 crates/sysmlv2-lsp/src/nav/namespaces.rs create mode 100644 crates/sysmlv2-lsp/src/receiver.rs create mode 100644 crates/sysmlv2-lsp/src/reuse.rs create mode 100644 crates/sysmlv2-lsp/src/salvage.rs create mode 100644 crates/sysmlv2-lsp/src/signature.rs create mode 100644 crates/sysmlv2-lsp/src/site.rs create mode 100644 crates/sysmlv2-lsp/src/units.rs create mode 100644 crates/sysmlv2-lsp/tests/library_signatures.rs create mode 100644 crates/sysmlv2-model/src/check/directions.rs create mode 100644 crates/sysmlv2-model/src/check/multiplicity_domains.rs create mode 100644 crates/sysmlv2-model/src/eval/report.rs create mode 100644 crates/sysmlv2-model/src/json/callable_bodies.rs create mode 100644 crates/sysmlv2-model/src/json/cardinality.rs create mode 100644 crates/sysmlv2-model/src/json/constructor_bindings.rs create mode 100644 crates/sysmlv2-model/src/json/direction_proof.rs create mode 100644 crates/sysmlv2-model/src/json/dynamic_graph.rs create mode 100644 crates/sysmlv2-model/src/json/dynamic_invocations.rs create mode 100644 crates/sysmlv2-model/src/json/end_constancy.rs create mode 100644 crates/sysmlv2-model/src/json/exposure.rs create mode 100644 crates/sysmlv2-model/src/json/feature_type_projection.rs create mode 100644 crates/sysmlv2-model/src/json/feature_type_projection/adapter.rs create mode 100644 crates/sysmlv2-model/src/json/feature_type_projection/readiness_tests.rs create mode 100644 crates/sysmlv2-model/src/json/feature_type_projection/report.rs create mode 100644 crates/sysmlv2-model/src/json/feature_type_projection/repository_tests.rs create mode 100644 crates/sysmlv2-model/src/json/function_specialization_readiness_tests.rs create mode 100644 crates/sysmlv2-model/src/json/generated_defaults.rs create mode 100644 crates/sysmlv2-model/src/json/identity_tables_tests.rs create mode 100644 crates/sysmlv2-model/src/json/import_memberships.rs create mode 100644 crates/sysmlv2-model/src/json/invocation_bindings.rs create mode 100644 crates/sysmlv2-model/src/json/literal_inheritance.rs create mode 100644 crates/sysmlv2-model/src/json/local_featuring.rs create mode 100644 crates/sysmlv2-model/src/json/membership_context.rs create mode 100644 crates/sysmlv2-model/src/json/membership_evidence.rs create mode 100644 crates/sysmlv2-model/src/json/membership_projection.rs create mode 100644 crates/sysmlv2-model/src/json/metadata_associations.rs create mode 100644 crates/sysmlv2-model/src/json/model_level_evaluability.rs create mode 100644 crates/sysmlv2-model/src/json/model_level_evaluability/adapter.rs create mode 100644 crates/sysmlv2-model/src/json/named_argument_index_tests.rs create mode 100644 crates/sysmlv2-model/src/json/operations.rs create mode 100644 crates/sysmlv2-model/src/json/operations/namespaces.rs create mode 100644 crates/sysmlv2-model/src/json/operations/namespaces/imports.rs create mode 100644 crates/sysmlv2-model/src/json/operations/namespaces/imports/depth_tests.rs create mode 100644 crates/sysmlv2-model/src/json/operations/namespaces/recursive_features.rs create mode 100644 crates/sysmlv2-model/src/json/operations/namespaces/resolution.rs create mode 100644 crates/sysmlv2-model/src/json/operations/namespaces/type_memberships.rs create mode 100644 crates/sysmlv2-model/src/json/owned_results.rs create mode 100644 crates/sysmlv2-model/src/json/parameter_context.rs create mode 100644 crates/sysmlv2-model/src/json/parameters.rs create mode 100644 crates/sysmlv2-model/src/json/positional.rs create mode 100644 crates/sysmlv2-model/src/json/positional_delta.rs create mode 100644 crates/sysmlv2-model/src/json/provider_completeness.rs create mode 100644 crates/sysmlv2-model/src/json/provider_completeness/mixed_tests.rs create mode 100644 crates/sysmlv2-model/src/json/provider_completeness/recursive.rs create mode 100644 crates/sysmlv2-model/src/json/provider_completeness/recursive/qualified.rs create mode 100644 crates/sysmlv2-model/src/json/provider_completeness/recursive_tests.rs create mode 100644 crates/sysmlv2-model/src/json/publication.rs create mode 100644 crates/sysmlv2-model/src/json/recorded_lookup.rs create mode 100644 crates/sysmlv2-model/src/json/redefinition_provenance.rs create mode 100644 crates/sysmlv2-model/src/json/replay_dependencies_tests.rs create mode 100644 crates/sysmlv2-model/src/json/result_redefinition.rs create mode 100644 crates/sysmlv2-model/src/json/runtime_frames.rs create mode 100644 crates/sysmlv2-model/src/json/semantic.rs create mode 100644 crates/sysmlv2-model/src/json/semantic/certified_types.rs create mode 100644 crates/sysmlv2-model/src/json/semantic/definition_usage_tests.rs create mode 100644 crates/sysmlv2-model/src/json/semantic/export.rs create mode 100644 crates/sysmlv2-model/src/json/semantic/type_fidelity_tests.rs create mode 100644 crates/sysmlv2-model/src/json/semantic_batch.rs create mode 100644 crates/sysmlv2-model/src/json/semantic_ownership.rs create mode 100644 crates/sysmlv2-model/src/json/settled.rs create mode 100644 crates/sysmlv2-model/src/json/structural_index.rs create mode 100644 crates/sysmlv2-model/src/json/succession_endpoints.rs create mode 100644 crates/sysmlv2-model/src/json/supertypes_checked_tests.rs create mode 100644 crates/sysmlv2-model/src/json/type_features.rs create mode 100644 crates/sysmlv2-model/src/json/type_inputs.rs create mode 100644 crates/sysmlv2-model/src/json/type_inputs/authored_dependencies.rs create mode 100644 crates/sysmlv2-model/src/json/type_inputs/import_dependencies.rs create mode 100644 crates/sysmlv2-model/src/json/type_inputs/parameter_dependencies.rs create mode 100644 crates/sysmlv2-model/src/json/type_inputs/visible_dependencies.rs create mode 100644 crates/sysmlv2-model/src/json/type_relations.rs create mode 100644 crates/sysmlv2-model/src/json/usage_variability.rs create mode 100644 crates/sysmlv2-model/src/json/value_context.rs create mode 100644 crates/sysmlv2-model/src/metamodel.rs create mode 100644 crates/sysmlv2-model/src/migration.rs create mode 100644 crates/sysmlv2-model/src/operation_catalog.rs delete mode 100644 crates/sysmlv2-model/src/render.rs create mode 100644 crates/sysmlv2-model/src/semantic_catalog.rs create mode 100644 crates/sysmlv2-parser/examples/implied_reachability_bench.rs create mode 100644 crates/sysmlv2-parser/tests/annotation_precision.rs create mode 100644 crates/sysmlv2-parser/tests/binary_connection_bases.rs create mode 100644 crates/sysmlv2-parser/tests/cardinality_body.rs create mode 100644 crates/sysmlv2-parser/tests/cardinality_context.rs create mode 100644 crates/sysmlv2-parser/tests/cardinality_subject.rs create mode 100644 crates/sysmlv2-parser/tests/certified_type_properties.rs create mode 100644 crates/sysmlv2-parser/tests/checked_authored_prerequisites.rs create mode 100644 crates/sysmlv2-parser/tests/checked_cardinality.rs create mode 100644 crates/sysmlv2-parser/tests/checked_constructors.rs create mode 100644 crates/sysmlv2-parser/tests/checked_definition_usage.rs create mode 100644 crates/sysmlv2-parser/tests/checked_end_contexts.rs create mode 100644 crates/sysmlv2-parser/tests/checked_import_planning.rs create mode 100644 crates/sysmlv2-parser/tests/checked_owned_relationships.rs create mode 100644 crates/sysmlv2-parser/tests/checked_parameter_prerequisites.rs create mode 100644 crates/sysmlv2-parser/tests/checked_positional_prerequisites.rs create mode 100644 crates/sysmlv2-parser/tests/checked_recursive_providers.rs create mode 100644 crates/sysmlv2-parser/tests/checked_structural_members.rs create mode 100644 crates/sysmlv2-parser/tests/checked_type_imports.rs create mode 100644 crates/sysmlv2-parser/tests/checked_type_memberships.rs create mode 100644 crates/sysmlv2-parser/tests/checked_usage_typing.rs create mode 100644 crates/sysmlv2-parser/tests/checked_visible_prerequisites.rs create mode 100644 crates/sysmlv2-parser/tests/checker_identity.rs create mode 100644 crates/sysmlv2-parser/tests/connector_bound_scopes.rs create mode 100644 crates/sysmlv2-parser/tests/connector_end_bindings.rs create mode 100644 crates/sysmlv2-parser/tests/connector_relationship_ends.rs create mode 100644 crates/sysmlv2-parser/tests/constructor_static_evaluation.rs create mode 100644 crates/sysmlv2-parser/tests/corpus_identity.rs create mode 100644 crates/sysmlv2-parser/tests/cross_feature_scopes.rs create mode 100644 crates/sysmlv2-parser/tests/default_featuring_identity.rs create mode 100644 crates/sysmlv2-parser/tests/dynamic_invocations.rs create mode 100644 crates/sysmlv2-parser/tests/exposure_context.rs create mode 100644 crates/sysmlv2-parser/tests/exposure_memberships.rs create mode 100644 crates/sysmlv2-parser/tests/expression_fixed_roles.rs create mode 100644 crates/sysmlv2-parser/tests/expression_static_ancestry.rs create mode 100644 crates/sysmlv2-parser/tests/feature_chain_static_typing.rs create mode 100644 crates/sysmlv2-parser/tests/feature_library_bases.rs create mode 100644 crates/sysmlv2-parser/tests/feature_type_report.rs create mode 100644 crates/sysmlv2-parser/tests/filter_identity.rs create mode 100644 crates/sysmlv2-parser/tests/import_memberships.rs create mode 100644 crates/sysmlv2-parser/tests/inherited_base_context.rs create mode 100644 crates/sysmlv2-parser/tests/inherited_default_report.rs create mode 100644 crates/sysmlv2-parser/tests/inherited_lookup.rs create mode 100644 crates/sysmlv2-parser/tests/inherited_lookup_provenance.rs create mode 100644 crates/sysmlv2-parser/tests/literal_results.rs create mode 100644 crates/sysmlv2-parser/tests/metadata_about.rs create mode 100644 crates/sysmlv2-parser/tests/metadata_results.rs create mode 100644 crates/sysmlv2-parser/tests/model_level_evaluability.rs create mode 100644 crates/sysmlv2-parser/tests/model_level_function_identity.rs create mode 100644 crates/sysmlv2-parser/tests/multiplicity_validation.rs create mode 100644 crates/sysmlv2-parser/tests/negative/missing_expressions.kerml create mode 100644 crates/sysmlv2-parser/tests/negative/missing_expressions.sysml create mode 100644 crates/sysmlv2-parser/tests/negative/result_terminators.kerml create mode 100644 crates/sysmlv2-parser/tests/negative/result_terminators.sysml create mode 100644 crates/sysmlv2-parser/tests/operations.rs create mode 100644 crates/sysmlv2-parser/tests/owned_result_featuring.rs create mode 100644 crates/sysmlv2-parser/tests/owned_result_redefinition.rs create mode 100644 crates/sysmlv2-parser/tests/owned_results.rs create mode 100644 crates/sysmlv2-parser/tests/positional_alias_memberships.rs create mode 100644 crates/sysmlv2-parser/tests/positional_members.rs create mode 100644 crates/sysmlv2-parser/tests/positional_redefinitions.rs create mode 100644 crates/sysmlv2-parser/tests/qualified_positional_slots.rs create mode 100644 crates/sysmlv2-parser/tests/recorded_alias_paths.rs create mode 100644 crates/sysmlv2-parser/tests/recorded_lookup_effects.rs create mode 100644 crates/sysmlv2-parser/tests/redefinition_direction.rs create mode 100644 crates/sysmlv2-parser/tests/reference_bindings.rs create mode 100644 crates/sysmlv2-parser/tests/sdk_semantic_regressions.rs create mode 100644 crates/sysmlv2-parser/tests/semantic_names_reporting.rs create mode 100644 crates/sysmlv2-parser/tests/semantic_reads.rs create mode 100644 crates/sysmlv2-parser/tests/shared_implied_plan.rs create mode 100644 crates/sysmlv2-parser/tests/supertypes_operation.rs create mode 100644 crates/sysmlv2-parser/tests/sysml_assertion_roles.rs create mode 100644 crates/sysmlv2-py/tests/implied_conformance.py create mode 100644 crates/sysmlv2-solve/tests/common/collection_identity.rs create mode 100644 crates/sysmlv2-solve/tests/environment_identity.rs create mode 100644 crates/sysmlv2-solve/tests/propagation_approximation.rs create mode 100644 crates/sysmlv2-solve/tests/runtime_frame_visibility.rs create mode 100644 crates/sysmlv2-solve/tests/source_identity.rs create mode 100644 crates/sysmlv2-solve/tests/source_identity_chains.rs create mode 100644 crates/sysmlv2-solve/tests/value_receiver_identity.rs create mode 100644 crates/sysmlv2-transform/examples/sessionbench.rs create mode 100644 crates/sysmlv2-transform/tests/cardinality_identity.rs create mode 100644 crates/sysmlv2-transform/tests/exposure_roundtrip.rs create mode 100644 crates/sysmlv2-transform/tests/format_transport_adversarial.rs create mode 100644 crates/sysmlv2-transform/tests/graph_format.rs create mode 100644 crates/sysmlv2-transform/tests/inherited_lookup_provenance.rs create mode 100644 crates/sysmlv2-transform/tests/library_reference_spelling.rs create mode 100644 crates/sysmlv2-transform/tests/settled_outcomes.rs create mode 100644 crates/sysmlv2-transform/tests/text_reference_spelling.rs create mode 100644 crates/sysmlv2-transform/tests/type_inputs.rs create mode 100644 crates/sysmlv2-wasm/tests/implied_conformance.rs create mode 100644 crates/sysmlv2-wasm/tests/settled.rs delete mode 100644 local-packages/Svelte.provenance.json delete mode 100644 local-packages/Svelte.sysml delete mode 100644 local-packages/SvelteKit.provenance.json delete mode 100644 local-packages/SvelteKit.sysml delete mode 100644 local-packages/Template.provenance.json delete mode 100644 local-packages/Template.sysml delete mode 100644 local-packages/Web.provenance.json delete mode 100644 local-packages/Web.sysml delete mode 100644 local-packages/WebApp.provenance.json delete mode 100644 local-packages/WebApp.sysml create mode 100644 tools/operation_catalog.py create mode 100644 tools/semantic_catalog.py create mode 100644 tools/test_derived_compositions.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14316e6..5be8b71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ # only if a variant's delta ever grows past caring about. The test job # clippy-checks the slim variant so it cannot rot between releases. # -# The wasm job gates the browser face: clippy for +# The wasm job gates the browser face: clippy for the wasi CLI and for # wasm32-unknown-unknown, then the real pipeline — wasm-pack build, the # stdlib bundle + sealed-snapshot generation, and a node smoke test that # loads the built module and asserts snapshot replay is engaged. On tags @@ -67,7 +67,8 @@ env: jobs: test: name: test (full corpus gates) - timeout-minutes: 45 + # The full corpus plus lint/docs outgrew 45 minutes on a cold runner. + timeout-minutes: 90 # Release PRs (release/* -> main, opened and admin-merged by # tools/release.sh in one step) run these gates like any other PR. # Skipping them costs less than it looks: the tag is pushed by the @@ -98,6 +99,10 @@ jobs: rustup show active-toolchain - name: Formatting run: cargo fmt --all -- --check + - name: Generated semantic catalogs + run: | + python3 tools/semantic_catalog.py --check + python3 tools/operation_catalog.py --check - name: Run the full test suite run: cargo test --release - name: Clippy @@ -108,17 +113,12 @@ jobs: env: RUSTDOCFLAGS: -D warnings run: cargo doc --no-deps - - name: Generated libraries (strict check against the stdlib, canonical formatting) - # The committed files are checked as candidates: SYSMLV2_AMBIENT=off - # keeps the toolkit's built-in copies out so they cannot collide. - run: | - SYSMLV2_AMBIENT=off cargo run --release -p sysmlv2-cli -- check --strict --lib spec-refs/SysML-v2-Release/sysml.library local-packages/Web.sysml local-packages/Template.sysml local-packages/Svelte.sysml local-packages/WebApp.sysml local-packages/SvelteKit.sysml - cargo run --release -p sysmlv2-cli -- fmt --check local-packages/Web.sysml local-packages/Template.sysml local-packages/Svelte.sysml local-packages/WebApp.sysml local-packages/SvelteKit.sysml - - name: Ambient libraries resolve without naming files + - name: Ambient library (strict candidate check; resolves without naming its file) + # SYSMLV2_AMBIENT=off keeps the built-in copy out of the candidate + # check so the two cannot collide. run: | - # Qualified element kinds: an `Elements::*` import would bring the - # `