gwt-plugins / gwt-eclipse-plugin

GWT Eclipse Plugin Documentation
http://gwt-plugins.github.io/documentation/
Eclipse Public License 1.0
113 stars 48 forks source link

Migrate to a new marketplace entry #406

Closed niloc132 closed 1 year ago

niloc132 commented 2 years ago

@protoism and I have been trying to contact @branflake2267 for months to update the marketplace entry, so that new versions of the plugin can be published, unfortunately he hasn't been available. One of the few things he was able to tell us was that he no longer had access to the http://storage.googleapis.com/gwt-eclipse-plugin/ storage, but did not follow up with us to change that storage link in the marketplace entry, or otherwise transfer control.

Without being able to update the existing entry to point to new hosting or gain access to the hosting, we seem to be left only with creating a new host and managing that going forward, updating the plugin to fix compatibility with recent versions of GWT and Eclipse itself.

We would not like to do this, as it will make it harder for existing users to discover the new plugin and know that they can update, and we would be unable to mark the old plugin as explicitly deprecated. If during the process of making a new marketplace entry we happen to gain access to the old one, we will have the choice of picking which one should be canonical going forwards, and which should be marked as deprecated.

Some suggested steps to move forward, ranging from "we don't know a lot about managing a marketplace entry" to "how can we ensure there is a path going forward to keep this up to date":

slavap commented 2 years ago

@niloc132 IMO the best way to solve this situation is "creating a new host and managing that going forward, updating the plugin to fix compatibility with recent versions of GWT and Eclipse itself". That's not going to be a problem for existing users, especially if it is marked as v4 and linked directly from https://www.gwtproject.org/download.html I'm ready to help with testing, and may be with some development, especially if I figure out how to build it properly. And your suggested steps sound right to me, thanks for doing that.

protoism commented 2 years ago

@niloc132

Learn if there is a way to make a shared account on marketplace.eclipse.org such that multiple maintainers may control it.

Looking at the marketplace submission form there are options for multiple maintainers of a plugin (btw this means we could ask Eclipse to be added to V3 as maintainers)

Understand the eclipse deployment format, ensure that simply unpacking the repo zip files to some server would be sufficient both for new releases and to keep existing ones (since it appears that artifacts.xml.xz and content.xml.zx are replaced each release, according to the current upload scripts). In other words, does building an existing gwt plugin edition for a new eclipse mean re-releasing old versions as well?

If I get it right, there's no way of uploading new versions of a plugin to an update site and keeping the older ones available. One could probably package more versions together (i.e. merge new and old) but I believe that the correct way is multiple update sites external to marketplace.

I'd try to copy what these guys did:

https://gnu-mcu-eclipse.github.io/developer/publish-procedure/

OlivierC-A3d commented 2 years ago

Hello,

As reading this post I'm a bit worried on the future of this plugin. As Gwt dev with Eclipse we're facing recurring issues regarding performance (Validating Gwt Components) as some lacks of optimisations with latest JDK, GWT.

Can we consider, as of today that this project is "dead" until you manage to reach project leader for updates on Eclipse Marketplace ? Is it possible to have Google Involved for updating storage.googleappis.com or marketplace ?

As of now we're stuck with Gwt 2.8.2, so I'm worried on your aim to drop this version as well. Upgrading SDK is not as easy since others libraries must support newer version as well as our components

niloc132 commented 2 years ago

We have "owner" access to the github project, so only the marketplace entry is "dead", barring a response from @branflake2267. Once we get the details sorted out, we will be able to publish new releases of the plugin to the marketplace, under a different name, and with more than one user having access to update it, in order to prevent this from happening again.

We're going to continue to work on this as volunteers have time, but resources are a little thin - I don't use eclipse (though am interested in helping where I can) and mostly focus my time on GWT itself when I do have free time.

OlivierC-A3d commented 2 years ago

Is it possible to install the updates without Eclipse marketplace by hand ?

foal commented 2 years ago

Yes, you can point the Eclipse to the local distribution.

S

On Mon, Sep 19, 2022 at 8:16 AM OlivierC-A3d @.***> wrote:

Is it possible to install the updates without Eclipse marketplace by hand ?

— Reply to this email directly, view it on GitHub https://github.com/gwt-plugins/gwt-eclipse-plugin/issues/406#issuecomment-1250610854, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADP3YNX2OJIY7SHRFSY3KLV7AANHANCNFSM52KB65FQ . You are receiving this because you were mentioned.Message ID: @.***>

