rascal icon indicating copy to clipboard operation
rascal copied to clipboard

rascal-eclipse released with too specific dependency on tm.terminal

Open jurgenvinju opened this issue 2 years ago • 16 comments

Describe the bug

Installations of the newest Eclipse from march 2020 do complain that the latest Rascal release requires a tm.terminal that is too old for the current release.

jurgenvinju avatar Mar 30 '22 13:03 jurgenvinju

By choosing to decrease the current plugin of tm.terminal in the installation wizard's options, Rascal installs fine and the system works correctly.

jurgenvinju avatar Mar 30 '22 14:03 jurgenvinju

And also please add dependency on https://marketplace.eclipse.org/content/apt-m2e-connector

PaulKlint avatar Mar 30 '22 14:03 PaulKlint

If I remember correctly:

  • if we use a too new version of tm-terminal, we force everyone to get onto one of the more recent eclipse versions, so there's a trade-off there.
  • tm-terminal has not always been published as a separate installable component. We've had cases were the tm-terminal inside eclipse cdt was not available on any update sites (this make compiling the rascal-eclipse project complex)

Currently we are using https://download.eclipse.org/tools/cdt/releases/10.5 (see: pom.xml) for getting tm-terminal, which points to "CDT 10.5.0 for Eclipse 2021-12" we could switch to "CDT 10.6.0 for Eclipse 2022-03"?

(I'm assuming "march 2020" means "march 2022"?)

DavyLandman avatar Mar 31 '22 08:03 DavyLandman

If at all possible, I think we should have our dependency on tm-terminal as lenient as possible. I've run into problems while installing (specific versions of) CDT next to Rascal in the past due to clashing tm-terminal dependencies.

rodinaarssen avatar Mar 31 '22 08:03 rodinaarssen

We could also try https://download.eclipse.org/tools/cdt/releases/latest/ for a while? On the one hand, the problem is that we can not test for all possible future Eclipse environments, so fixing a version will always eventually lead to this issue again. On the other hand, if we use this "latest" URL, then our tests would start failing immediately (CI) if we run into a new incompatibility.

jurgenvinju avatar Mar 31 '22 08:03 jurgenvinju

It does make our builds un-reproducable. as we don't know which version of tm-terminal we were linking to a year back.

DavyLandman avatar Mar 31 '22 08:03 DavyLandman

Let's use that latest update site, and log the current minimal version we depend on in META-INF/MANIFEST.MF, like: [latest-version,)

  • if we do not list the latest version, because a new version came out, then the build will fail because latest only contains the latest version. all we have to do is update the version.
  • and, we always have a log of which version we depended on

Sounds good?

jurgenvinju avatar Mar 31 '22 08:03 jurgenvinju

all we require from our users then is to be up-to-date with the latest version of CDT. that's not so bad.

jurgenvinju avatar Mar 31 '22 08:03 jurgenvinju

I'm not against pushing people to update their eclipse, but for a long while we were careful with that.

DavyLandman avatar Mar 31 '22 08:03 DavyLandman

true. but that was when we released rascal only once a year, so the chance that rascal would work with the newest eclipse was always low. now we release continuously and often, (we can and we should) so I think we can change that.

jurgenvinju avatar Mar 31 '22 08:03 jurgenvinju

all we require from our users then is to be up-to-date with the latest version of CDT. that's not so bad.

That is (potentially) bad for ClaiR

rodinaarssen avatar Mar 31 '22 09:03 rodinaarssen

please elaborate!

jurgenvinju avatar Mar 31 '22 09:03 jurgenvinju

The class hierarchy in CDT that describes its AST might (and does) change from version to version; therefore, the version of CDT that is supported by ClaiR is fixed, imposing a requirement on the version of CDT (and thus tm-terminal) that should be installed into Eclipse. If Rascal requires a newer version, I foresee trouble.

rodinaarssen avatar Mar 31 '22 09:03 rodinaarssen

Right! it would force us to keep clair up-to-date as well. Given that we promised to do that anyway, this just makes it clear when we have to do work.

jurgenvinju avatar Mar 31 '22 09:03 jurgenvinju

Just to be clear: ClaiR currently depends on CDT 2020-03. The release schedule of Eclipse is once every three months. I don't see why we want to impose an unpredictable (potentially ranging from nothing to a full redesign) amount of work on us (well, me) that often.

What's against allowing "any" version of tm-terminal for Rascal? It's not like the thing changes a lot..

Do note that I'm not suggesting to never switch to supporting a newer version of CDT in ClaiR, I'm against being forced to do so just because three months have passed.

rodinaarssen avatar Mar 31 '22 09:03 rodinaarssen

Unfortunately, there is no way to follow "any" version of tm.terminal because they change their update-site URL with every release. So effectively we depend either on a specific version or we depend on the latest.

Clair depends on a specific version of CDT as far as I can recall?

jurgenvinju avatar Mar 31 '22 10:03 jurgenvinju