Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: compile with all MPS versions #196

Merged
merged 1 commit into from
Feb 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 43 additions & 0 deletions .github/workflows/mps-compatibility.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: MPS compatibility

on:
push:
branches:
- 'main'
pull_request: {}
# allow manual execution just in case
workflow_dispatch:

jobs:
assemble-mps-components:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
version:
# - "2020.3"
- "2021.1"
- "2021.2"
- "2021.3"
- "2022.2"
- "2022.3"
- "2023.2"
- "2024.1"
# - "2024.3"
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
- name: Set up Gradle
uses: gradle/gradle-build-action@v3
- name: Assemble with ${{ matrix.version }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: >-
./gradlew --build-cache
assemble
-Pmps.version.major=${{ matrix.version }}
1 change: 1 addition & 0 deletions mps-legacy-sync-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ dependencies {

implementation(coreLibs.kotlin.reflect)
implementation(coreLibs.ktor.server.resources)
implementation(libs.modelix.mpsApi)

// There is a usage of MakeActionParameters in ProjectMakeRunner which we might want to delete
compileOnly(mpsHomeDir.map { it.files("plugins/mps-make/languages/jetbrains.mps.ide.make.jar") })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import jetbrains.mps.internal.collections.runtime.Sequence
import jetbrains.mps.messages.IMessage
import jetbrains.mps.project.MPSProject
import jetbrains.mps.project.Project
import jetbrains.mps.project.StandaloneMPSProject
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory
import org.apache.log4j.Level
import org.apache.log4j.LogManager
Expand All @@ -31,6 +30,7 @@ import org.modelix.model.mpsplugin.ModelServerConnection
import org.modelix.model.mpsplugin.ModelServerConnections
import org.modelix.model.mpsplugin.ProjectBinding
import org.modelix.model.mpsplugin.SyncDirection
import org.modelix.mps.api.ModelixMpsApi
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.PrintWriter
Expand All @@ -39,6 +39,7 @@ import java.net.Socket
import java.util.function.Consumer

/*Generated by MPS */
@Suppress("UnstableApiUsage", "removal")
class ModelImportExport {
fun cloud2mps() {
val exportPath = PropertyOrEnv.get(ModelixExportConfiguration.PATH)
Expand Down Expand Up @@ -149,10 +150,7 @@ class ModelImportExport {
),
).where(object : IWhereFilter<SModule>() {
override fun accept(it: SModule): Boolean {
val virtualFolder =
(mpsProject as StandaloneMPSProject).getFolderFor(
it,
)
val virtualFolder = ModelixMpsApi.getVirtualFolder(mpsProject, it)
println("Modelix Application Plugin - Considering module: " + it.moduleName + " virtual folder: " + virtualFolder + ", make is currently: " + make)
return Sequence.fromIterable<String>(
Sequence.fromArray<String>(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:Suppress("removal", "UnstableApiUsage")

package org.modelix.model.mpsplugin.projectview

import com.intellij.openapi.application.ApplicationManager
Expand All @@ -6,8 +8,6 @@ import jetbrains.mps.baseLanguage.closures.runtime.Wrappers._T
import jetbrains.mps.baseLanguage.closures.runtime._FunctionTypes._void_P1_E0
import jetbrains.mps.ide.project.ProjectHelper
import jetbrains.mps.ide.projectPane.ProjectPane
import jetbrains.mps.ide.projectPane.logicalview.ProjectTree
import jetbrains.mps.ide.ui.tree.MPSTreeNode
import jetbrains.mps.ide.ui.tree.TextTreeNode
import jetbrains.mps.internal.collections.runtime.ISelector
import jetbrains.mps.internal.collections.runtime.IVisitor
Expand Down Expand Up @@ -35,10 +35,12 @@ import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.util.concurrent.atomic.AtomicBoolean
import javax.swing.Icon
import javax.swing.JTree
import javax.swing.Timer
import javax.swing.event.TreeModelEvent
import javax.swing.event.TreeModelListener
import javax.swing.tree.DefaultTreeModel
import javax.swing.tree.MutableTreeNode
import javax.swing.tree.TreeNode
import kotlin.math.min

Expand Down Expand Up @@ -127,8 +129,8 @@ class CloudProjectViewExtension(private val project: Project?) {
}
}

private fun waitForProjectTree(callback: _void_P1_E0<in ProjectTree>) {
val tree: ProjectTree? = projectTree
private fun waitForProjectTree(callback: _void_P1_E0<in JTree>) {
val tree = projectTree
if (tree != null) {
callback.invoke(tree)
} else {
Expand All @@ -137,7 +139,7 @@ class CloudProjectViewExtension(private val project: Project?) {
1000,
object : ActionListener {
override fun actionPerformed(e: ActionEvent) {
val tree: ProjectTree? = projectTree
val tree = projectTree
if (tree != null) {
callback.invoke(tree)
timer.value!!.stop()
Expand All @@ -153,7 +155,7 @@ class CloudProjectViewExtension(private val project: Project?) {
}
}

private val projectTree: ProjectTree?
private val projectTree: JTree?
private get() {
if (project!!.isDisposed) {
return null
Expand Down Expand Up @@ -184,10 +186,8 @@ class CloudProjectViewExtension(private val project: Project?) {
val projectPane: ProjectPane = ProjectPane.getInstance(
project,
)
val root: MPSTreeNode? = projectPane.tree.rootNode
if (root == null) {
return
}
val root = projectPane.tree.model.root ?: return
root as MutableTreeNode
val model: DefaultTreeModel? = TreeModelUtil.getModel(projectPane.tree)

// wrong parent
Expand Down Expand Up @@ -238,10 +238,7 @@ class CloudProjectViewExtension(private val project: Project?) {
}

fun updateModules() {
val root: MPSTreeNode? = projectTree?.rootNode
if (root == null) {
return
}
val root = projectTree?.model?.root ?: return
val treeModel: DefaultTreeModel? = TreeModelUtil.getModel(projectTree)
project!!.repository.modelAccess.runReadAction(object : Runnable {
override fun run() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ class ModelRenameHelper(private val model: EditableSModelBase, private val mpsPr
while (var4.hasNext()) {
val sm: SModel = var4.next() as SModel
if (!sm.isReadOnly) {
if (sm is EditableSModelBase && sm.updateExternalReferences(mpsProject.repository)) {
if (sm is EditableSModelBase) {
sm.updateExternalReferences(mpsProject.repository)
sm.isChanged = true
}
}
Expand Down
Loading