OlivierC-A3d commented 2 years ago

Yes, you can point the Eclipse to the local distribution. S On Mon, Sep 19, 2022 at 8:16 AM OlivierC-A3d @.> wrote: Is it possible to install the updates without Eclipse marketplace by hand ? — Reply to this email directly, view it on GitHub <#406 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADP3YNX2OJIY7SHRFSY3KLV7AANHANCNFSM52KB65FQ . You are receiving this because you were mentioned.Message ID: @.>

Would it be possible to describe steps for manual install ? Do I have to build something ?

OlivierC-A3d commented 2 years ago

I tried to compile with maven (without any modification with eclipse) and it didn't work (JDK8 or 11)

[INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 08:37 min [INFO] Finished at: 2022-09-22T15:02:27+02:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:1.0.0:compile (default-compile) on project com.gwtplugins.gdt.eclipse.core: Compilation failure: Compilation failure: [ERROR] C:\Users\myname\Documents\Git\gwt-eclipse-plugin\plugins\com.gwtplugins.gdt.eclipse.core\src\com\google\gdt\eclipse\core\TypeCreator.java:[45] [ERROR] import org.eclipse.jdt.internal.corext.util.ValidateEditException; [ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [ERROR] The import org.eclipse.jdt.internal.corext.util.ValidateEditException cannot be resolved [ERROR] C:\Users\myname\Documents\Git\gwt-eclipse-plugin\plugins\com.gwtplugins.gdt.eclipse.core\src\com\google\gdt\eclipse\core\TypeCreator.java:[133] [ERROR] applyEdit(cu, edit, false, null); [ERROR] ^^^^^^^^^

slavap commented 2 years ago

@OlivierC-A3d you cannot build it with "just" bare maven, I've tried hard, it is not working that way. I believe some Eclipse "sdk" should be installed first to be able to build it. Try it as described here: https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/404#issuecomment-1170792264

OlivierC-A3d commented 1 year ago

Thanks for your reply. @niloc132 would it be possible to store the nightly build on Git to allow manual upgrade ?

niloc132 commented 1 year ago

As above, we need a tool/command that will allow the project to be built outside of eclipse, or a way to embed eclipse into a tool that CI could build - there is no nightly build for this project, and that is effectively "step one" to even producing something we could distribute automatically outside the marketplace.

I haven't had time to dig in yet, and don't have much background with writing eclipse plugins.

OlivierC-A3d commented 1 year ago

I understand. So I've a question : is there a secret flag or way to disable the "validating gwt components" each time I'm trying to save a class using gwt library ? We're experiencing slow down with Eclipse 2022-06 and I've just tried with 2022-09. Sources are compiled with JDK17 git_validating

foal commented 1 year ago

@OlivierC-A3d try this zip (2022-09 eclipse required). To be clear I not tested it at all. I am using the standard distribution with 2 patches.

https://github.com/foal/gwt-eclipse-plugin/releases/download/3.0.0.202210011321/gwt-plugin.zip

foal commented 1 year ago

I have prepared a new PR (#410). The question is - should we support the previous Eclipse versions? Starting 2022 the m2e API was changed and I do not know how to support different implementations of plugins for different target platforms (Eclipse versions).

slavap commented 1 year ago

@foal I would say old Eclipse versions may continue to use 3.0 version of plugin. So 4.0 will be for new versions of Eclipse only. Thank you for doing fixes!

OlivierC-A3d commented 1 year ago

@foal thank you, I will give a try when at home !

foal commented 1 year ago

@OlivierC-A3d - you can also try to checkout (branch DEV) https://github.com/foal/gwt-eclipse-plugin/tree/DEV and compile from command line (mvn clean install)

jnehlmeier commented 1 year ago

Hey @foal I tried installing your linked binary build using Eclipse 2022-09 (4.25.0). However Eclipse complains that it can not fulfill some requirements.

Maybe your build has some unwanted required dependencies?

Cannot complete the install because one or more required items could not be found.

  Software being installed: GWT Eclipse Plugin 3.0.0.202210011321 (com.gwtplugins.eclipse.suite.v3.feature.feature.group 3.0.0.202210011321)

  Missing requirement: GWT Eclipse Plugin 3.0.0.202210011321 (com.gwtplugins.eclipse.suite.v3.feature.feature.group 3.0.0.202210011321) requires 'org.eclipse.equinox.p2.iu; org.eclipse.mylyn.commons.ui 0.0.0' but it could not be found
slavap commented 1 year ago

@jnehlmeier Unfortunately, this plugin has a lot of obsolete dependencies. I have not tried these particular binaries yet, but with the existing plugin I have to install the following to make it work: https://github.com/gwt-plugins/gwt-eclipse-plugin/issues/405#issuecomment-1248844991

foal commented 1 year ago

@slavap @jnehlmeier I will update my PR. Really plugin doesn't required the mylyn at all.

foal commented 1 year ago

@jnehlmeier - please, check the https://github.com/foal/gwt-eclipse-plugin/releases/tag/3.0.0.202210140533

jnehlmeier commented 1 year ago

@foal When only using "Eclipse for Java Developers" the install complains about some missing WST feature/plugin. Since I did not know in which concrete extension this dependency is included I installed some additional things that I could remember the GWT plugin might needed in the past:

Could very well be that not all three are needed. With these installed the GWT Plugin could be installed as well.

keinhaar commented 1 year ago

I've setup an Update Site where my version of the plugin is hosted here:

It installs up to Eclipse-2022-09. Currently it does not include any new features, but i'm beginning to clean up some dependencies. First step was to remove the JAXB dependency from SDBG, which was only there, because of DatatypeConverter. Maybe someone will find this useful :-)

slavap commented 1 year ago

@keinhaar @foal Keep going guys, this plugin is quite needed for GWT, because not everyone wants/is able to switch to Idea. The most annoying part of this plugin is "validating GWT components" - it takes minutes to finalize on large projects, probably there is some way to optimize the performance of this stage - looks like it just goes through all *.ui.xml files without at least checking their checksum (so does not care if they really changed or not).

keinhaar commented 1 year ago

@slavap Seems like it does a lot more than just reading the *.ui.xml files. When do you face the slow build. On Eclipse startup?

skarzhevskyy commented 1 year ago

Kudos to @keinhaar @foal for resurrecting the project


For our use case we see a lot of "validating GWT components" in progress messages when

But I can't attribute the most of Eclipse refresh time just to "Validating GWT" . I did some profiling and Validating seems only just one of visible part of the full process in our case..

This enhancement does deserve attention probably in a separate thread.

protoism commented 1 year ago

hi @keinhaar what do you mean by "Up to 2022-09"? Any idea about previous versions? (Actually I see here http://keeitsi.com/software/eclipse-plugins/ 2022-06 up)

How does your version compare to foal's one? (https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/410, https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/409, https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/404 )

I see this "nobuto exware", which is... a build system? Do you intend to contribute to the plugin?

I've setup an Update Site where my version of the plugin is hosted here:

It installs up to Eclipse-2022-09. Currently it does not include any new features, but i'm beginning to clean up some dependencies. First step was to remove the JAXB dependency from SDBG, which was only there, because of DatatypeConverter. Maybe someone will find this useful :-)

keinhaar commented 1 year ago

Hi @protoism, my version will install in all versions between Eclipse-2021-12 and Eclipse-2022-09. Older versions may fail, because i'm currently updating library dependencies to current versions.

I don't know the exact differences to foal's version. I'm currently cleaning up some things like library dependencies. I've also removed the mylyn dependency and support 2022-09. Additonally i have removed the jaxb libraries from sdbg, that have been added to solve the DatatypeConverter bug some years ago. I solved the problem by just removing the DatatypeConverter dependency.

Currently i don't support the tests.

The main difference may be the build. As you mentioned, nobuto is a sort of a build system. It's building much faster then maven, because it does not download the whole internet :-). And it does not use any other syntax then JAVA.

I'm willing to contribute to the project if i can, and if the project is alive again (update-site, issues accepted, fixed and closed, correct link on the GWT homepage a.s.o.) Until then, i need a working update site.

hi @keinhaar what do you mean by "Up to 2022-09"? Any idea about previous versions? (Actually I see here

slavap commented 1 year ago

@keinhaar I don't see any PR from you. It would be nice to share your changes to all, also I would really appreciate the clear building instructions, because I've tried and was not able to build existing version of plugin.

keinhaar commented 1 year ago

@slavap Sorry, but I'm not familar with pull requests. Seems like i can only create a PR with all of my changes at once.

If you use my fork, you could simply call "sh nobuto.sh" (linux) oder "nobuto.bat" (windows) to build the plugin. After the command completes, you will find the update site in the folder "update-site". This will not contain SDBG. I've created a composite update site on http://keeitsi.com/software/eclipse-plugins/ to include gwt-eclipse-plugin and sdbg.

slavap commented 1 year ago

@keinhaar Thanks, got it, will try your fork. Though never heard about nobuto before.

slavap commented 1 year ago

@keinhaar Unfortunately, I'm unable to build on Windows, getting the following error:

Build Subproject: com.gwtplugins.gwt.eclipse.wtp.maven
plugins\com.gwtplugins.gwt.eclipse.wtp.maven\src\com\google\gwt\eclipse\wtp\maven\WtpMavenProjectConfigurator.java:35: error: package maven.compatibility does not exist
import maven.compatibility.ProjectConfigurationRequestWrapper;
                          ^
plugins\com.gwtplugins.gwt.eclipse.wtp.maven\src\com\google\gwt\eclipse\wtp\maven\WtpMavenProjectConfigurator.java:48: error: cannot find symbol
    Model pom = ProjectConfigurationRequestWrapper.getModel(request);
                ^
  symbol:   variable ProjectConfigurationRequestWrapper
  location: class WtpMavenProjectConfigurator
plugins\com.gwtplugins.gwt.eclipse.wtp.maven\src\com\google\gwt\eclipse\wtp\maven\WtpMavenProjectConfigurator.java:52: error: cannot find symbol
      IProject eclipseProject = ProjectConfigurationRequestWrapper.getProject(request);
                                ^
  symbol:   variable ProjectConfigurationRequestWrapper
  location: class WtpMavenProjectConfigurator
3 errors
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at de.exware.nobuto.Main.main(Main.java:67)
Caused by: java.lang.RuntimeException: Compile failed
        at de.exware.nobuto.java.JavaBuilder.compile(JavaBuilder.java:161)
        at de.exware.nobuto.java.JavaBuilder.compile(JavaBuilder.java:130)
        at sub.AbstractGWTBuild.compile(AbstractGWTBuild.java:185)
        at sub.GwtWtpMavenBuild.compile(GwtWtpMavenBuild.java:18)
        at sub.AbstractGWTBuild.dist(AbstractGWTBuild.java:39)
        at Build.dist(Build.java:58)
        ... 5 more

Though I'm getting some jar in update-site folder, may be that's enough :-) image

keinhaar commented 1 year ago

@slavap My fault. Sorry. I implemented that yesterday, and did not notice, that git was ignoring all jar files, because somebody added "*.jar" to ".gitignore" some years ago. I've fixed it and tried again on Windows 10. Please update, and try again. By the way, we should really move this discussion somewhere else. Maybe a new issue in my fork?

foal commented 1 year ago

@slavap if you want to build with maven you can try to apply my PRs (or check out https://github.com/foal/gwt-eclipse-plugin/tree/DEV) and use simple mvn clean install

If you need to build version of plugin for Eclipse before 2022-09 do not apply the https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/409

slavap commented 1 year ago

@keinhaar I was able to build successfully now. Thank you! Quick question - what is analog of "mvn clean" in nobuto?

@foal @keinhaar I think you should cooperate with future development/fixing - GWT community resources are very limited. And not so many people care about Eclipse (which is really bad IMO). Now we have a working plugin and working update site, so Eclipse users can just use url and get GWT plugin - that's absolutely awesome!

keinhaar commented 1 year ago

@slavap the analog command is "nobuto.bat -t clean"

@foal @slavap Cooperation would be great, but that would need somebody who is able and willing to merge patches into the main repo here. And i personally need to find out how to merge or make PRs for single commits :-)

keinhaar commented 1 year ago

@niloc132 wouldn't it make sense to close all the version support issues like eclipse-m2e/m2e-core#407, eclipse-m2e/m2e-core#405, eclipse-m2e/m2e-core#401, eclipse-m2e/m2e-core#393 a.s.o? We have working versions for the last 4 Eclipse releases, and i doubt, that someone uses much older versions.

niloc132 commented 1 year ago

Likely we should close issued related to old Eclipse versions, yes.

Working CI is the next step to move this repo forwards - I'm aware that some people are able to build this repo directly, though I haven't seen how it is done yet. If we need to change build systems, so be it, but let's land that change with a working GitHub Actions configuration, then move on to building for a current Eclipse version, and the deploy it - I think that's where we still stand?

keinhaar commented 1 year ago

yes, i think that's where we are. @foal has a working maven build. but it currently only supports actual eclipse version. my goal is a version that works also with older versions. i've added a maven compatibility layer to achieve that. maybe we can integrate both? also, because i'm now the maintainer of sdbg, we could add a new version of sdbg. i've recently added edge support, and i'm working on firefox support too.

slavap commented 1 year ago

@keinhaar SDBG by the way is quite important as well, glad you took it. Chrome debugging is still not so convenient.

protoism commented 1 year ago

I setup a simple CI on a gwt-eclipse-plugin fork (simply master + foal patches). It seems to be working beautifully, but there are a couple of thing to fix (see later)

Here the output: https://github.com/foosoftsrl/gwt-eclipse-plugin/releases/tag/v3.0.1

Here the (super simple!) CI script: https://github.com/foosoftsrl/gwt-eclipse-plugin/blob/master/.github/workflows/build.yml

And here a run: https://github.com/foosoftsrl/gwt-eclipse-plugin/actions/runs/3493577242

What to fix:

Note: I Used java17 to compile, it seemed to be necessary

I'm looking forward to have the CI added to main repo

keinhaar commented 1 year ago

Off Topic, but does anybody know how to compile without assertions switched on? If i use right mouseclick gwt-compile, no assertions are in the code, but in developer mode i don't see how to switch them off. I'm working on Firefox Support for the debugger, and got it as far as stopping on breakpoints, but after resume, firefox logs lots of errors coming from assertions in the Impl class. Maybe thats an Firefox bug, but i cant change firefox. So i'm trying to work around. Any help would be welcome.

niloc132 commented 1 year ago

Dev mode always has assertions enabled - at this time it is not configurable. That is set in GWT itself, and isn't specific to the eclipse plugin.

keinhaar commented 1 year ago

@niloc132 thanks for the answer. seems like firefox debugging support will then be impossible without gwt project or firefox fixing the problem. BAD. all that work for nothing :-(

protoism commented 1 year ago

Dear all, I have prepared a perhaps too simple CI script, but it seems to be working. It is based on @foal patches, plus a small change, as on my setup (Eclipse 2022-09 + gwt2.10 Sdk + java 17 jre) I do have some problems!

So... I need some help.

protoism commented 1 year ago

The xml error seems now fixed. I'm using the plugin and I see no regressions.

Anyone willing to test?

The CI built update repo is here:

https://github.com/foosoftsrl/gwt-eclipse-plugin/actions/runs/3625204145

@foal Do you feel like verifying that these two patches are correct? They should apply cleanly to your DEV branch, I believe.

https://github.com/foosoftsrl/gwt-eclipse-plugin/commit/76dff9110366dc98e61b045a731ee87caf06cb74 https://github.com/foosoftsrl/gwt-eclipse-plugin/commit/8bbeb73bd74e7ac6f608663cac7b694d4c174f8c

@niloc132 Now we have a lot of PRs, last one is mine: https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/415. Possibly not very elegant... code patches + CI. I believe we are good to go, possibly on a develop branch if we want to be extra-conservative

foal commented 1 year ago

@protoism I will check it over weekend

protoism commented 1 year ago

Thanks @foal. And.. compliments for all the (good!) work, I hope more is coming ;-)

keinhaar commented 1 year ago

@niloc132 thanks for the answer. seems like firefox debugging support will then be impossible without gwt project or firefox fixing the problem. BAD. all that work for nothing :-(

Because @niloc132 found a workaround for my firefox debugging problem, firefox support in SDBG can now happen. Still needs a lot of cleanup, but stopping on breakpoints and resuming works now, if the workaround is added to the debugged project.

foal commented 1 year ago

@protoism I have applied your changes to my fork and they work. Thank you!

I created separate PR https://github.com/gwt-plugins/gwt-eclipse-plugin/pull/418 Not sure that it is correct because you are an author. Please let me know if it is Ok for you.

Also, I have updated my PR eclipse-m2e/m2e-core#410 due to error in the tycho-maven-plugin