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

Provide Quick-Fix to enable execution if not connector is found #1190

Open
laeubi opened this issue Jan 9, 2023 · 45 comments
Open

Provide Quick-Fix to enable execution if not connector is found #1190

laeubi opened this issue Jan 9, 2023 · 45 comments
Labels
usability Improvements that can give a better usability or user experience

Comments

@laeubi
Copy link
Member

laeubi commented Jan 9, 2023

Currently if a mapping is missing, the user is presented with the following options:

grafik

This only let the user find a connector or disable execution, but actually the user probably want to configure it in a way to execute the mapping using <?m2e execute onConfiguration?> (or incremental) as described here #1013 (comment))

@laeubi laeubi added the usability Improvements that can give a better usability or user experience label Jan 9, 2023
@HannesWell
Copy link
Contributor

This only let the user find a connector or disable execution, but actually the user probably want to configure it in a way to execute the mapping using <?m2e execute onConfiguration?> (or incremental) as described here #1013 (comment))

Yes that would be good. 👍🏽 I especially like the processing-instruction based mappings because they are far less verbose and more focused.
And there is actually even a third option: <?m2e execute ?>, which executes only on full builds. For completeness we could consider to add a corresponding argument onFullBuild, to have onConfiguration, onFullBuild onIncremental. Then onIncremental should be replaced/aliased by onIncrementalBuild to only have onConfiguration, onFullBuild onIncrementalBuild?

@laeubi
Copy link
Member Author

laeubi commented Jan 10, 2023

I think "incremental" is even the same as "full" this is a bit confusing and eclipse itself actually has a clean build option so actually it would be good to have:

  • configure
  • build
  • clean

By the way is there any configuration / code reference on this part of m2e? I haven't found one just the usual lifecyclemapping references, so maybe we can have at least a small wiki page describing this.

@HannesWell
Copy link
Contributor

HannesWell commented Jan 10, 2023

It is indeed not very clear.

There is a release note from long ago:
https://www.eclipse.org/m2e/documentation/release-notes-17.html#new-syntax-for-specifying-lifecycle-mapping-metadata
Nevertheless describing this in some documentation (not only release notes) would be better to find. But I think we should not start a wiki when we have a web-site. This could happen as part of #831

That doc tells something different than I thought would happen if one only has execute.
However, the clean option is a good idea. But couldn't M2E just be smart and run mojos marked to execute that are bound to the clean-lifecycle/phase in the clean build instead of the full/incremental build? Then there is no need for an extra option.

Nevertheless I think it can be good to have an execution only on full builds for things that are too heavy weight to execute on incremental, but should happen more often than only on configuration/initialization. E.g. build some documentation.

If possible we could add some details in the view, which pops up when you hover over elements in the pom-editor, that describes the processing-instruction.

@dstango
Copy link

dstango commented Mar 17, 2023

I'd like to second using the processing-instructions. Is this issue sufficient to tackle it, or does it need a separate issue to request changing the pom.xml-modifications by the existing quick fix to processing-instructions?

@laeubi
Copy link
Member Author

laeubi commented Mar 17, 2023

@dstango yes this issue can / should be used for this and using processing instructions seems most "lightweight" if added to the pom.

@dstango
Copy link

dstango commented Mar 17, 2023

@laeubi sounds good. It also prevents the warning maven usually prints because of the non-existent lifecyle-mapping plugin, which has never been fixed: https://bugs.eclipse.org/bugs/show_bug.cgi?id=367870

Actually I think it would be great to have an additional quick-fix in the pom-editor to transform existing lifecycle-mapping-entries into the appropriate processing-instructions.
And if I'd dream on I'd even wish for a deprecation warning when the lifecycle-mapping is used n the pom ... (unless it could perform other functions that I'm not aware of.)

@laeubi
Copy link
Member Author

laeubi commented Mar 17, 2023

@dstango dreams can come true with just opening a PR :-D

@dstango
Copy link

dstango commented Mar 17, 2023

hehe ... ;-)
@laeubi Any hint/link how to easily setup an environment to be able to test and contribute to this project/module?

