Releases: Systems-Modeling/SysML-v2-Pilot-Implementation
Release list
2026-05 - SysML v2 Pilot Implementation
This is an incremental update to the 2026-04 release. It corresponds to Eclipse plugin version 0.60.1.
Language Features
-
Metamodels. Updated KerML and SysML abstract syntax metamodels for KerML 1.1/SysML 2.1 Beta 1. Changes were entirely to documentation comments and OCL. The new metamodel is structurally that same as the KerML 1.0/SysML 2.0 metamodel. To promote compatibility, the metamodel URI is being kept the same as for 1.0/2.0 (version date
20250201) in this release.
[PR #760] -
Constraints. Updated/implemented a few constraints that were corrected or added for SysML 2.1 Beta 1 (see also Backward Incompatibilities below).
[PR #762] -
Textual notation. The implementation was previously consistent with two textual notation grammar errors that are now fixed.
- Annotating members. Annotating members of an enumeration definition can now have explicit visibility indicators.
- Framed concern usage. A framed concern usage of the form "
frame concern..." now has a requirement body (i.e., it can contain assumed and required constraints.
[PR #775]
Model Libraries
-
Library models. Updated the KerML and SysML library models for the KerML 1.1/SysML 2.1 Beta 1. The changes were mostly to documentation comments.
[PR #757][PR #758] -
KPARs. Updated the build to automatically set metamodel and version URI fields in KPARs based on the build properties
METAMODEL_TAGandBUILD_TAG, which give version date tags. For this release:METAMODEL_TAG=20250201(no change from KerML 1.0/SysML 2.0)BUILD_TAG=20260501
[PR #759]
Backward Incompatibilities
- Assignment. Added a validation check that the referent of an assign action usage is time varying. Previously a non-time-varying feature was accepted.
[PR #762] - Owned metadata. Revised the derivation of the properties
Definition::ownedMetadataandUsage::nestedMetadatato work properly. Previously they were always empty (due to a specification error).
[PR #762]
Issue Resolutions
This release includes implementation of resolutions to the issues listed below.
KerML
Resolutions for the following issues were approved on KerML 1.1 RTF Ballot 2. (Ballot 1 vote was not quorate.)
- KERML11-9 Typo in documentation of Transfer::isInstant
- KERML11-144 Discrepancy between documentation of Collections library in spec and textual notation file
The resolution to the following issue also approved on Ballot 2 was already implemented previously.
- KERML11-2 Occurrences::surroundedByOccurrences::surroundingSpace should not be an end feature
SysML
Resolutions for the following issues were approved on SysML 2.1 RTF Ballot 1.
- SYSML21-319 AnnotatingMember does not allow visibility
- SYSML21-366 Error in FramedConcernUsage production
Resolutions for the following issues were approved on SysML 2.1 RTF Ballot 2.
- SYSML21-15 Error in constraint validateAssignmentActionUsageReferent
- SYSML21-17 Error in constraint validateAssignmentActionUsage
- SYSML21-419 Derivation of ownedMetadata is incorrect
Resolutions for the following issues also approved on Ballot 2 were already implemented previously.
- SYSML21-4 Error in constraint checkConstraintUsageCheckedConstraintSpecialization
- SYSML21-299 Constraint checkIncludeUseCaseSpecialization is misnamed
- SYSML21-301 Viewpoint specialization constraints are incorrect
- SYSML21-309 Constraint checkRequirementUsageObjectiveRedefinition needs to handle feature chains
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
-
org.omg.sysml.logic. This change is the second step in refactoring the Pilot Implementation to allow its code to be more easily used outside the framework of Eclipse plugins. It decouples the implementation of derived value computation, OCL operations and semantic transformations from theorg.omg.sysmlEclipse plug-in. It adds two new projects to the repository:org.omg.sysml.logicandorg.omg.sysml.logic.bundle.
[PR #754][PR #771][PR #774][PR #777] -
Implicit relationships. Updated the Xtext editor outline tree to show implicit binding connectors as being owned by implicit owning memberships (previously they were not specifically labeled "owning") and to show all implicit relationships after all explicit relationships (which was previously only true for implicit binding connectors).
[PR #767]
Bug Fixes
2026-04 - SysML v2 Pilot Implementation
This is an incremental update to the 2026-03 release. It corresponds to Eclipse plugin version 0.59.0.
Language Features
None.
Model Libraries
.meta.json. The build process has been modified to update theindexfield in.meta.jsonso that the standard library.kpars always contain the correct values.
[PR #751]
Backward Incompatibilities
None.
Issue Resolutions
None.
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
org.omg.sysml.model. This change is the first step in refactoring the Pilot Implementation to allow its code to be more easily used outside the framework of Eclipse plugins. It decouples the generated SysML EMF metamodel from theorg.omg.sysmlEclipse plug-in. It adds two new projects to the repository:org.omg.sysml.modelandorg.omg.sysml.model.bundle.
[PR #750]- Licensing. Licensing has been changed from the GNU Lesser General Public License (LGPL) to the more permissive Eclipse Public License (EPL).
[PR #752]
Bug Fixes
None.
2026-03 - SysML v2 Pilot Implementation
This is an incremental update to the 2026-02 release. It corresponds to Eclipse plugin version 0.58.0.
Language Features
None.
Model Libraries
None.
Backward Incompatibilities
- Filter expressions. Many examples of feature references in filter expressions currently use a qualified name notation, such as
However, the
filter @Annotations::ApprovalAnnotation and Annotations::ApprovalAnnotation::approved and Annotations::ApprovalAnnotation::level > 1;checkConnectorTypeFeaturingconstraint is impossible to satisfy for the binding connectors implied by these feature references. The Pilot Implementation was not reporting this as an error, which was not conformant with the normative metamodel for KerML (and, so, SysML, too). Now that this nonconformity has been corrected, the above feature references will cause "Must be accessible feature" errors. To avoid such errors, the qualified names need to be changed to feature chains such as in the following:[PR #743]filter @Annotations::ApprovalAnnotation and (as Annotations::ApprovalAnnotation).approved and (as Annotations::ApprovalAnnotation).level > 1;
Issue Resolutions
This release proactively implements the resolution to the following issue, which the KerML 1.1 RTF has elevated to be a "blocker" issue.
- KERML11-191 Problem with deriveTypeFeatureMembership
[PR #749]
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
None.
Bug Fixes
- Filter expressions. Removed code that suppressed violations of
checkConnectorTypeFeaturingwithin feature references in filter expressions.
[PR #743] - Semantic metadata. Fixed a bug that could cause an incorrect name resolution when using semantic metadata.
[PR #744] - Adapters. Fixed bugs in
TypeAdapterandAssignmentUsageAdapter.
[PR #747] - Derived property. Corrected the derivation computation for the property
Feature::crossFeatureso it takes impliedCrossSubsettinginto account.
[PR #748]
2026-02 - SysML v2 Pilot Implementation
This is an incremental update to the 2026-01 release. It corresponds to Eclipse plugin version 0.57.0.
Language Features
None.
Model Libraries
None.
Backward Incompatibilities
None.
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
isNonuniqueproperty. The default for theFeature::isUniqueproperty istrue. In the textual notation, thenonuniquekeyword is used to set this property tofalse. This was previously handled by adding anisNonuniqueproperty toFeaturewhen generating the Ecore metamodel, which could be set totruewhen the keywordnonuniquewas parsed. This alteration of the metamodel has now been removed. Instead, during parsing,nonuniqueis considered to be the single member of a data type with valuefalse, which can be used to set the normativeisUniqueproperty.
[PR #738]- Character encoding. Added explicit UTF-8 character encodings to several Eclipse projects, eliminating warnings about this in the Eclipse workbench.
[PR #742]
Bug Fixes
OperandEListexception. Fixed an error introduced by the changes toOperandEListin PR #734, which could caused an exception when iterating through a model to view an XMI file in Eclipse or to publish a model to a repository.
[PR #737]SuccessionAsUsageexception. Fixed a missing implicit specialization mapping that caused an exception when a connection definition was used to type a succession in SysML.
[PR #740]
2026-01 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-12 release. It corresponds to Eclipse plugin version 0.56.0.
Language Features
- Trig function evaluation. The library functions from the
TrigFunctionspackage are now implemented for non-model-level evaluation.
[PR #731]
Model Libraries
None.
Backward Incompatibilities
There are no backward incompatibilities in the textual notation representation of the model. However, the in-memory EMF and serialized XMI representations have the following incompatibilities.
[PR #734]
-
Getters and setters. The following getter and setter methods previously had special handwritten implementations, but now function as just regular getters and setters. This means that it is now the responsibility of the constructor of a model to ensure that the corresponding abstract syntax properties have values consistent with various validation constraints. For example, the
isEndproperty of theownedMemberFeatureof anEndFeatureMembershipwill no longer be automatically betrue, but must be explicitly set totrueto meet thevalidateEndFeatureMembershipIsEndconstraint. (For the textual notation, this is mostly by post-processing after Xtext parsing.)CommentImpl.setBodyElementImpl.setDeclaredNameandsetDeclaredShortNameFeatureImpl.isDirectionandisEndFlowUsage.isAbstractLiteralString.setValueMembership.setMemberNameandsetMemberShortNamePortUsageImpl.isCompositeRequirementDefinition.setReqIdRequirementUsage.setReqIdTextualRepresentation.setLanguageandsetBodyUsagImpl.isComposite
-
Default value overriding. The overriding of metaproperty default values is now implemented by setting the property to the appropriate default value in the constructor for a metaclass
Impl, rather than by overriding the getter for the property. It is now possible to subsequently change the value from the default, even if this would violate a validation constraint. For example, when anAttributeUsageis created, the default value forisCompositeisfalse, but it is possible to use thesetIsCompositemethod to set this totrue, even though this would violate thevalidateAttributeUsageIsReferentialconstraint. -
Validation. The following validation constraints were previously not being checked, since they were automatically satisfied due to getter overrides. Since these getter overrides have now been removed, checks have been implemented for all the constraints.
KerML
validateEndFeatureMembershipvalidateParameterMembershipvalidateCollectExpressionOperatorvalidateFeatureChainExpressionOperatorvalidateIndexExpressionOperatorvalidateSelectExpressionOperatorvalidateFlowEndIsEnd
SysML
validateUsageIsReferentialvalidateReferenceUsageIsReferentialvalidateAttributeUsageIsReferentialvalidateEnumerationDefinitionIsVariationvalidateEventOccurrenceUsageIsReferencevalidatePortUsageIsReference
-
XMI serialization. The default for the
Feature::isCompositeproperty isfalse. Since XMI is usually serialized without including properties that have their default value, this means thatisComposite=falseshould not be serialized. However, this previously was being serialized in the case of SysML usages that were required to be referential (i.e., always haveisComposite=false). It is no longer being serialized in these cases. This effects the following elements:AttributeUsageBindingConnectorAsUsageEventOccurrenceUsageExhibitStateUsageIncludeUseCaseUsagePerformActionUsageReferenceUsageSuccessionAsUsage
Note. This affects the XMI serialization of the standard library models.
Jupyter
None.
Visualization (PlantUML)
Bug fix.
Technical Updates
- Eclipse environment. The Eclipse environment required for Pilot Implementation development has been updated to the 2025-12 release (Java 21).
[PR #732] - EMF metamodel implementation. A number of updates have been made to remove handwritten code from EMF-generated Java
Implclasses and to make the abstract syntax implementation more strictly conformant to the KerML and SysML specifications. This should have no effect on user modeling using the textual notation. However, there are some functional changes in the direct programmatic access to the abstract syntax representation of a model (see the items under "Backwards Incompatiblities" above).
[PR #734]
Bug Fixes
- getImportedMembership. Fixed an infinite recursion caused by a circular recursive import when calling
getImportedMembership.
[PR #729] - Inherited connections (PlantUML). Corrected the rendering of nested inherited connections with SHOWINHERITED style.
[PR #730] - getLocale. Fixed the unescaping of the locale of a comment.
[PR #735]
2025-12 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-11 release. It corresponds to Eclipse plugin version 0.55.0.
Language Features
-
Library function evaluation. The following additional library functions are now implemented for non-model-level evaluation:
- All
SequnceFunctions - All
CollectionFunctions - All
ControlFunctions DataFunctions::maxandmin
In addition, model-level evaluable equality operators (
==and!=) now work onCollections.
[PR #727] - All
Model Libraries
None.
Backward Incompatibilities
None.
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
- BNF Extractor Tool. A BNF Extractor tool is now available in the directory
tool-support/bnf-grammar. This tool extracts the normative BNF for the KerML textual notation and SysML textual and graphical notations from the corresponding specification documents. It then generates consolidated grammar files in text or HTML format. For details, see theREADME.adocfile in thebnf-grammardirectory.
[PR #720]
Bug Fixes
getEnumeratedValueandgetVariant. Fixed the implementation of theEnumerationDefinitionoperationsgetEnumeratedValueandgetVariant.
[PR #723]- Actors and stakeholders. Fixed the implicit redefinition of actor and stakeholder parameters.
[PR #724] objectsandsubobjects. Corrected the implicit specialization ofObjects::objectsandObjects::Object::subobjectsin certain cases for port usages and occurrence usages.
[PR #725]
2025-11 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-10 release. It corresponds to Eclipse plugin version 0.54.0.
Language Features
- Control function evaluation. Invocations of the functions
ControlFunctions::collectandControlFunctions::selectcan now be evaluated, which also allows the evaluation of collect expressions (seq.{...}) and select expressions (seq.?{...}). Per the specification, these functions are also model-level evaluable, but, unfortunately, a problem with the current specification of the model-level evaluablity of body expressions (see KERML11-178) prevents them from be used in useful cases in model-level expressions.
[PR #718]
Model Libraries
None.
Backward Incompatibilities
-
Name resolution. Previously, in certain cases a qualified name used as a redefinition target resolved inconsistently in the Eclipse Xtext editor and Jupyter. For example, in the model below, in Eclipse,
x::yinitially resolved toB::x::yin the outline tree view, but was re-resolved toA::x::ybefore validation. In Jupyter, it always resolved toB::x::y, which resulted in a validation error, due toB::x::yredefining itself.item def A { item x { attribute y; } } item def B :> A { item x :>> x { attribute :>> x::y; } }The name resolution algorithm has now been updated so that
x::yalways resolves toA::x::y, in both Eclipse and Jupyter, with no validation error.
[PR #717] -
Model-level evaluable functions. The following functions had previously been implemented as model-level evaluable, but they are not specified as model-level evaluable in the specification. Conformant with the specification, they are now longer model-level evaluable, though they can still be used and evaluated in non-model-level evaluable expressions.
NumericalFunctions::prodNumericalFunctions::sumSequenceFunctions::excludesSequenceFunctions::includesSequenceFunctions::isEmptySequenceFunctions::notEmptySequenceFunctions::sizeStringFunctions::LengthStringFunctions::Substring
[PR #718]
Jupyter
None.
Visualization (PlantUML)
None.
Technical Updates
- Library KPARs. The Maven build has been updated so that the each of the libraries under
sysml.libraryis packaged into a KerML Package Archive (KPAR) file, using a Maven plugin for the Sysand librarian tool. The generated KPAR files are place in thesysml.library/outputdirectory (not committed to the repository). On a release build, the KPAR files are automatically attached as artifacts to the GitHub release.
[PR #713]
Bug Fixes
getDirectedUsage. Fixed the implementation ofDefinition::getDirectedUsage.
[PR #712]- Item usages. Removed the incorrect validation requiring item usages to be typed by only item definitions.
[PR #715] - Constant end features. Corrected the KerML grammar to allow
conston end features.
[PR #716] - Name resolution. Corrected inconsistency in the resolution of qualified names used as redefinition targets.
[PR #717]
2025-10 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-09.1 release. It corresponds to Eclipse plugin version 0.53.0.
Language Features
Bug fixes.
Model Libraries
None.
Backward Incompatibilities
-
Usage typing. KerML allows a feature to by typed by any other kind of type, including another feature. However, in SysML, a usage can only be typed by a definition (or a KerML classifier). Previously, the validation for this was not properly implemented for reference usages and usages with a user-defined keyword but no regular kind keyword. This has now been corrected, but, as a result, some models that previously validated may now produce errors.
For example, the following model will now produce the indicated error, where there was no error before:
attribute def A; attribute a; ref x : a, A; // ERROR: A usage must be typed by definitions.[PR #707]
-
Protected name visibility. Members of a type that are declared
protectedare supposed to be visible in specializations of the type but not otherwise outside the type's namespace. Previously, this was implemented correctly for qualified names, but a protected member could still be accessed using a feature chain. This has now been corrected, but, as a result, some models that previously parsed may not produce errors.For example, in the following model, the name
bpreviously resolved in the feature chainp.b, but it will now produce a name resolution error:part p { public attribute a; protected attribute b; private attribute c; } alias a1 for p::a; // No error alias b1 for p::b; // Name resolution error alias c1 for p::c; // Name resolution error attribute a2 redefines p.a; // No error attribute b2 redefines p.b; // Name resolution error (previously no error) attribute b3 redefines p.c; // Name resolution error[PR #709]
Jupyter
- JupyterLab 4.x. The Jupyter deployment has been updated for JupyterLab 4.x, the latest major revision available. Previous versions of JupyterLab and Jupyter Classic Notebook are no longer supported. (The Jupyter kernel for SysML v2 should still run with older versions, but keyword highlighting in the browser will not work.)
[PR #696]
Visualization (PlantUML)
Bug fix.
Technical Updates
None.
Bug Fixes
- Usage typing. Corrected the validation disallowing a usage to be typed by another usage in SysML.
[PR #707] - Default multiplicities. Fixed the adding of a default multiplicity to a usage with a nested alias declaraion.
[PR #708] - Protected name visibility. Fixed the incorrect visibility of protected names used in feature chains.
[PR #709] - Transition visualization (PlantUML). Fixed a possible null pointer exception when a state model is loaded from the repository.
[PR #710]
2025-09.1 - SysML v2 Pilot Implementation
This release is the same as the 2025-09 release, except for one additional bug fix (to correct a bug introduced in the 2025-09 release). It corresponds to Eclipse plugin version 0.52.1.
The release notes for 2025-09 are repeated below for convenience, along with the additional bug fix at the end.
Language Features
Bug fixes.
Model Libraries
None.
Backward Incompatibilities
- Name Resolution. Name resolution has been corrected for certain cases of redefinition. For example, consider the following model:
Previously, this model generated the indicated error, because the name resolution algorithm traversed specializations in order, stopping if it found a resolution for the name. But, if the order of the specialized types was changed from
part def A { ref f; } part def B specializes A { ref redefines f { ref g; } } part def C specializes A, B { ref subsets f { ref redefines g; // ERROR: Couldn't resolve reference to Feature 'g'. } }A, BtoB, A, then the error would go away. Now the redefinition forgresolves correctly regardless of the order of the specialization ofAandB.
[PR #686]
Jupyter
None.
Visualization (PlantUML)
Bug fix.
Technical Updates
None.
Bug Fixes
- RootPackageTest. Corrected the KerML Xpect
RootPackageTestso it is properly included in the test suite.
[PR #685] - Name resolution. Fixed an anomaly in the resolution of the name of a redefined feature due to certain forms of diamond specialization.
[PR #686] - Transition trigger visualization (PlantUML). Corrected the visualization of triggers on state transitions.
[PR #689] - Individual definitions. Fixed the implicit specialization of individual definitions declared as anything more specific than an occurrence definition.
[PR #693] - Semantic metadata. Fixed computation of the base type of an application of semantic metadata.
[PR #701] - Feature typing. Fixed a bug in the computation of feature types resulting from changes in PR #701.
[PR #705]
2025-09 - SysML v2 Pilot Implementation
This is an incremental update to the 2025-07 release. It corresponds to Eclipse plugin version 0.52.0.
Language Features
Bug fixes.
Model Libraries
None.
Backward Incompatibilities
- Name Resolution. Name resolution has been corrected for certain cases of redefinition. For example, consider the following model:
Previously, this model generated the indicated error, because the name resolution algorithm traversed specializations in order, stopping if it found a resolution for the name. But, if the order of the specialized types was changed from
part def A { ref f; } part def B specializes A { ref redefines f { ref g; } } part def C specializes A, B { ref subsets f { ref redefines g; // ERROR: Couldn't resolve reference to Feature 'g'. } }A, BtoB, A, then the error would go away. Now the redefinition forgresolves correctly regardless of the order of the specialization ofAandB.
[PR #686]
Jupyter
None.
Visualization (PlantUML)
Bug fix.
Technical Updates
None.
Bug Fixes
- RootPackageTest. Corrected the KerML Xpect
RootPackageTestso it is properly included in the test suite.
[PR #685] - Name resolution. Fixed an anomaly in the resolution of the name of a redefined feature due to certain forms of diamond specialization.
[PR #686] - Transition trigger visualization (PlantUML). Corrected the visualization of triggers on state transitions.
[PR #689] - Individual definitions. Fixed the implicit specialization of individual definitions declared as anything more specific than an occurrence definition.
[PR #693] - Semantic metadata. Fixed computation of the base type of an application of semantic metadata.
[PR #701]