Skip to content

Commit ae25e85

Browse files
committed
Merge branch 'master' into ST6RI-846
2 parents 3a2394b + 433a859 commit ae25e85

369 files changed

Lines changed: 24600 additions & 19823 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ jobs:
2929
cache: maven
3030
- name: Build with Maven
3131
run: ./mvnw -B clean verify --file pom.xml
32+
- name: Upload SysML Library .kpar files
33+
uses: actions/upload-artifact@v5
34+
with:
35+
name: sysml-library-kpar
36+
path: sysml.library/output/*.kpar
3237
- name: Publish Test Report
3338
uses: mikepenz/action-junit-report@v5
3439
if: success() || failure() # always run even if the previous step fails

.github/workflows/maven-publish.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,40 @@ jobs:
3131
run: ./mvnw -B deploy -DskipTests=true
3232
env:
3333
GITHUB_TOKEN: ${{ github.token }} # GITHUB_TOKEN is the default env for the password
34+
- name: Upload SysML Library .kpar files
35+
uses: actions/upload-artifact@v5
36+
with:
37+
name: sysml-library-kpar
38+
path: sysml.library/output/*.kpar
39+
40+
release:
41+
name: Release
42+
runs-on: ubuntu-latest
43+
needs: [build]
44+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
45+
permissions:
46+
# Use to sign the release artifacts
47+
id-token: write
48+
# Used to upload release artifacts
49+
contents: write
50+
# Used to generate artifact attestation
51+
attestations: write
52+
steps:
53+
- uses: actions/download-artifact@v6
54+
with:
55+
name: sysml-library-kpar
56+
path: kpars
57+
- name: Generate artifact attestation
58+
uses: actions/attest-build-provenance@v3
59+
with:
60+
subject-path: 'kpars/*.kpar'
61+
- name: Create a release
62+
uses: softprops/action-gh-release@v2
63+
with:
64+
make_latest: true
65+
files: |
66+
kpars/*
67+
overwrite_files: false
68+
body:
69+
append_body: true
70+
name: ${{ github.event.inputs.tag_name || github.event.release.tag_name }} - SysML v2 Pilot Implementation

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@ dependency-reduced-pom.xml
3737

3838
# Generated Python files
3939
*.pyc
40+
41+
# Built libraries
42+
*.kpar

README.adoc

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,30 +44,34 @@ image:oomph-projects.png[oomph projects]
4444

4545
==== Manual installation
4646

47-
1. Install Eclipse 2025-03 (4.35) and Xtext.
47+
1. Install Eclipse 2025-03 (4.35).
4848
* Install the “Eclipse Modeling Tools” package.
4949
** `https://www.eclipse.org/downloads/packages/release/2025-03/r/eclipse-modeling-tools`
5050

51-
* To install Xtext, select Help > Install New Software, use the update site URL given below, and install “Xtext Complete SDK” (under General Purpose Tools).
52-
** `http://download.eclipse.org/releases/2025-03`
51+
* Install additional release packages in Eclipse.
52+
** Select Help > Install New Software.
53+
** Enter the update site URL `http://download.eclipse.org/releases/2025-03`.
54+
** Install “Xtext Complete SDK” (under General Purpose Tools) and "QVT Operational SDK" (under Modeling).
5355

54-
* (Optional) For PlantUML visualization, you need to install PlantUML-Eclipse with SysMLv2 extensions from
55-
the update site of `https://github.com/himi/p2-update-puml-sysmlv2/raw/main/updates` with Help > Install New Software.
56+
* (Optional) For PlantUML visualization, install PlantUML-Eclipse with SysMLv2 extensions.
57+
** Select Help > Install New Software
58+
** Enter the update site URL `https://github.com/himi/p2-update-puml-sysmlv2/raw/main/updates`.
59+
** Install "PlantUML Eclipse support".
5660

57-
2. Clone our GitHub repository from the URL below.
61+
2. Clone the GitHub repository from the URL below.
5862
* `https://github.com/Systems-Modeling/SySML-v2-Pilot-Implementation.git`
5963

6064
3. Import projects from the repository into your Eclipse workspace. This should include at least the projects:
6165
* `org.omg.sysml`
6266
* `org.omg.kerml.expressions.xtext`
6367
* `org.omg.kerml.expressions.xtext.ide`
6468
* `org.omg.kerml.expressions.xtext.ui`
65-
* `org.kerml.xtext`
66-
* `org.kerml.xtext.ide`
67-
* `org.kerml.xtext.ui`
68-
* `org.sysml.xtext`
69-
* `org.sysml.xtext.ide`
70-
* `org.sysml.xtext.ui`
69+
* `org.omg.kerml.xtext`
70+
* `org.omg.kerml.xtext.ide`
71+
* `org.omg.kerml.xtext.ui`
72+
* `org.omg.sysml.xtext`
73+
* `org.omg.sysml.xtext.ide`
74+
* `org.omg.sysml.xtext.ui`
7175

7276
4. https://maven.apache.org/[Maven] is used to perform a coordinated build of all projects (including packaging the SysML Interactive JAR file that is used by `org.omg.sysml.jupyter`).
7377
* To build the repository, invoke `mvn clean package` from the base `SysML-v2-Pilot-Implementation` directory.

kerml/src/examples/KerML Spec Annex A Examples/A-3-8-ChangingFeatureValues.kerml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,15 +110,21 @@ package ChangingFeatureValuesExecution {
110110
#atom
111111
behavior MyPaint specializes Paint {
112112
feature redefines objectToPaint : MyProduct;
113-
step redefines painting : PaintingMyProductFeatureWrite;
114-
step redefines painted : PaintedMyProductFeatureWrite;
113+
step redefines painting : PaintingMyProductFeatureWrite {
114+
in onOccurrence;
115+
}
116+
step redefines painted : PaintedMyProductFeatureWrite {
117+
in onOccurrence;
118+
}
115119
succession redefines p_before_p : MyPaintingFW_Before_PaintFW_Link first painting then painted;
116120
}
117121

118122
#atom
119123
behavior MyDry specializes Dry {
120124
feature redefines objectToDry : MyProduct;
121-
step redefines dried : MyProductFeatureWrite;
125+
step redefines dried : MyProductFeatureWrite {
126+
in onOccurrence;
127+
}
122128
}
123129
#atom
124130
assoc MyPaint_Before_Dry_Link specializes HappensBefore {
@@ -128,7 +134,9 @@ package ChangingFeatureValuesExecution {
128134
#atom
129135
behavior MyShip specializes Ship {
130136
feature redefines objectToShip : MyProduct;
131-
step redefines shipped : MyProductFeatureWrite;
137+
step redefines shipped : MyProductFeatureWrite {
138+
in onOccurrence;
139+
}
132140
}
133141
#atom
134142
assoc MyDry_Before_Ship_Link specializes HappensBefore {
@@ -144,7 +152,9 @@ package ChangingFeatureValuesExecution {
144152
feature obPiS chains objectToFinish.beforePaint.isShipped = false;
145153

146154

147-
step redefines paint : MyPaint;
155+
step redefines paint : MyPaint {
156+
feature redefines paint::objectToPaint, MyPaint::objectToPaint;
157+
}
148158
feature subsets objectToFinish.beforePaint.immediateSuccessors,
149159
objectToFinish.whilePainting.startShot.timeCoincidentOccurrences
150160
chains paint.painting.endShot;
@@ -161,7 +171,9 @@ package ChangingFeatureValuesExecution {
161171
feature oaPiS chains objectToFinish.afterPaint.isShipped = false;
162172

163173

164-
step redefines dry : MyDry;
174+
step redefines dry : MyDry {
175+
feature redefines dry::objectToDry, MyDry::objectToDry;
176+
}
165177
succession redefines p_before_d : MyPaint_Before_Dry_Link [1] first paint then dry;
166178
feature subsets objectToFinish.afterPaint.immediateSuccessors,
167179
objectToFinish.afterDry.startShot.timeCoincidentOccurrences
@@ -171,7 +183,9 @@ package ChangingFeatureValuesExecution {
171183
feature oaDiS chains objectToFinish.afterDry.isShipped = false;
172184

173185

174-
step redefines ship : MyShip;
186+
step redefines ship : MyShip {
187+
feature redefines ship::objectToShip, MyShip::objectToShip;
188+
}
175189
succession redefines d_before_s : MyDry_Before_Ship_Link [1] first dry then ship;
176190
feature subsets objectToFinish.afterDry.immediateSuccessors,
177191
objectToFinish.afterShip.startShot.timeCoincidentOccurrences
Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
1-
package Associations {
1+
package Associations {
2+
datatype X;
3+
class Y;
4+
25
assoc A {
3-
end x;
4-
end [1..*] feature y;
6+
end x_cross [1..1] feature x : X;
7+
end y_cross [1..*] feature y : Y;
58
}
69

710
assoc B specializes A {
811
end x1;
912
end [0..*] feature y1 redefines y;
1013
}
14+
15+
assoc struct C {
16+
const end [1] feature a;
17+
const end feature b;
18+
}
19+
20+
metaclass M;
21+
assoc XY {
22+
end [0..1] feature x : X {
23+
@M;
24+
}
25+
end feature y : Y;
26+
}
1127
}

kerml/src/examples/Simple Tests/Behaviors.kerml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ package Behaviors {
1313
class C {
1414
var z = A().y;
1515
step a : A;
16+
step b : B;
1617
binding z = a.y;
18+
flow a.y to b.x1;
1719
}
20+
abstract flow msg of C;
1821
}

kerml/src/examples/Simple Tests/MetadataTest.kerml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,18 @@ package MetadataTest {
3838
}
3939
}
4040

41+
class CC;
42+
struct SS {
43+
feature cc : CC;
44+
}
45+
46+
metaclass M :> Metaobjects::SemanticMetadata {
47+
:>> annotatedElement : KerML::Class;
48+
:>> baseType = if annotatedElement istype KerML::Structure ?
49+
SS meta KerML::Type else CC meta KerML::Class;
50+
}
51+
52+
#M struct T {
53+
feature :>> cc;
54+
}
4155
}
Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
package Redefinition {
2-
class Occurrence;
3-
class Transfer {
4-
feature transferSource;
5-
feature item;
6-
assoc SourceOutputLink specializes Objects::BinaryLinkObject {
7-
end [1] feature source: Occurrence;
8-
end [1..*] feature target: Occurrence;
9-
}
10-
connector sourceOutputLink: SourceOutputLink[1..*] from transferSource to item {
11-
feature startShot: Occurrence redefines SourceOutputLink::startShot;
12-
feature endShot: Occurrence redefines SourceOutputLink::endShot;
13-
}
2+
3+
classifier A {
4+
feature f;
5+
}
6+
7+
classifier B specializes A {
8+
feature redefines f {
9+
feature g;
10+
}
11+
}
12+
13+
classifier C specializes A, B {
14+
feature subsets f {
15+
feature redefines g;
16+
}
17+
}
18+
19+
class X {
20+
feature redefines startShot;
21+
feature redefines endShot;
1422
}
1523
}

kerml/src/examples/Variable Feature Examples/Enhancements/ExtendedOccurrences.kerml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,8 @@ package ExtendedOccurrences {
4747
connector : Occurrences::HappensDuring from [1] that to [1] self;
4848
}
4949
}
50+
struct ExtendedObject :> ExtendedOccurrence {
51+
feature self : ExtendedObject :>> Objects::Object::self, ExtendedOccurrence::self;
52+
}
53+
5054
}

0 commit comments

Comments
 (0)