I contributed last year a little something to the eclipse platform, but when everything moved from gerrit to github I got lost on the way... so I guess I'd need to start all over with a current setup.

@laeubi
Copy link
Member Author

laeubi commented Mar 17, 2023

@dstango
Copy link

dstango commented Mar 17, 2023

@laeubi thanks, I'll check it out

@dstango
Copy link

dstango commented Mar 17, 2023

@laeubi so I set it up (yet skipped RCPTT for the moment, hope that's okay), and tried m2e-core--build, resulting in:
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-baseline-plugin:4.0.0-SNAPSHOT:verify (baseline-check) on project org.eclipse.m2e.archetype.common: Baseline problems found! Project version: 3.2.103.20230102-2253, baseline version: 3.2.103.20230102-2253, suggested version: 3.2.104

Where can I go from here?

PS: I tried to change the version of org.eclipse.m2e.archetype.common/pom.xml to 3.2.104-SNAPSHOT, which resulted in my build running longer, but ending up in a similar error message for some other pom ... so this seems to be like rabbit hole to me ... ;-)

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

@dstango in the log there should be a table mentioning why a version change is suggested, can you take a look here and maybe provide the file in question as a zipped item here?

If you change the version in org.eclipse.m2e.archetype.common make sure you adjust it as well in the pom.xml as well where it is referenced as a dependency.

@dstango
Copy link

dstango commented Mar 18, 2023

@laeubi thatnks, here's the message table:

 ┌──────────────────────────┬──────────────────────────┬──────────────────────────┬─────────────────────────┬─────────────────────────┬─────────────────────────┐
 │Delta                     │Type                      │Name                      │Project Version          │Baseline Version         │Suggested Version        │
 ├──────────────────────────┼──────────────────────────┼──────────────────────────┼─────────────────────────┼─────────────────────────┼─────────────────────────┤
 │MICRO                     │RESOURCES                 │org.eclipse.m2e.archetype.│3.2.103                  │3.2.103                  │3.2.104                  │
 │                          │                          │common_3.2.103.20230102-22│                         │                         │                         │
 │                          │                          │53.jar                    │                         │                         │                         │
 ├──────────────────────────┼──────────────────────────┼──────────────────────────┴─────────────────────────┴─────────────────────────┴─────────────────────────┤
 │..CHANGED                 │RESOURCE                  │about.html                                                                                              │
 ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
 │different                                                                                                                                                     │
 └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 C:\Java\eclipse-contribution\m2e-master\git\m2e-core\m2e-maven-runtime\org.eclipse.m2e.archetype.common [0:0]: Baseline problems found! Project version: 3.2.103.20230102-2253, baseline version: 3.2.103.20230102-2253, suggested version: 3.2.104

here's the zipped jar file:
org.eclipse.m2e.archetype.common_3.2.103.20230102-2253.zip

If there were a change in the about.html file it should show up in the git log, shouldn't it? I can only find a last change in 2020.

A little above the table there are some warnings - don't know if they are of interest:

[INFO] --- bnd-maven-plugin:6.4.0:bnd-process (prepare-jar-with-manifest) @ org.eclipse.m2e.archetype.common ---
[WARNING] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\m2e-maven-runtime\org.eclipse.m2e.archetype.common\pom.xml [0:0]: Host org.eclipse.m2e.maven.runtime=bundle-version="[3.0.0,4.0.0)" for this fragment/require bundle cannot be found on the classpath
[WARNING] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\m2e-maven-runtime\org.eclipse.m2e.archetype.common\pom.xml [0:0]: Host com.ibm.icu= for this fragment/require bundle cannot be found on the classpath
[WARNING] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\m2e-maven-runtime\org.eclipse.m2e.archetype.common\pom.xml [0:0]: Export org.apache.maven.archetype.common,  has 1,  private references [org.jdom2]
[WARNING] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\m2e-maven-runtime\org.eclipse.m2e.archetype.common\pom.xml [0:0]: Export org.apache.maven.archetype.common.util,  has 2,  private references [org.jdom2, org.jdom2.output]
[WARNING] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\ANONYMOUS [0:0]: Invalid package name: 'META-INF.plexus' in Export-Package

Regarding:

