gwt-eclipse-plugin icon indicating copy to clipboard operation
gwt-eclipse-plugin copied to clipboard

Migrate to a new marketplace entry

Open niloc132 opened this issue 2 years ago • 24 comments

@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":

  • Learn if there is a way to make a shared account on marketplace.eclipse.org such that multiple maintainers may control it.
  • 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?
  • We propose hosting at https://eclipse.gwtproject.org/ as the new content site, and probably incrementing the version to v4 to be unambiguous that this is a new version, and replaces v3 going forwards. As an alternative we could use github.io hosting, but that might not work well with huge binary files.
  • Drop GWT SDK for 2.7 (and GWT 2.8.2?), add GWT 2.9, 2.10
  • Add additional maintainers to the project, I would propose other currently interested members such as @foal and @slavap.
  • Given the above, we'll create GitHub Actions or some other CI to build each commit/pr, and upload release zips automatically. We can test those, and deploy tagged releases to the eventual host.

niloc132 avatar Jun 30 '22 17:06 niloc132

@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.

slavap avatar Jun 30 '22 22:06 slavap

@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/

protoism avatar Jul 15 '22 04:07 protoism

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

OlivierC-A3d avatar Aug 23 '22 08:08 OlivierC-A3d

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.

niloc132 avatar Aug 25 '22 18:08 niloc132

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

OlivierC-A3d avatar Sep 19 '22 06:09 OlivierC-A3d

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: @.***>

foal avatar Sep 19 '22 06:09 foal

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 avatar Sep 19 '22 08:09 OlivierC-A3d

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] ^^^^^^^^^

OlivierC-A3d avatar Sep 23 '22 06:09 OlivierC-A3d

@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

slavap avatar Sep 24 '22 01:09 slavap

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

OlivierC-A3d avatar Sep 26 '22 06:09 OlivierC-A3d

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.

niloc132 avatar Sep 27 '22 13:09 niloc132

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

OlivierC-A3d avatar Sep 27 '22 15:09 OlivierC-A3d

@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 avatar Oct 01 '22 11:10 foal

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).

foal avatar Oct 02 '22 12:10 foal

@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!

slavap avatar Oct 03 '22 03:10 slavap

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

OlivierC-A3d avatar Oct 03 '22 06:10 OlivierC-A3d

@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)

foal avatar Oct 03 '22 06:10 foal

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

jnehlmeier avatar Oct 13 '22 09:10 jnehlmeier

@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

slavap avatar Oct 14 '22 00:10 slavap

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

foal avatar Oct 14 '22 05:10 foal

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

foal avatar Oct 14 '22 06:10 foal

@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:

  • "Eclipse Faceted Project Framework",
  • "Eclipse Java Web Development Tools"
  • "WST Server Adapters"

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

jnehlmeier avatar Oct 14 '22 08:10 jnehlmeier

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

  • http://keeitsi.com/software/eclipse-plugins/

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 avatar Oct 14 '22 18:10 keinhaar

@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).

slavap avatar Oct 15 '22 00:10 slavap

@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?

keinhaar avatar Oct 15 '22 15:10 keinhaar

Kudos to @keinhaar @foal for resurrecting the project


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

  • changing/upgrading dependencies
  • updating maven projects from eclipse
  • And we don't have components in project.

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.

skarzhevskyy avatar Oct 15 '22 16:10 skarzhevskyy

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:

  • http://keeitsi.com/software/eclipse-plugins/

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 :-)

protoism avatar Oct 15 '22 16:10 protoism

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

keinhaar avatar Oct 17 '22 08:10 keinhaar

@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.

slavap avatar Oct 17 '22 09:10 slavap

@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.

keinhaar avatar Oct 17 '22 12:10 keinhaar