Skip to content

Commit 44ae355

Browse files
authored
Merge branch 'master' into renovate/com.github.breadmoirai.github-release-2.x
2 parents 2c10aaf + 208518d commit 44ae355

File tree

305 files changed

+4227
-2022
lines changed

Some content is hidden

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

305 files changed

+4227
-2022
lines changed

.github/workflows/vulnerability-scanning.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
- name: Checkout
99
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
1010
- name: Setup Java
11-
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4
11+
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
1212
with:
1313
distribution: temurin
1414
java-version: 17
@@ -17,7 +17,7 @@ jobs:
1717
- name: Call setup
1818
run: ./gradlew dependencies
1919
- name: Dependency Check
20-
uses: dependency-check/Dependency-Check_Action@3102a65fd5f36d0000297576acc56a475b0de98d
20+
uses: dependency-check/Dependency-Check_Action@2ba636726705b0f74f126ebeaacaf2ad4600b967
2121
env:
2222
# actions/setup-java changes JAVA_HOME, so it needs to be reset to match the depcheck image
2323
JAVA_HOME: /opt/jdk

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,26 @@ All notable changes to this project are documented in this file.
55
Format of the log is _loosely_ based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66
The project does _not_ follow Semantic Versioning and the changes are documented in reverse chronological order, grouped by calendar month.
77

8+
## June 2025
9+
10+
### Changed
11+
12+
- Published SBOM contains dependencies only from runtime configurations
13+
14+
## May 2025
15+
16+
### Changed
17+
18+
- The language org.iets3.variability.artifacts.base was temporarily renamed to org.iets3.variability.artifacts.vanguard.
19+
20+
### Fixed
21+
22+
- Plugin org.iets3.safety was renamed to org.iets3.safety.os fixing the name collision with a plugin in org.iets3.core
23+
24+
- A NullPointerException was fixed for cases where a node implementing IValidNamedConcept had no name.
25+
- When calculating the supertype of number types, the precision is now correctly set to infinite when one of the types has an infinite precision.
26+
- The primitiveTypeMapper extension supports a new method `PrimitiveTypeMapper#useStringConstraints` that can be set to false to disable string types with constraints and go back to regular string types.
27+
828
## April 2025
929

1030
### Fixed

README.md

Lines changed: 92 additions & 60 deletions
Large diffs are not rendered by default.

build.gradle

Lines changed: 108 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import de.itemis.mps.gradle.*
2-
import de.itemis.mps.gradle.tasks.MpsMigrate
3-
import de.itemis.mps.gradle.tasks.Remigrate
2+
import de.itemis.mps.gradle.tasks.*
43
import de.itemis.mps.gradle.downloadJBR.DownloadJbrForPlatform
4+
import groovy.transform.TupleConstructor
55
import groovy.xml.XmlSlurper
66
import java.time.LocalDate
77
import java.time.format.DateTimeFormatter
@@ -13,7 +13,7 @@ plugins {
1313
id 'de.itemis.mps.gradle.common' version '1.29.+'
1414
id 'de.itemis.mps.gradle.launcher' version '2.5.2.+'
1515
id "com.github.breadmoirai.github-release" version "2.5.2"
16-
id "org.cyclonedx.bom" version "1.8.2"
16+
id "org.cyclonedx.bom" version "2.2.0"
1717
}
1818