If you change the version in org.eclipse.m2e.archetype.common make sure you adjust it as well in the pom.xml as well where it is referenced as a dependency.

I only tried to change the version in the pom.xml - can't find it anywhere else. Where exactly else should I look? I only found MANIFEST.MF-entries with version ranges, that seemed to match.

I found one reference to org.eclipse.m2e.archetype.common, though and changed that to 3.2.104-SNAPSHOT. The I run into the next issue with a new table:

[ERROR] ┌──────────────────────────┬──────────────────────────┬──────────────────────────┬─────────────────────────┬─────────────────────────┬─────────────────────────┐
[ERROR] │Delta                     │Type                      │Name                      │Project Version          │Baseline Version         │Suggested Version        │
[ERROR] ├──────────────────────────┼──────────────────────────┼──────────────────────────┼─────────────────────────┼─────────────────────────┼─────────────────────────┤
[ERROR] │MICRO                     │RESOURCES                 │org.eclipse.m2e.maven.runt│3.8.701                  │3.8.701                  │3.8.702                  │
[ERROR] │                          │                          │ime_3.8.701.20230209-1606.│                         │                         │                         │
[ERROR] │                          │                          │jar                       │                         │                         │                         │
[ERROR] ├──────────────────────────┼──────────────────────────┼──────────────────────────┴─────────────────────────┴─────────────────────────┴─────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │META-INF/sisu/javax.inject.Named                                                                        │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │about.html                                                                                              │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[ERROR] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\m2e-maven-runtime\org.eclipse.m2e.maven.runtime [0:0]: Baseline problems found! Project version: 3.8.701.20230209-1606, baseline version: 3.8.701.20230209-1606, suggested version: 3.8.702

Of course I could try to manually tweak with these versions ad infinitum, but I wonder if I'm doing something basic wrong here, as I somehow expected cloning the master branch should result in a compilable build ... ;-)

Next thing I'm gonna try is simply going back in git to some released version like 2.2.1 and see if that's buildable.

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

We have some issues in the baseline checks regarding windows line endings recently, I'll check that!

@dstango
Copy link

dstango commented Mar 18, 2023

@laeubi thank you! And sorry for hijacking this issue with my build issues ...

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

@dstango no problem, but I would need your local files (about.html & META-INF/sisu/javax.inject.Named) as a zip to better understand the issue not the jar file :-)

@dstango
Copy link

dstango commented Mar 18, 2023

I reverted to the original versions and this is the whole folder of org.eclipse.m2e.archetype.common:

org.eclipse.m2e.archetype.common.zip

Can't find the META-INF/sisu/javax.inject.Named though (probably will only show up if I fiddle with the versions first and do another build?!?)

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

Yes it should be generated during the build.

@dstango
Copy link

dstango commented Mar 18, 2023

As you mentioned line endings I tried to re-clone the repository with autocrlf=false:

git clone -c core.autocrlf=false https://github.com/eclipse-m2e/m2e-core.git

... but that didn't help :-(.

So I went back to a manual change of that version 3.8.701-SNAPSHOT -> 3.8.702-SNAPSHOT in *.archetype.common, to get to sisu's name ;-). So here's the zipped target-directory (I removed some jars, as github complained the file being too big) to give you some context around:

org.eclipse.m2e.maven.runtime-target.zip

@dstango
Copy link

dstango commented Mar 18, 2023

BTW: Wikipedia has something to tell about sisu -- https://en.wikipedia.org/wiki/Sisu:

Sisu is extraordinary determination in the face of extreme adversity, and courage that is presented typically in situations where success is unlikely. It expresses itself in taking action against the odds, and displaying courage and resoluteness in the face of adversity; in other words, deciding on a course of action, and then adhering to it even if repeated failures ensue. It is in some ways similar to equanimity, though sisu entails an element of grim stress management.

I don't know why this somehow seems to fit quite well :-P ...

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

This should hopefully be fixed by this PR:

So we just need to be patient until it is merged and a new snapshot is there (usually about 3 hrs ...)

@HannesWell
Copy link
Contributor

Actually I think it would be great to have an additional quick-fix in the pom-editor to transform existing lifecycle-mapping-entries into the appropriate processing-instructions.

That would be great. It would allow to make changes like apache/mina-sshd#337 automatically.
The conversion could also take the workspace setting into account about the default behavior for not mapped life-cycles.

Thinking about that. Maybe we should add another m2e-processing instruction that can be placed at top level of a project pom that specifies the default execution behavior in that case? This would simplify the case were non default behavior is wanted.

And if I'd dream on I'd even wish for a deprecation warning when the lifecycle-mapping is used n the pom ... (unless it could perform other functions that I'm not aware of.)

AFAICT there is not much more relevant possible, but it would be good to verify this when working on that feature. If you indeed fine something, we could also consider to enhance the processing-instructions.
Here is some documentation about the mappings: https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html
But you probably have to check the code to find out how it is working exactly now.

@dstango
Copy link

dstango commented Mar 18, 2023

This should hopefully be fixed by this PR:

So we just need to be patient until it is merged and a new snapshot is there (usually about 3 hrs ...)

thank you! I'll try again later! :-)

@dstango
Copy link

dstango commented Mar 18, 2023

@laeubi looks like the fix might be blocked:
https://github.com/eclipse-tycho/tycho/pull/2258/checks?check_run_id=12100750131

I tried a rebuild with update of dependencies, and run into the same issue

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

It is now merged, but will take some time unless a new snapshot build is available:

https://ci.eclipse.org/tycho/job/tycho-github/job/master/

@dstango
Copy link

dstango commented Mar 18, 2023

ah, cool. Thanks!
BTW: On what timezone does Mr Jenkins Tycho live? Looks like US eastern time or something?

@dstango
Copy link

dstango commented Mar 18, 2023

the new snapshot build seems to be available, and the build progressed some more.

[ERROR] ┌──────────────────────────┬──────────────────────────┬──────────────────────────┬─────────────────────────┬─────────────────────────┬─────────────────────────┐
[ERROR] │Delta                     │Type                      │Name                      │Project Version          │Baseline Version         │Suggested Version        │
[ERROR] ├──────────────────────────┼──────────────────────────┼──────────────────────────┼─────────────────────────┼─────────────────────────┼─────────────────────────┤
[ERROR] │MICRO                     │RESOURCES                 │org.eclipse.m2e.model.edit│2.0.200                  │2.0.200                  │2.0.201                  │
[ERROR] │                          │                          │-2.0.200-SNAPSHOT.jar     │                         │                         │                         │
[ERROR] ├──────────────────────────┼──────────────────────────┼──────────────────────────┴─────────────────────────┴─────────────────────────┴─────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │Header.javajetinc                                                                                       │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │model/Class.javajet                                                                                     │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/ListAdapter.class                                            │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/ModelObjectAdapter.class                                     │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/PropertiesAdapter.class                                      │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/SSESyncResource$DocumentAdapter.class                        │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/SSESyncResource.class                                        │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/TranslatorAdapter.class                                      │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/edit/pom/translators/ValueUpdateAdapter.class                                     │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/pom/pom.ecore                                                                     │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/pom/pom.genmodel                                                                  │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │org/eclipse/m2e/model/pom/pom.xsd2ecore                                                                 │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] ├──────────────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │src-xsd/org/eclipse/m2e/model/pom/pom.genmodel                                                          │
[ERROR] ├──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │different                                                                                                                                                     │
[ERROR] └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[ERROR] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\org.eclipse.m2e.model.edit [0:0]: Baseline problems found! Project version: 2.0.200.20230130-0743, baseline version: 2.0.200.20230130-0743, suggested version: 2.0.201

Do you need any more zipped files? Or are the samples sufficient to probably add some more filenames/extensions to TextComparator?

@dstango
Copy link

dstango commented Mar 18, 2023

