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

eMoflon::IBeX 2.0: Release TODO collection #424

Open
37 of 70 tasks
maxkratz opened this issue Apr 24, 2024 · 12 comments
Open
37 of 70 tasks

eMoflon::IBeX 2.0: Release TODO collection #424

maxkratz opened this issue Apr 24, 2024 · 12 comments

Comments

@maxkratz
Copy link
Member

maxkratz commented Apr 24, 2024

This issue should be used to collect TODOs for the release of eMoflon::IBeX 2.0.

TODOs (bugs, features, etc.)

I included all of the TODOs of my notes in the following list:

  • There are two failing tests (as of today = 2024-04-24):

image

  • One of the TGG-related projects is broken after the dev checkout (as of today = 2024-04-24):
    • As far as I can see, there is no xtend-gen folder in the project but there are also no xtend files -> maybe this is just a buildpath problem.
    • Update: it was just a classpath problem and I fixed it.
Description	Resource	Path	Location	Type
Project 'org.emoflon.ibex.tgg.tggl.ui' is missing required source folder: 'xtend-gen'	org.emoflon.ibex.tgg.tggl.ui		Build path	Build Path Problem
  • PlantUML visualization is currently broken (is it?)
    • TGGL visualization is broken -> the TGGL visualization is fine, see update comment below.
    • GTL visualization is a TODO
  • Update site build is broken -> fixed
  • MWE2 configs for a complete dev build -> done
  • IBeX: Update all version numbers to v2.x.x -> Max already started this on separate branches?
    • Max: We should only update all version numbers of projects we touched during the development of IBeX 2.0.
    • Some of the projects (e.g., in the emoflon-core repo) already have version numbers >2.0.0.
  • HiPE: Update all version numbers to v2.x.x -> Max already started this on an extra branch
  • Tutorial seems to be broken. The tutorial should be working before releasing IBeX v2.x.
    • Remove all count() operator-related code snippets and text from the tutorial.
    • Current state: HiWi is working on it.
  • IBeX 2.0 should be runnable with the latest Eclipse release -> tested and verified with the 2024-03 release by Max.
  • README.md + installation instruction must be updated
  • PSF dev must be updated/fixed
  • PSF test must be updated/fixed
    • As with the IBeX v1 test workspace, we should provide different PSF files for {all projects, GT-only, TGG-only}.
  • Update all branches before merging -> was at least done once by Max
    • Before finally merging all branches, we [Max?] should check it again
  • org.apache.commons.io is missing in the UI project -> fixed
  • Migrate the Xtext bugfix for IQualifiedName -> done
  • Fix test case Multiplicity -> test was successful with a new dev workspace and HiPE stateless -> done
  • Remove/delete old unused projects (GT editor, TGG editor, etc.) -> seems to be done?
  • Create Wizards (2x) for TGG -> done by Lars
    • TODO(Max): check and verify them -> both are fine
    • DefaultFilesHelper: remove typo (#)
  • Integrate the TGG Wizards into the upper menu bar -> Update: after including the new tgg wizards project, the upper menu bar seems to be fine.

IBeX v1.x:
image

IBeX v2.x (as of 2024-04-25):
image

  • Delete old/irrelevant projects from the repositories.
  • HiPE stateless in IBeX 1.0 generates non-compilable code
    • HiPE stateless is not compatible with IBeX 1.0 -> "done"
  • Push the IBeX-related tests with commented-out count() operator -> done
  • Find a way to release HiPE v1.x and HiPE v2.x on the same update site without creating merge conflicts every time
    • Currently on Max's TODO list.
  • HiPE: Deploy new update site build for v1 & v2 (see eMoflon::IBeX 2.0: Release TODO collection #424 (comment))
  • Find a way to release IBeX v1.x and IBeX v1.x on the same update site without creating merge conflicts every time
    • As with the same issue with HiPE, we have to find a solution.
  • IBeX: Deploy new update site build for v1 & v2 (see eMoflon::IBeX 2.0: Release TODO collection #424 (comment))
  • HiPE 2.0: Create detailed documentation/instructions on how to release v1.x and v2.x
  • HiPE 2.0: Adapt scripts for building the update site and remove Democles from them
  • HiPE: Update the PSF file for v2.x.
  • IBeX Eclipse builds: Find a way to release v1.x and v2.x in parallel. (This should be easier as the issue with the update site(s).)
  • IBeX VM builds: Find a way to release v1.x and v2.x in parallel. (See Eclipse-related TODO above.)
  • IBeX tests: All launch config files with Democles should be removed -> done + removed further Viatra artifacts.
  • Remove Democles artifacts in all IBeX-related repositories (e.g., in the site.xml config of the update site).
  • Update IBeX v2 to JDK21
  • Update HiPE v2 to JDK21
  • Update IBeX v2 tests to JDK21
  • Merge the fix for the JavaVersionHelper in emoflon-core from master into the feature branch

Releasing itself

When all TODOs/blocking bugs, etc. are resolved, these are the steps we should take to make the final release happen:

  • Create and collect all related PRs to this issue.
  • Tag and push the old version (1.x.x) in every IBeX repo + tutorial repo + test repo
  • Release another IBeX v1.x with HiPE v1.x (Max can do it)
    • Update site
    • Eclipse
    • VM
  • Release HiPE v2.x (stateless) to its update site.
  • Merge all IBeX 2.0-related PRs.
  • Merge the tutorial branch for IBeX 2.0.
  • Tag and release a new version of the tutorial to trigger a PDF build.
  • Merge emoflon-ibex-test branch(es) for IBeX 2.0.
  • Release IBeX v2.x with HiPE v2.x = stateless (Max can do it)
    • Update site
    • Eclipse
    • VM
  • Update the https://emoflon.org website to include instructions for IBeX v1 and IBeX v2.

Afterwards

  • Open (an) issue(s) for the missing features of the GT(L) visualization
  • We should enforce a common code style.
    • I [Max] moved this from the "before releasing" to "afterwards" because we do not want to have touched every file in all PRs for the release.
  • Enforce a common code style / organize all imports on all projects
@Arikae
Copy link
Collaborator

Arikae commented Apr 24, 2024

Regarding the first point, I thought the GTL vis is not broken but just no longer supported.

@maxkratz
Copy link
Member Author

maxkratz commented Apr 24, 2024

Regarding the first point, I thought the GTL vis is not broken but just no longer supported.

As far as I can see, both, the TGGL and the GTL visualization are currently broken/not supported.

Nope, I was wrong. The TGGL visualization is fine on my test system.

@maxkratz
Copy link
Member Author

I updated the list above with these TODOs:

  • Update the version numbers of all IBeX-related projects & HiPE-related projects to v2.x.x.
  • Suggestion to enforce a common code style before merging everything.
  • HiPE: Update the PSF file
  • A tggl.ui project has an error after checkout
  • IBeX tests: Remove all Democles launch files
  • Two IBeX tests are currently broken
  • PlantUML: Visualization of GTL + TGGL is broken/not supported

@maxkratz
Copy link
Member Author

maxkratz commented Apr 25, 2024

Update: I added a TODO:

  • Integrate both of the new TGG wizards into the upper Eclipse menu bar

Update for the update: after adding the new TGG wizard project to my dev WS, the upper menu bar seems to be fine.

@maxkratz
Copy link
Member Author

Update: Both TGG wizards work as expected.

@maxkratz
Copy link
Member Author

Update on the TGG project build error after checkout:

  • One of the TGG-related projects is broken after the dev checkout (as of today = 2024-04-24):

It was just a classpath problem and I fixed it.

@maxkratz
Copy link
Member Author

Update:

  • There are two failing tests (as of today = 2024-04-24):

Fixed by this commit.

@maxkratz
Copy link
Member Author

Update regarding the update site releasing of HiPE v1/v2 and IBeX v1/2:

As @Arikae and I found today, we have two ways to get around the problem of how to release v1 and v2 on one update site:

1. Rebuild the whole update site for every release

  • This means we would have to build X v1 and v2 from scratch, delete all previous releases of X from the update site (as we do it now, we just wipe the whole update site), and rebuild the site.
  • Pro: the current structure of the update site project etc. could stay almost the same
  • Con: one has to build both versions for a release (that does not make any sense IMO)

2. Move the update site project to its own repository

  • Move the update site project to its own repository and add releases of X v1 and v2 when they appear.
  • Pro: one has only to build the product (v1 or v2) that they want to release right now.
  • Con: because of the (incremental) update site build process, we can not delete previous releases that easily.
    • Currently, the only workaround that we see for deleting previous releases would be option no. 1 (see above).
  • One could argue that the git repository will grow in size for each new release because older releases will not be removed. That is correct (at least if I understand it correctly) but this should also be the case for our current approach for wiping and recreating the update site for every new build because the diffs are kept by git anyway.
    • That is why our current git repository for the update site is >900 MB (!) in size.
  • Another TODO for this approach would be to completely ditch the update site repo (not the project!) and commit the JAR artifacts directly to the update site project. The project needs the information/artifacts of the previous builds to update the update site incrementally.
    • I can adapt the GitHub Action publishing the update site etc, this is not a problem :).

@maxkratz
Copy link
Member Author

Update: Unused/old projects/artifacts removed (besides the moflon-core tycho-related projects).

@maxkratz
Copy link
Member Author

I've upgraded all projects (IBeX v2 dev, HiPE v2 (stateless) dev, and IBeX v2 tests) to JDK21 (via merging the master/main branches and fixing all resulting errors).

@maxkratz
Copy link
Member Author

I've ported all recent changes in HiPE + eMoflon IBeX GT v1 to the v2 branches.

  • HiPE path options
  • IBeX API initialization with a given pattern path (instead of using the hard-coded paths determined during project compilation)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants