Giter VIP home page Giter VIP logo

emoflon-ibex-eclipse-build's People

Contributors

maxkratz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

emoflon-ibex-eclipse-build's Issues

Artifact download gives a zip within a zip

Currently, there is a Github UI limitation that does not allow the download of individual artifact files from a Github Action run.

  1. Start the pipeline.
  2. actions/upload-artifacts@v2 uploads a single zip file (that our build script generated in the run).
  3. The zip file is registered in "Artifacts".
  4. User downloads the artifact which automatically gets zipped again -> zip in zip.

Related:

Remove VIATRA installation

If we decide to kick VIATRA from eMoflon completely, we have to remove it from the build process of this project:

  • VIATRA itself
  • eMoflon VIATRA plug-in

Builds are failing because of missing Xtext dependency

Cannot complete the install because one or more required items could not be found.
	Software being installed: MWE2 Launcher 2.14.0.v20221117-1134 (org.eclipse.emf.mwe2.launcher.feature.group 2.14.0.v20221117-1134)
	Missing requirement: MWE2 Launcher 2.14.0.v20221117-1134 (org.eclipse.emf.mwe2.launcher.feature.group 2.14.0.v20221117-1134) requires 'org.eclipse.equinox.p2.iu; org.eclipse.xtext 2.29.0' but it could not be found

https://github.com/eMoflon/emoflon-ibex-eclipse-build/actions/runs/3511564481/jobs/5882457122

Rework installation routine of com.seeq.eclipse.importprojects

# Install com.seeq.eclipse.importprojects (by hand because there is no update site)
# https://github.com/seeq12/eclipse-import-projects-plugin/raw/master/jar/com.seeq.eclipse.importprojects_1.4.0.jar
wget -P eclipse/plugins https://github.com/seeq12/eclipse-import-projects-plugin/raw/master/jar/com.seeq.eclipse.importprojects_1.4.0.jar

CI: Update used GitHub actions to fix warnings

Warnings to resolve, e.g., taken from here: https://github.com/eMoflon/emoflon-eclipse-build/actions/runs/3233212005

collect-github-api-artifacts
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/upload-artifact, actions/upload-artifact

create-splash-image
Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/checkout, actions/upload-artifact, actions/checkout

create-splash-image
The save-state command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

create-splash-image
The save-state command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

create-splash-image
The save-state command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

Build version(s) without dark theme

Somehow, the "Darkest Darktheme" or some of its packages crashes if the built Eclipse (Linux) has to start headless without a desktop environment.

Possible solution: Build version(s) without the dark theme for CI builds etc.

!ENTRY com.genuitec.eclipse.theming.core 4 0 2022-01-14 17:30:29.148
!MESSAGE <null>
!STACK 0
Unexpected token RIGHT SQUARE(]) at position 0.
        at org.json.simple.parser.JSONParser.parse(JSONParser.java:257)
        at org.json.simple.parser.JSONParser.parse(JSONParser.java:92)
        at com.genuitec.eclipse.theming.core.services.ImageReplacementService.loadUnknownImages(ImageReplacementService.java:91)
        at com.genuitec.eclipse.theming.core.services.ImageReplacementService.<init>(ImageReplacementService.java:74)
        at com.genuitec.eclipse.theming.core.services.ImageReplacementService.<clinit>(ImageReplacementService.java:38)
        at com.genuitec.eclipse.theming.core.internal.images.URLImageDescriptorWeaver.weave(URLImageDescriptorWeaver.java:23)
        at com.genuitec.eclipse.theming.core.AbstractWeaverExtension.weave(AbstractWeaverExtension.java:51)
        at com.genuitec.eclipse.patches.internal.InstrumentationManager$WeavingExtension.weave(InstrumentationManager.java:429)
        at com.genuitec.eclipse.patches.internal.InstrumentationManager.weave(InstrumentationManager.java:332)
        at com.genuitec.eclipse.patches.internal.InstrumentationWeaver.weave(InstrumentationWeaver.java:15)
        at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:187)
        at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:1)
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1321)
        at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1294)
        at org.eclipse.osgi.internal.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:249)
        at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:80)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.processClass(ClasspathManager.java:735)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:706)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587)
        at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566)
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
        at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:384)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:475)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:403)
        at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
        at org.eclipse.ui.internal.BrandingProperties.getImages(BrandingProperties.java:115)
        at org.eclipse.ui.internal.ProductProperties.getWindowImages(ProductProperties.java:310)
        at org.eclipse.ui.internal.ProductInfo.getWindowImages(ProductInfo.java:100)
        at org.eclipse.ui.internal.WorkbenchPlugin.getWindowImages(WorkbenchPlugin.java:1031)
        at org.eclipse.ui.internal.Workbench.initializeImages(Workbench.java:1795)
        at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:753)
        at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:168)
        at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:182)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:125)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1440)