I guess we might run into some more surprises, considering the number of bundles left:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] M2E - Maven runtime bundles 2.1.0-SNAPSHOT ......... SUCCESS [  1.949 s]
[INFO] M2E Maven Archetype Common 3.2.103-SNAPSHOT ........ SUCCESS [  6.956 s]
[INFO] M2E Embedded Maven Runtime (includes Incubating components) 3.8.701-SNAPSHOT SUCCESS [ 15.155 s]
[INFO] Maven Integration for Eclipse (root) 2.1.0-SNAPSHOT  SUCCESS [  0.034 s]
[INFO] [target] m2e-target-platform 2.1.0-SNAPSHOT ........ SUCCESS [  0.007 s]
[INFO] [bundle] M2E Maven Project Model Edit 2.0.200-SNAPSHOT FAILURE [ 17.376 s]
[INFO] Maven Integration for Eclipse Core Plug-in 2.0.7-SNAPSHOT SKIPPED
[INFO] [bundle] M2E Maven Integration for Eclipse UI 2.0.4-SNAPSHOT SKIPPED
[INFO] [bundle] M2E Launching 2.0.400-SNAPSHOT ............ SKIPPED
[INFO] [bundle] M2E JDT Integration 2.0.5-SNAPSHOT ........ SKIPPED
[INFO] [bundle] M2E JDT Integration UI 2.0.200-SNAPSHOT ... SKIPPED
[INFO] [bundle] M2E Refactoring 2.0.300-SNAPSHOT .......... SKIPPED
[INFO] [bundle] M2E Marketplace Discovery 2.0.200-SNAPSHOT  SKIPPED
[INFO] [bundle] M2E Maven POM File Editor 2.0.300-SNAPSHOT  SKIPPED
[INFO] [bundle] M2E Source Code Management 2.0.200-SNAPSHOT SKIPPED
[INFO] [bundle] M2E Maven Profiles Management 2.1.1-SNAPSHOT SKIPPED
[INFO] [bundle] M2E Maven Profiles Management UI 2.0.200-SNAPSHOT SKIPPED
[INFO] [bundle] M2E Source Lookup Core 2.0.2-SNAPSHOT ..... SKIPPED
[INFO] [bundle] M2E Binary Project Core 2.1.100-SNAPSHOT .. SKIPPED
[INFO] [bundle] M2E Binary Project UI 2.0.0-SNAPSHOT ...... SKIPPED
[INFO] [bundle] M2E Source Lookup UI 2.0.200-SNAPSHOT ..... SKIPPED
[INFO] M2E Maven POM File Editor (Wild Web Developer, LemMinX, LS) 2.0.2-SNAPSHOT SKIPPED
[INFO] [bundle] M2E PDE Integration 2.0.300-SNAPSHOT ...... SKIPPED
[INFO] [bundle] M2E PDE Integration UI 2.0.200-SNAPSHOT ... SKIPPED
[INFO] [bundle] M2E PDE Connector 2.1.2-SNAPSHOT .......... SKIPPED
[INFO] [bundle] M2E JDT Annotation Processing Configurator Core 2.2.0-SNAPSHOT SKIPPED
[INFO] [bundle] M2E JDT Annotation Processing Configurator UI 2.0.300-SNAPSHOT SKIPPED
[INFO] [bundle] m2e connector for the mavenarchiver and pom properties 2.0.300-SNAPSHOT SKIPPED
[INFO] [bundle] M2E Testing Helpers 2.0.3-SNAPSHOT ........ SKIPPED
[INFO] [bundle] M2E Logback Appender and Configuration 2.1.100-SNAPSHOT SKIPPED
[INFO] [feature] M2E - POM Editor using LemMinX language server (includes Incubating components) 2.0.3-SNAPSHOT SKIPPED
[INFO] [feature] M2E - Maven Integration for Eclipse 2.2.1-SNAPSHOT SKIPPED
[INFO] [feature] M2E - SLF4J over Logback Logging 2.1.1-SNAPSHOT SKIPPED
[INFO] [feature] M2E - PDE Integration 2.2.0-SNAPSHOT ..... SKIPPED
[INFO] [feature] M2E - Complete Development Kit 2.2.2-SNAPSHOT SKIPPED
[INFO] Maven Integration for Eclipse Repository 2.1.0-SNAPSHOT SKIPPED
[INFO] [test-bundle] M2E Maven Integration for Eclipse Core Tests 2.0.0-SNAPSHOT SKIPPED
[INFO] M2E Maven Integration for Eclipse UI Tests 2.0.1-SNAPSHOT SKIPPED
[INFO] [test-bundle] M2E Binary Project Core Tests 2.0.1-SNAPSHOT SKIPPED
[INFO] [test-bundle] Tests for m2e multi-page editor 2.0.0-SNAPSHOT SKIPPED
[INFO] [test-bundle] M2E Maven POM File Editor using Wild Web Developer, Lemminx and Maven LS extension Tests 2.0.0-SNAPSHOT SKIPPED
[INFO] [test-bundle] M2E JDT Integration Tests 2.0.0-SNAPSHOT SKIPPED
[INFO] [test-bundle] M2E Maven Integration for Eclipse Profiles Core Tests 2.0.0-SNAPSHOT SKIPPED
[INFO] [test-bundle] m2e-apt Tests Plug-in 2.0.0-SNAPSHOT . SKIPPED
[INFO] M2E PDE Connector Tests 1.0.0-SNAPSHOT ............. SKIPPED
[INFO] [aggregator] products 2.1.0-SNAPSHOT ............... SKIPPED
[INFO] [product] M2Eclipse IDE 2.0.0 ...................... SKIPPED
[INFO] M2E - RCPTT Integration tests 2.1.0-SNAPSHOT ....... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:11 min
[INFO] Finished at: 2023-03-18T17:14:08+01:00
[INFO] ------------------------------------------------------------------------