1919
repositories {
@@ -26,9 +26,9 @@ repositories {
2626

2727
apply plugin: 'download-jbr'
2828

29-
// configure jbr download
29+
// configure jbr download version
3030
downloadJbr {
31-
jbrVersion = '17.0.11-b1207.30'
31+
jbrVersion = '21.0.6-b895.109'
3232
}
3333

3434
// detect if we are in a CI build
@@ -41,13 +41,16 @@ if (project.hasProperty("forceCI")) {
4141

4242
def forceLocal = project.hasProperty("forceLocalDependencies")
4343

44-
def major = "2024"
45-
def minor = "1"
44+
def major = "9999"
45+
def minor = "9"
4646

4747
// Dependency versions
4848

49-
ext.mpsVersion = '2024.1.2'
50-
ext.mpsQAVersion = "2024.1.1022.300f07a"
49+
50+
51+
ext.mpsVersion = "251.25410.10228"
52+
def mpsQAVersion = "$major.$minor+"
53+
5154

5255
// if building a against a special branch from mbeddr is required add the name here
5356
// the name is enough no trailing "." is required, also the plain name from git can
@@ -57,9 +60,9 @@ def currentBranch = ""
5760

5861
if (!project.hasProperty('mbeddrVersion')) {
5962
if (mbeddrBranch != null && !mbeddrBranch.trim().isEmpty()) {
60-
ext.mbeddrVersion = "${mbeddrBranch.replace("/", "-")}.${major}.${minor}.+"
63+
ext.mbeddrVersion = "${mbeddrBranch.replace("/", "-")}.$major.$minor+"
6164
} else {
62-
ext.mbeddrVersion = "2024.1.25305.dff1a9a"
65+
ext.mbeddrVersion = "$major.$minor+"
6366
}
6467
}
6568

@@ -95,27 +98,90 @@ ext.snapshotRepository = 'https://artifacts.itemis.cloud/repository/maven-mps-sn
9598
ext.publishingRepository = version.toString().endsWith("-SNAPSHOT") ? snapshotRepository : releaseRepository
9699

97100

101+
def buildDirPath(pathUnderBuildDir) {
102+
project.layout.buildDirectory.dir(pathUnderBuildDir).get().asFile
103+
}
98104

99105
// 'artifacts' is used in the generated ant scripts as build output directory
100-
ext.artifactsDir = new File(buildDir, 'artifacts')
106+
ext.artifactsDir = buildDirPath('artifacts')
107+
ext.reportsDir = buildDirPath('reports')
108+
109+
wrapper {
110+
gradleVersion '8.13'
111+
distributionType Wrapper.DistributionType.ALL
112+
}
101113

102114
configurations {
103115
mps
104116
rerunMigrationsBackend
105117
languageLibs
106118
junitAnt
107-
pcollections // Synced to org.iets3.core.expr.base.collections.stubs/lib
108-
bigMath // Synced to org.iets3.core.expr.math.interpreter/lib
109119
}
110120

111121
dependencies {
112-
mps "com.jetbrains:mps:$mpsVersion"
122+
// For a release version of MPS, use this dependency:
123+
//mps "com.jetbrains:mps:$mpsBuild"
124+
mps "com.jetbrains.mps:mps-prerelease:$mpsVersion"
113125
rerunMigrationsBackend("de.itemis.mps.build-backends:remigrate:0.2.0.+")
114126
languageLibs "org.mpsqa:all-in-one:$mpsQAVersion"
115127
languageLibs "com.mbeddr:platform:$mbeddrVersion"
116128
junitAnt 'org.apache.ant:ant-junit:1.10.15'
117-
pcollections 'org.pcollections:pcollections:4.0.2'
118-
bigMath 'ch.obermuhlner:big-math:2.3.2'
129+
}
130+
131+
@TupleConstructor
132+
class BundledDep {
133+
String name
134+
List<String> entries
135+
String libSolutionName
136+
Closure configClosure = { transitive = false }
137+
// in case a legacy dependency has a broken artifact name, e.g. w/o extension
138+
String jarNameOverride
139+
String getConfigName() {
140+
name + '_bundled'
141+
}
142+
String getResolveTaskName() {
143+
'resolve_' + this.configName
144+
}
145+
BundledDep overrideArtifactName(String artifactName) {
146+
this.jarNameOverride = artifactName
147+
this
148+
}
149+
}
150+
151+
def bundledDeps = [
152+
new BundledDep('pcollections', ['org.pcollections:pcollections:4.0.2'], 'org.iets3.core.expr.base.collections.stubs'),
153+
new BundledDep('bigMath', ['ch.obermuhlner:big-math:2.3.2'], 'org.iets3.core.expr.math.interpreter'),
154+
new BundledDep('functionalJava', ['org.functionaljava:functionaljava:5.0'], 'org.iets3.core.expr.genjava.functionalJava'),
155+
new BundledDep('cpsSuite', ['io.takari.junit:takari-cpsuite:1.2.7'], 'org.iets3.opensource.build.gentests.rt').overrideArtifactName('takari-cpsuite.jar')
156+
]
157+
158+
bundledDeps.each { dep ->
159+
configurations {
160+
create(dep.configName)
161+
}
162+
dependencies {
163+
dep.entries.each {entry ->
164+
add(dep.configName, entry, dep.configClosure)
165+
}
166+
}
167+
tasks.create(dep.resolveTaskName, Sync.class) {
168+
from configurations.getByName(dep.configName)
169+
into file("code/languages/org.iets3.opensource/solutions/${dep.libSolutionName}/lib")
170+
171+
// Strip version numbers from file names
172+
rename { filename ->
173+
def ra = configurations.getByName(dep.configName).resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
174+
String finalName
175+
if (dep.jarNameOverride != null) {
176+
finalName = dep.jarNameOverride
177+
} else if (ra.classifier != null) {
178+
finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
179+
} else {
180+
finalName = "${ra.name}.${ra.extension}"
181+
}
182+
return finalName
183+
}
184+
}
119185
}
120186

121187

@@ -134,41 +200,8 @@ task resolveLanguageLibs(type: Sync) {
134200
into "$buildDir/dependencies"
135201
}
136202

137-
task resolvePcollections(type: Sync) {
138-
from configurations.pcollections
139-
into file('code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.base.collections.stubs/lib')
140-
141-
// Strip version numbers from file names
142-
rename { filename ->
143-
def ra = configurations.pcollections.resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
144-
String finalName
145-
if (ra.classifier != null) {
146-
finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
147-
} else {
148-
finalName = "${ra.name}.${ra.extension}"
149-
}
150-
return finalName
151-
}
152-
}
153-
154-
task resolveBigMath(type: Sync) {
155-
from configurations.bigMath
156-
into file('code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.math.interpreter/lib')
157-
158-
// Strip version numbers from file names
159-
rename { filename ->
160-
def ra = configurations.bigMath.resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
161-
String finalName
162-
if (ra.classifier != null) {
163-
finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
164-
} else {
165-
finalName = "${ra.name}.${ra.extension}"
166-
}
167-
return finalName
168-
}
169-
}
170-
171-
task resolveDependencies(dependsOn: ['downloadJbr', resolveMps, resolveLanguageLibs, resolvePcollections, resolveBigMath])
203+
task resolveDependencies(dependsOn: ['downloadJbr', resolveMps, resolveLanguageLibs])
204+
resolveDependencies.dependsOn << bundledDeps.collect {it.resolveTaskName }
172205

173206
ext.mpsHomeDir = resolveMps.destinationDir
174207

@@ -256,11 +289,11 @@ buildAndRunTests.configure { finalizedBy failOnTestError }
256289
check.dependsOn buildAndRunTests
257290

258291
tasks.register('migrate', MpsMigrate) {
259-
dependsOn(resolveMps, 'resolveMpsForModelcheck', 'downloadJbr', 'buildLanguages', 'buildAndRunTests')
292+
dependsOn(resolveMps, 'downloadJbr', 'buildLanguages', 'buildAndRunTests')
260293
javaLauncher = tasks.named('downloadJbr', DownloadJbrForPlatform).flatMap { it.javaLauncher }
261294

262295
haltOnPrecheckFailure = false
263-
haltOnDependencyError = true
296+
haltOnDependencyError = false
264297

265298
mpsHome = mpsHomeDir
266299

@@ -276,7 +309,7 @@ tasks.register('remigrate', Remigrate) {
276309
mustRunAfter('migrate')
277310
mustRunAfter('buildLanguages', 'buildAndRunTests')
278311

279-
dependsOn(resolveMps, 'resolveMpsForModelcheck','downloadJbr')
312+
dependsOn(resolveMps,'downloadJbr')
280313

281314
javaLauncher = tasks.named('downloadJbr', DownloadJbrForPlatform).flatMap { it.javaLauncher }
282315

@@ -288,26 +321,22 @@ tasks.register('remigrate', Remigrate) {
288321
maxHeapSize = '4G'
289322
}
290323

291-
apply plugin: 'modelcheck'
292-
293324
File modelcheckresult = new File("$buildDir/TEST-checkProject.xml")
294325

295-
def pluginsList = []
326+
tasks.register('checkmodels', MpsCheck) {
327+
javaLauncher = tasks.named('downloadJbr', DownloadJbrForPlatform).flatMap { it.javaLauncher }
296328

297-
modelcheck {
298329
projectLocation = new File("$projectDir/code/languages/org.iets3.opensource")
299-
mpsLocation = new File("$buildDir/mps")
300-
plugins = pluginsList
301-
mpsConfig = configurations.mps
302-
macros = [new Macro("iets3.github.opensource.home", "$projectDir")]
330+
mpsHome = new File("$buildDir/mps")
331+
pluginRoots.add(mpsHome.dir('plugins'))
332+
folderMacros.put("iets3.github.opensource.home", layout.projectDirectory)
303333
junitFile = modelcheckresult
304334
junitFormat = "message"
305-
errorNoFail = true
335+
ignoreFailures = true
306336
debug = false
307-
maxHeap = "4G"
337+
maxHeapSize = "4G"
308338
}
309339

310-
311340
afterEvaluate { project ->
312341
/*
313342
check.configure {
@@ -317,14 +346,15 @@ afterEvaluate { project ->
317346
}
318347

319348

320-
checkmodels {
321-
dependsOn(resolveMps)
322-
}
323-
324-
task packageLanguages(type: Zip, dependsOn: buildLanguages) {
349+
task packageLanguages(type: Zip, dependsOn: [buildLanguages, cyclonedxBom]) {
325350
archiveBaseName = 'org.iets3.opensource'
326-
from artifactsDir
327-
include 'org.iets3.opensource/**'
351+
from(artifactsDir) {
352+
include 'org.iets3.opensource/**'
353+
}
354+
from(reportsDir) {
355+
include 'sbom.json'
356+
into 'org.iets3.opensource'
357+
}
328358
}
329359

330360
task packageTests(type: Zip, dependsOn: buildAndRunTests) {
@@ -542,15 +572,15 @@ tasks.named('githubRelease').configure {
542572

543573
cyclonedxBom {
544574
// SBOM destination directory
545-
destination = file("build/reports")
575+
destination = reportsDir
546576
// The file name for the generated SBOMs (before the file format suffix)
547577
outputName = "sbom"
548578
// The file format generated, can be xml, json or all for generating both
549579
outputFormat = "json"
550580
// Don't include license texts in generated SBOMs
551581
includeLicenseText = false
552-
}
553-
554-
assemble {
555-
dependsOn('cyclonedxBom')
582+
// Include runtime only deps (bundled libs, language libs, mps)
583+
def runtimeConfigs = bundledDeps.collect {it.configName }
584+
runtimeConfigs.addAll([configurations.mps.name, configurations.languageLibs.name])
585+
includeConfigs = runtimeConfigs
556586
}

build/scripts/build-allScripts.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,10 @@
126126
<settings refid="m2m-0" />
127127
<plugin path="${artifacts.com.mbeddr.platform}/com.mbeddr.platform.build" id="com.mbeddr.platform.build" />
128128
<plugin path="${artifacts.com.mbeddr.platform}/de.itemis.mps.extensions.build" id="de.itemis.mps.extensions.build" />
129+
<plugin path="${artifacts.mps}/lib/mps-workbench.jar" id="com.intellij.modules.mps" />
129130
<plugin path="${artifacts.mps}/plugins/mps-build" id="jetbrains.mps.build" />
130131
<plugin path="${artifacts.mps}/plugins/mps-core" id="jetbrains.mps.core" />
132+
<library file="${artifacts.mps}/languages/editor/jetbrains.mps.ide.editor.jar" />
131133
<chunk>
132134
<module file="${iets3.lang.opensource}/languages/org.iets3.opensource.build.gentests/org.iets3.opensource.build.gentests.mpl" />
133135
<module file="${iets3.lang.opensource}/solutions/org.iets3.opensource.build.gentests.rt/org.iets3.opensource.build.gentests.rt.msd" />
@@ -162,7 +164,7 @@
162164
<classpath>
163165
<fileset file="${artifacts.mps}/lib/mps-references.jar" />
164166
<pathelement path="${build.tmp}/java/out/org.iets3.opensource.build.gentests.rt" />
165-
<fileset file="${iets3.lang.opensource}/solutions/org.iets3.opensource.build.gentests.rt/lib/takari-cpsuite-1.2.7.jar" />
167+
<fileset file="${iets3.lang.opensource}/solutions/org.iets3.opensource.build.gentests.rt/lib/takari-cpsuite.jar" />
166168
<fileset file="${artifacts.com.mbeddr.platform}/com.mbeddr.platform.jar" />
167169
<fileset file="${artifacts.com.mbeddr.platform}/de.itemis.mps.extensions.build/languages/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.jar" />
168170
</classpath>
@@ -324,7 +326,7 @@
324326
</src>
325327
<classpath>
326328
<fileset file="${artifacts.mps}/lib/mps-references.jar" />
327-
<fileset file="${iets3.lang.opensource}/solutions/org.iets3.opensource.build.gentests.rt/lib/takari-cpsuite-1.2.7.jar" />
329+
<fileset file="${iets3.lang.opensource}/solutions/org.iets3.opensource.build.gentests.rt/lib/takari-cpsuite.jar" />
328330
<fileset file="${artifacts.mps}/lib/junit4.jar" />
329331
</classpath>
330332
</javac>

code/languages/org.iets3.opensource/.mps/migration.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
<entry key="jetbrains.mps.ide.mpsmigration.v_2023_1.DataFlowStubsToRegularNodes" value="executed" />
2323
<entry key="jetbrains.mps.ide.mpsmigration.v_2023_1.JavaModuleSettingsToFacet" value="executed" />
2424
<entry key="jetbrains.mps.ide.mpsmigration.v_2023_3.CleanStubForeignMethodIds" value="executed" />
25+
<entry key="jetbrains.mps.ide.mpsmigration.v_2024_3.LangResourceImport4Migration" value="executed" />
2526
<entry key="jetbrains.mps.javaVersionMigration_JDKDefault" value="executed" />
2627
<entry key="jetbrains.mps.v8_elimination" value="executed" />
27-
<entry key="project.migrated.version" value="241" />
28+
<entry key="project.migrated.version" value="251" />
2829
</component>
2930
</project>

0 commit comments

Comments
 (0)