Incompatibility: Add Eclipse PMD plugin again

Currently, the Eclipse PMD plugin is incompatible with Eclipse Modeling Tools 2022-12 R. (I've opened an issue at their repository: pmd/pmd-eclipse-plugin#168)

To resolve this, the merging of #70 will remove it from the build.
(See commit b52cefa.)

Once the dependency issue with the PMD plugin is resolved, we should add it back to the additional plugins in this build. (A revert of b52cefa should be enough!)

Xtext v2.32.0 breaks Eclipse Modeling 2023-06: `com.google.inject`: Missing Constraint: Import-Package: sun.misc; version="0.0.0"

Currently, the latest release (https://github.com/eMoflon/emoflon-ibex-eclipse-build/releases/tag/v1.0.0.202309111048) of this Eclipse build is broken.

When trying to start a runtime Eclipse, the following (validation) error message occurs:

Screenshot from 2023-09-11 13-21-00

Since this not an error of this specific Eclipse build, i.e., it also happens when using the latest Eclipse Modeling 2023-06 build and installing Xtext v2.32.0 manually, I created an upstream issue: eclipse/xtext#2800

Remove hard-coded org.eclipse.emf.mwe2 versions

To resolve #15, I had to add three dependencies to the package install list:

org.eclipse.emf.mwe2.launcher.feature.group
org.eclipse.emf.mwe2.runtime.sdk.feature.group
org.eclipse.emf.mwe2.language.sdk.feature.group

Unfortunately, there was a dependency problem:

Cannot complete the install because one or more required items could not be found.
	Software being installed: MWE2 Launcher 2.12.2.v20220118-1914 (org.eclipse.emf.mwe2.launcher.feature.group 2.12.2.v20220118-1914)
	Missing requirement: MWE2 Launcher 2.12.2.v20220118-1914 (org.eclipse.emf.mwe2.launcher.feature.group 2.12.2.v20220118-1914) requires 'org.eclipse.equinox.p2.iu; org.eclipse.xtext 2.26.0' but it could not be found

To solve this issue, I've hard-coded the versions of the three features:

org.eclipse.emf.mwe2.launcher.feature.group/2.12.1.v20210218-2134
org.eclipse.emf.mwe2.runtime.sdk.feature.group/2.12.1.v20210218-2134
org.eclipse.emf.mwe2.language.sdk.feature.group/2.12.1.v20210218-2134

(See: #25)

This "fix" is only necessary until xtext v2.26.0 will be released (or the dependency to v2.26.0 will be removed from MWE2 launcher). After said release, the hard-coded version value should be removed from the list.

(See: https://github.com/eclipse/xtext-core/tags)

Run build jobs in parallel to speed-up the CI pipeline

There is a limitation with Github Actions self-hosted runners: They can only run one job concurrently.

Currently, our build-jobs do not depend on each other. Unfortunately, the build time is much higher than necessary because of the runner limitation.

Possible solutions to solve this:

  • Register more Github Action runners (AFAIK can be on the same VM or physical machine)
  • Change the pipeline to first build the user package, upload it and then install the eMoflon packages (hence, create the dev version)

macOS-based versions: Eclipse.app is not runnable

See #44 (comment).

Currently, the Eclipse.app (macOS-based version) isn't directly runnable after downloading it.
Workaround:

  • Open a terminal on your Mac.
  • Navigate to the folder containing the downloaded Eclipse.app.
  • Run the following command (which will prompt you for your password): sudo xattr -cr ./Eclipse.app

macOS-based versions: Eclipse.app: "File/Application is damaged and cannot be opened"

Apparently, newer macOS versions show an error that the downloaded Eclipse.app is broken (which it is not).

This seems to be a workaround:

  • Download the respective ZIP archive
  • Extract it
  • Open a terminal and navigate to the folder containing your extracted Eclipse.app
  • Run xattr -d com.apple.quarantine Eclipse.app
  • The Eclipse.app should now start with a normal double click

Find workaround for hard-coded JDK path in CI configuration

https://github.com/maxkratz/emoflon-eclipse-build/blob/feature/basic-ci-config/.github/workflows/ci.yml#L46

It would be nicer if the version could be found dynamically.

Possible solution:

  • Specify a generic environment variable on the Windows system, e.g., JDK_VERSION_INSTALLED.
  • Add this variable to the documentation and set it to the specific JDK version that is installed on the runner system.
  • Update the CI configuration to read the value from JDK_´VERSION_INSTALLED.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.