Please let me know if I can support in decrease the number of roundtrips necessary to catch the variations, if I can do that easily.

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

I'll try to look into those as well, for the class file changes, can you tell what java version+vendor you used for compilation?

Usually its better to start "from the top" even though its a bit slower it prevents from getting some false positives that are a result of the previous failure.

@dstango
Copy link

dstango commented Mar 18, 2023

thanks. I think this should give you all information:

Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)�[m
Maven home: C:\Java\eclipse-contribution\m2e-master\git\m2e-core\EMBEDDED
Java version: 17.0.4.1, vendor: Azul Systems, Inc., runtime: C:\Program Files\Zulu\zulu-17
Default locale: de_DE, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

I can try some other version, if you want me to. Just tell me which.

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

Thanks I'll try to investigate on this and let you know when you can retry the build.

This reminds me that @HannesWell also wanted to enable a windows build, if it becomes to complicated to get win/linux equal we can even think about disabling the baseline check for windows all together ... but first let us see how far we can get.

@laeubi
Copy link
Member Author

laeubi commented Mar 18, 2023

@HannesWell can you tell what these *.javajetinc are about? I also wonder about the *.ecore and *.genmodel do they really meant to be part of the binary distribution?

@dstango
Copy link

dstango commented Mar 18, 2023

@laeubi thank you!!!

@HannesWell
Copy link
Contributor

his reminds me that @HannesWell also wanted to enable a windows build, if it becomes to complicated to get win/linux equal we can even think about disabling the baseline check for windows all together ... but first let us see how far we can get.

That's right. I started this in #1163, where you can also see the issues with building on windows (not only the baseline but also the GH runners themself).

@HannesWell can you tell what these *.javajetinc are about? I also wonder about the *.ecore and *.genmodel do they really meant to be part of the binary distribution?

I believe that the entire templates in the m2e.model.edit Plugin can actually be removed. I started a while ago, but it staled. But I can prioritize this in the next days.

Regarding the ecore and genmodel files, that depends. If they are registered in an extension so that downstream consumers can use that to generate models based on that model, then yes they have to be in the binary artifact. And least for the genmodel in m2e.model.edit I see such registration. And according to the build.properties only the genmodel is binary included.

@laeubi
Copy link
Member Author

laeubi commented Mar 19, 2023

If it is inside a source folder it gets included regardless of bin includes.

@laeubi
Copy link
Member Author

laeubi commented Mar 19, 2023

Next round of optimization / aliasing:

for the class-changes I have no good explanation yet, but just in case its the only change left then I think we can just increase the minor version here ....

@laeubi
Copy link
Member Author

laeubi commented Mar 19, 2023

I just checked and get the same baseline problem under Linux and with the current source of m2e, so something seem to have changed in the compilation that results in different bytecode here :-\

@laeubi
Copy link
Member Author

laeubi commented Mar 19, 2023

@HannesWell I now have locally disabled the baseline-mojo, but the p2-plugin complains as well:

[INFO] --- tycho-p2-plugin:4.0.0-SNAPSHOT:p2-metadata (p2-metadata) @ org.eclipse.m2e.model.edit ---
[INFO] Adding repository https://download.eclipse.org/technology/m2e/snapshots/latest
[INFO] Adding repository https://download.eclipse.org/technology/m2e/snapshots/latest
[INFO] Artifact comparison detailed log directory /home/christoph/git/laeubi/m2e-core/org.eclipse.m2e.model.edit/target/artifactcomparison
[WARNING] MavenProject: org.eclipse.m2e:org.eclipse.m2e.model.edit:2.0.200-SNAPSHOT @ /home/christoph/git/laeubi/m2e-core/org.eclipse.m2e.model.edit/.tycho-consumer-pom.xml: baseline and build artifacts have same version but different contents
   no-classifier: different
      org/eclipse/m2e/model/edit/pom/translators/ListAdapter.class: different
      org/eclipse/m2e/model/edit/pom/translators/ModelObjectAdapter.class: different
      org/eclipse/m2e/model/edit/pom/translators/PropertiesAdapter.class: different
      org/eclipse/m2e/model/edit/pom/translators/SSESyncResource$DocumentAdapter.class: different
      org/eclipse/m2e/model/edit/pom/translators/SSESyncResource.class: different
      org/eclipse/m2e/model/edit/pom/translators/TranslatorAdapter.class: different
      org/eclipse/m2e/model/edit/pom/translators/ValueUpdateAdapter.class: different

[INFO] MavenProject: org.eclipse.m2e:org.eclipse.m2e.model.edit:2.0.200-SNAPSHOT @ /home/christoph/git/laeubi/m2e-core/org.eclipse.m2e.model.edit/.tycho-consumer-pom.xml
    The main artifact has been replaced with the baseline version.
    The following attached artifacts have been replaced with the baseline version: [sources]

[INFO] 
[INFO] --- tycho-p2-extras-plugin:4.0.0-SNAPSHOT:compare-version-with-baselines (check-no-version-regression) @ org.eclipse.m2e.model.edit ---
[INFO] Adding repository https://download.eclipse.org/technology/m2e/releases/latest

@laeubi
Copy link
Member Author

laeubi commented Mar 19, 2023

@dstango unless we have sorted this out I would suggest to edit m2e-core/m2e-parent/pom.xml and remove the

<plugin>
	<groupId>org.eclipse.tycho</groupId>
	<artifactId>tycho-baseline-plugin</artifactId>
	<version>${tycho-version}</version>
	<executions>
		<execution>
			<id>baseline-check</id>
			<goals>
				<goal>verify</goal>
			</goals>
			<phase>package</phase>
			<configuration>
				<baselines>
					<repository>
						<id>baseline-repo</id>
						<url>https://download.eclipse.org/technology/m2e/releases/latest/</url>
					</repository>
				</baselines>
				<ignores>
					<ignore>META-INF/maven/*/pom.xml</ignore>
					<ignore>META-INF/maven/*/pom.properties</ignore>
					<ignore>OSGI-INF/*</ignore>
					<ignore>META-INF/ECLIPSE_.RSA</ignore>
					<ignore>META-INF/ECLIPSE_.SF</ignore>
					<ignore>jars/*.jar</ignore>
					<ignore>Eclipse-SourceReferences</ignore>
				</ignores>
				<extensions>true</extensions>
			</configuration>
		</execution>
	</executions>
</plugin>

part from it.

@dstango
Copy link

dstango commented Mar 19, 2023

@laeubi Thank you! After your additional tycho-changes for me only the class files are left.

So I set the baseline-check to skip=true, and now the build works.

I ran into some issue as maven wanted to spawn a subprocess with java 11 that failed, but that was due to my JAVA_HOME setting. (I guess it would be nice to have a variable to reference the JAVA_HOME of the currently used Runtime JRE in a launcher btw ... this way the launcher could be configured more self-contained, independent from the user's environment variables. Or did I miss that variable?)

I also noticed that the launcher m2e-core--build started lots of eclipse instances for some tests, that produced quite some exceptions, yet I haven't installed RCPTT yet, so I disabled the test for now. Guess I have to install RCPTT soon ;-).
Though I would have thought these tests would only be run when using the launcher m2e-core--build-with-integration-tests.

@laeubi
Copy link
Member Author

laeubi commented Mar 20, 2023

For dev-time you usually can skip the tests first and if you are quite happy with your change and at best want to enhance the existing ones run them individually. The CI will then run all tests.

@laeubi
Copy link
Member Author

laeubi commented Mar 20, 2023

The classes issue should now be fixed!

@dstango
Copy link

dstango commented Mar 20, 2023

@laeubi thanks! :-) I guess it takes the usual 3 hours to be available?!?

Regarding "if you are quite happy with your change" I'm a little lost, how I can do some first manual exploratory tests ... I tried "Run As -> Eclipse Application" on some of the many projects, but I never seem to be able to pick the right one.
When I try to import some existing maven project I end up in an error message.

@laeubi
Copy link
Member Author

laeubi commented Mar 20, 2023

I guess it takes the usual 3 hours to be available?!?

It should already be in place if you rebase your code with the master.

how I can do some first manual exploratory tests

The best is to have a little reproducer project that shows your specific issue. This can later then be transformed into an test for example here:

https://github.com/eclipse-m2e/m2e-core/tree/master/org.eclipse.m2e.core.tests

@dstango
Copy link

dstango commented Mar 20, 2023

I guess it takes the usual 3 hours to be available?!?

It should already be in place if you rebase your code with the master.

ah, this time it's not a change in tycho ... thanks!

The build continues and has something new to offer:

[ERROR] ┌──────────────────────────┬──────────────────────────┬──────────────────────────┬─────────────────────────┬─────────────────────────┬─────────────────────────┐
[ERROR] │Delta                     │Type                      │Name                      │Project Version          │Baseline Version         │Suggested Version        │
[ERROR] ├──────────────────────────┼──────────────────────────┼──────────────────────────┼─────────────────────────┼─────────────────────────┼─────────────────────────┤
[ERROR] │MICRO                     │RESOURCES                 │org.eclipse.m2e.core.ui-2.│2.0.4                    │2.0.4                    │2.0.5                    │
[ERROR] │                          │                          │0.4-SNAPSHOT.jar          │                         │                         │                         │
[ERROR] ├──────────────────────────┼──────────────────────────┼──────────────────────────┴─────────────────────────┴─────────────────────────┴─────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │intro/css/overview.css                                                                                  │
[ERROR] ├──────────────────────────┼──────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[ERROR] │..CHANGED                 │RESOURCE                  │intro/css/whatsnew.css                                                                                  │
[ERROR] └──────────────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[ERROR] C:\Java\eclipse-contribution\m2e-master\git\m2e-core\org.eclipse.m2e.core.ui [0:0]: Baseline problems found! Project version: 2.0.4.20230305-1928, baseline version: 2.0.4.20230305-1928, suggested version: 2.0.5

how I can do some first manual exploratory tests

The best is to have a little reproducer project that shows your specific issue. This can later then be transformed into an test for example here:

https://github.com/eclipse-m2e/m2e-core/tree/master/org.eclipse.m2e.core.tests

Maybe my question wasn't clear: Yes, I want to do something with a reproducer project -- that was my intention.

My problem is: I'd like to start Eclipse and then import my reproducer-project, but I fail with that:

  • Either I'm trying to run Eclipse from the wrong m2e-project (tried with org.eclipse.me2.core.tests right now, but that doesn't seem to work)
  • or something else with my setup is wrong - I get the following messages:
    image
    image

When trying to import an existing Maven-Project I get this:
image

Or do I have to use another Eclipse-Installation and update the m2e-Installation from my own build? I guess I can figure out how to do that, but it feels like there must be an easier way ... ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
usability Improvements that can give a better usability or user experience
Projects
None yet
Development

No branches or pull requests

3 participants