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

Javadoc build failure #484

Closed
akurtakov opened this issue Mar 20, 2023 · 45 comments
Closed

Javadoc build failure #484

akurtakov opened this issue Mar 20, 2023 · 45 comments
Assignees
Labels
bug Something isn't working regression Regression defect
Milestone

Comments

@akurtakov
Copy link
Contributor

In latest I-build javadoc build fails with the issues shown at https://download.eclipse.org/eclipse/downloads/drops4/I20230320-0330/compilelogs/jdt.doc.isv.javadoc.txt

@iloveeclipse
Copy link
Member

iloveeclipse commented Mar 21, 2023

Last successful execution is https://download.eclipse.org/eclipse/downloads/drops4/I20230316-1800/
After that we've switched a lot of platform bundles to Java 17, platform tests were not running / recorded, and the first fail is in https://download.eclipse.org/eclipse/downloads/drops4/I20230320-0330/testResults.php

So we have regression between I20230316-1800 and I20230320-0330.

I don't see any breaking changes in JDT UI code here, so it must be something related to recent platform / releng activities.

@iloveeclipse
Copy link
Member

See "similar" issue eclipse-platform/eclipse.platform.common#18 and fix https://github.com/eclipse-platform/eclipse.platform.common/pull/19/files.
However, why should only JDT UI build fail?

@iloveeclipse
Copy link
Member

iloveeclipse commented Mar 21, 2023

I've added https://github.com/eclipse-platform/.github/wiki/Javadoc-validation to start documenting how all that works.

@sravanlakkimsetti : would be great if you could fix the wiki above so other people can also understand how that javadoc build works and if you could give here a hint what is broken today n platform.

@sravanlakkimsetti
Copy link
Member

@iloveeclipse I can see 1 possible cause. org.eclipse.core.runtime is used in jdt.ui. I see that o.e.core.runtime updated to java 17 but the jdt.ui plugins that use o.e.core.runtime are set at java-11. I think we need to update jdt.ui bundles to java-17.

@iloveeclipse
Copy link
Member

@sravanlakkimsetti : thanks, that is surely not only one place where JDT (which is still on Java 11) uses platform that is on Java 17. But this implies that somewhere we run some task on Java 11 runtime that is unable to read Java 17 class files - where would be this output? Is this "cut out" from jdt.doc.isv.javadoc.txt ?

I would love to see this build chain explained in the wiki. Who starts which process in which script and how that generates at the end the xyz.javadoc.txt files.

@sravanlakkimsetti
Copy link
Member

I jotted down some points on how build is triggered in the wiki page.
May be adding more doclint or javadoc debug options might give us more information. we can add more options in jdtOptions.txt file

@iloveeclipse
Copy link
Member

@sravanlakkimsetti : thanks. Where, in which log are we supposed to see this output:

org.eclipse.jdt.doc.isv/buildDoc.xml - generateJavadoc:
      Using javadocExecutable:

from https://github.com/eclipse-platform/eclipse.platform.common/blob/54455a117960237d69a9d840e61872641cafdaaa/bundles/org.eclipse.jdt.doc.isv/buildDoc.xml#LL106C7-L107C31

@sravanlakkimsetti
Copy link
Member

this is the exact line where we execute javadoc and generate the log doc.bin.log.

The doc.bin.log is renamed here

the rename happens during gather eclipse parts stage.

@iloveeclipse
Copy link
Member

@sravanlakkimsetti : yes, I see it, but in which log file in the SDK build do we see the output from the echo task that runs 40 lines above

@sravanlakkimsetti
Copy link
Member

we are running ant with -quiet option. I am not familiar with ant options. but I think if we use -silent we will see the echo statements in the maven build log.

The commandline options are specified in https://github.com/eclipse-platform/eclipse.platform.common/blob/54455a117960237d69a9d840e61872641cafdaaa/bundles/org.eclipse.jdt.doc.isv/pom.xml#L102

@iloveeclipse
Copy link
Member

Arrgh, OK, I will check that. Any idea why -quiet was used at all? Too much output?

@akurtakov
Copy link
Contributor Author

FWIW, the process is too cumbersome and if there is agreement to move javadoc to separate bundles that contain only the javadoc I'm sure that we can craft something far easier to manage. Ideally, having one such bundle per git repo so javadoc errors are flagged even by verification builds. @laeubi already asked and tried things in that area for equinox and platform.

@iloveeclipse
Copy link
Member

The quiet was added in eclipse-platform/eclipse.platform.common@0b511f5 as a "follow up" on https://bugs.eclipse.org/bugs/show_bug.cgi?id=443771 with no further comments.

I would propose to enable it on JDT to see how bad is "no quiet" mode and if we will see some more info there.
I would especially like to see ant command line / executable and arguments.

@laeubi
Copy link
Contributor

laeubi commented Mar 21, 2023

Actually tycho has a "document bundle" plugin, that seems to work towards the direction of having an "eclipse-javadoc-tool", but it is / was not really used, so if there are some demands I'm open to revive / modernize the plugin but I'm not very familiar with the current "doc-builds" and what are the expected outcomes are.

@iloveeclipse
Copy link
Member

the process is too cumbersome and if there is agreement to move javadoc to separate bundles

I wonder why do we provide that javadoc at all?
Who consumes that and do we still need that given that we ship sources with SDK?

@iloveeclipse
Copy link
Member

iloveeclipse commented Mar 21, 2023

@laeubi
Copy link
Contributor

laeubi commented Mar 21, 2023

Tycho always require Java 17 to run so this usually should already use Java 17, but the eclipse run itself calls ant so I'm not sure if/how there might be a different setting for that, there is a file in that folder that seems to configure some jdt options (guessing by name):
https://github.com/eclipse-platform/eclipse.platform.common/blob/54455a117960237d69a9d840e61872641cafdaaa/bundles/org.eclipse.jdt.doc.isv/jdtOptions.txt

@laeubi
Copy link
Contributor

laeubi commented Mar 21, 2023

By the way as far as I know this does not only generates javadoc but also the extension point docs and alike...

@iloveeclipse
Copy link
Member

I've created eclipse-platform/.github#108.

iloveeclipse added a commit to iloveeclipse/eclipse.platform.common that referenced this issue Mar 21, 2023
- Remove "-quiet" ant argument from org.eclipse.jdt.doc.isv
- print java.home additionally to used javadocExecutable

See eclipse-jdt/eclipse.jdt.ui#484
iloveeclipse added a commit to eclipse-platform/eclipse.platform.common that referenced this issue Mar 21, 2023
- Remove "-quiet" ant argument from org.eclipse.jdt.doc.isv
- print java.home additionally to used javadocExecutable

See eclipse-jdt/eclipse.jdt.ui#484
@iloveeclipse
Copy link
Member

@sravanlakkimsetti : I don't see anything in any log file that would indicate the "echo" from https://github.com/eclipse-platform/eclipse.platform.common/pull/128/files is there.

I'm looking for example for string org.eclipse.jdt.doc.isv/buildDoc.xml or generateJavadoc in

So I assume the pom change has no effect => the javadoc build is triggered from somewhere else?

@sravanlakkimsetti
Copy link
Member

I see the echo statements in mb220_buildSdkPatch.sh.log. Please refer to line numbers 30550 and 30551.

build for org.eclipse.jdt.doc.isv starts at 28960 and ends at 31073.
Ant build log is from 29107 to 31045

@iloveeclipse
Copy link
Member

@sravanlakkimsetti : interesting, I was looking at the first page, but missed completely https://download.eclipse.org/eclipse/downloads/drops4/I20230321-1800/buildlogs.php.

Unfortunately nothing interesting shown there, except that the tooling used same Java 17 version already for 4.27 and last successful 4.28 build without any troubles.

I now assume something is wrong with the classpath provided to the javadoc, something that breaks regular expression parser there etc.

@iloveeclipse
Copy link
Member

Looks like moving JDT UI bundles to Java 17 via #493 fixed gazillions of errors related to jdt.ui.

Remaining one will be probably fixed either via eclipse-jdt/eclipse.jdt.debug#210 or by ant / debug bundles updates, I will try to do this today.

../../../eclipse.platform/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/IAntLaunchConstants.java:17: error: package org.eclipse.core.externaltools.internal does not exist
import org.eclipse.core.externaltools.internal.IExternalToolConstants;
                                              ^
1 error

@akurtakov
Copy link
Contributor Author

I have touched doc bundles via https://ci.eclipse.org/releng/job/Touch_doc_bundles/62/ and will trigger I-build now so we can see the exact state of the issue.

@iloveeclipse
Copy link
Member

I have touched doc bundles via

I've added this to the wiki: https://github.com/eclipse-platform/.github/wiki/Javadoc-validation

Can you please add explanation why, in which cases is this needed?

@sravanlakkimsetti
Copy link
Member

I have touched doc bundles via

I've added this to the wiki: https://github.com/eclipse-platform/.github/wiki/Javadoc-validation

Can you please add explanation why, in which cases is this needed?

Adding the explanation now. A bit lengthy will take some time.

@iloveeclipse
Copy link
Member

iloveeclipse commented Apr 5, 2023

I have no time to investigate it further, especially there is no explanation how one can run the build only for the doc bundles without the rest of SDK.

=> workaround to build only subset of API reference for M1 (that at least produces non-empty doc bundles and I see no errors anymore opening help in built SDK):

eclipse-platform/eclipse.platform.common#133

@iloveeclipse
Copy link
Member

iloveeclipse commented Apr 6, 2023

I have no time to investigate it further, especially there is no explanation how one can run the build only for the doc bundles without the rest of SDK.

=> workaround to build only subset of API reference for M1 (that at least produces non-empty doc bundles and I see no errors anymore opening help in built SDK):

eclipse-platform/eclipse.platform.common#133

Interestingly, even if my local SDK build succeeded, SDK build still has same problem.

So something is missing, even if the doc bundles were touched: eclipse-platform/eclipse.platform.common@df307d9

Log file from this build is https://download.eclipse.org/eclipse/downloads/drops4/I20230405-1800/buildlogs/mb220_buildSdkPatch.sh.log

@iloveeclipse
Copy link
Member

iloveeclipse commented Apr 6, 2023

Interestingly, even if my local SDK build succeeded, SDK build still has same problem.

I was wrong. My local build is still broken in same way like "official" one, but it is now less broken as the state I saw before with gazillions of JDT UI errors, so I've assumed it is OK, which is not.

=> will revert last change via #484

@iloveeclipse
Copy link
Member

This is the arguments file that the javadoc command executes:

-quiet
-encoding "UTF-8"
-charset "UTF-8"
-sourcepath "../../../eclipse.jdt.core/org.eclipse.jdt.annotation/src:../../../eclipse.jdt.core/org.eclipse.jdt.core.compiler.batch/src:../../../eclipse.jdt.core/org.eclipse.jdt.apt.core/src:../../../eclipse.jdt.core/org.eclipse.jdt.core/antadapter:../../../eclipse.jdt.core/org.eclipse.jdt.core/codeassist:../../../eclipse.jdt.core/org.eclipse.jdt.core/compiler:../../../eclipse.jdt.core/org.eclipse.jdt.core/dom:../../../eclipse.jdt.core/org.eclipse.jdt.core/eval:../../../eclipse.jdt.core/org.eclipse.jdt.core/formatter:../../../eclipse.jdt.core/org.eclipse.jdt.core/model:../../../eclipse.jdt.core/org.eclipse.jdt.core/search:../../../eclipse.jdt.debug/org.eclipse.jdt.debug/eval:../../../eclipse.jdt.debug/org.eclipse.jdt.debug/jdi:../../../eclipse.jdt.debug/org.eclipse.jdt.debug/model:../../../eclipse.jdt.debug/org.eclipse.jdt.debug.ui/ui:../../../eclipse.jdt.debug/org.eclipse.jdt.launching/launching:../../../eclipse.jdt.ui/org.eclipse.jdt.core.manipulation/common:../../../eclipse.jdt.ui/org.eclipse.jdt.core.manipulation/refactoring:../../../eclipse.jdt.ui/org.eclipse.jdt.junit/src:../../../eclipse.jdt.ui/org.eclipse.jdt.junit.core/src:../../../eclipse.jdt.ui/org.eclipse.jdt.junit.runtime/src:../../../eclipse.jdt.ui/org.eclipse.jdt.junit4.runtime/src:../../../eclipse.jdt.ui/org.eclipse.jdt.junit5.runtime/src:../../../eclipse.jdt.ui/org.eclipse.jdt.ui/core extension:../../../eclipse.jdt.ui/org.eclipse.jdt.ui/core refactoring:../../../eclipse.jdt.ui/org.eclipse.jdt.ui/internal compatibility:../../../eclipse.jdt.ui/org.eclipse.jdt.ui/ui:../../../eclipse.jdt.ui/org.eclipse.jdt.ui/ui refactoring:../../../eclipse.platform/ant/org.eclipse.ant.launching/src:../../../eclipse.platform/ant/org.eclipse.ant.ui/Ant Editor:../../../eclipse.platform/ant/org.eclipse.ant.ui/Ant Tools Support"
-d reference/api
-classpath ${bootclasspath}:target/dependency/org.apache.ant-1.10.12.v20211102-1452-lib/ant.jar.jar:target/dependency/org.junit-4.13.2.v20211018-1956.jar:target/dependency/icu4j-72.1.jar:target/dependency/org.osgi.service.prefs-1.1.2.jar:target/dependency/org.osgi.service.event-1.4.1.jar:target/dependency/org.osgi.service.cm-1.6.1.jar:../../../rt.equinox.framework/bundles/org.eclipse.osgi/supplement/target/classes:../../../eclipse.jdt.core/org.eclipse.jdt.apt.core/mirrorapi.jar:../../../eclipse.jdt.debug/org.eclipse.jdt.debug/jdi.jar:../../../eclipse.jdt.ui/org.eclipse.jdt.core.manipulation/target/classes:../../../eclipse.jdt.ui/org.eclipse.jdt.junit/target/classes:../../../eclipse.jdt.ui/org.eclipse.jdt.junit.core/target/classes:../../../eclipse.jdt.ui/org.eclipse.ltk.core.refactoring/target/classes:../../../eclipse.jdt.ui/org.eclipse.ltk.ui.refactoring/target/classes:../../../eclipse.platform/ant/org.eclipse.ant.core/target/classes:../../../eclipse.platform.debug/org.eclipse.core.externaltools/target/classes:../../../eclipse.platform.debug/org.eclipse.core.variables/target/classes:../../../eclipse.platform.debug/org.eclipse.debug.core/target/classes:../../../eclipse.platform.debug/org.eclipse.debug.ui/target/classes:../../../eclipse.platform.debug/org.eclipse.ui.console/target/classes:../../../eclipse.platform.debug/org.eclipse.ui.externaltools/target/classes:../../../eclipse.platform/resources/bundles/org.eclipse.core.filesystem/target/classes:../../../eclipse.platform/resources/bundles/org.eclipse.core.resources/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.contenttype/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.expressions/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.jobs/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.runtime/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.runtime.content/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.runtime.jobs/target/classes:../../../eclipse.platform/runtime/bundles/org.eclipse.core.runtime.preferences/target/classes:../../../eclipse.platform.swt.binaries/bundles/org.eclipse.swt.win32.win32.x86_64/target/classes:../../../eclipse.platform/team/bundles/org.eclipse.compare/target/classes:../../../eclipse.platform/team/bundles/org.eclipse.compare.core/target/classes:../../../eclipse.platform/team/bundles/org.eclipse.team.core/target/classes:../../../eclipse.platform/team/bundles/org.eclipse.team.ui/target/classes:../../../eclipse.platform.text/org.eclipse.core.filebuffers/target/classes:../../../eclipse.platform.text/org.eclipse.jface.text/target/classes:../../../eclipse.platform.text/org.eclipse.search/target/classes:../../../eclipse.platform.text/org.eclipse.text/target/classes:../../../eclipse.platform.text/org.eclipse.ui.editors/target/classes:../../../eclipse.platform.text/org.eclipse.ui.workbench.texteditor/target/classes:../../../eclipse.platform.ua/org.eclipse.help/target/classes:../../../eclipse.platform.ua/org.eclipse.help.ui/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.core.commands/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.jface/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.ui/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.ui.forms/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.e4.ui.ide/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.ui.ide/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.ui.navigator/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.ui.views/target/classes:../../../eclipse.platform.ui/bundles/org.eclipse.ui.workbench/target/classes:../../../equinox/bundles/org.eclipse.equinox.app/target/classes:../../../equinox/bundles/org.eclipse.equinox.common/target/classes:../../../equinox/bundles/org.eclipse.equinox.bidi/target/classes:../../../equinox/bundles/org.eclipse.equinox.preferences/target/classes:../../../equinox/bundles/org.eclipse.equinox.registry/target/classes:../../../equinox/bundles/org.eclipse.osgi/target/classes:../../../equinox/bundles/org.eclipse.osgi.services/target/classes:../../../equinox/bundles/org.eclipse.osgi.util/target/classes:../../../rt.equinox.p2/bundles/org.eclipse.equinox.frameworkadmin/target/classes
-breakiterator
-use
-splitIndex
-windowtitle "Eclipse JDT API Specification"
-doctitle "Eclipse JDT API Specification"
-header "<span style='font-size:small'><b>Eclipse JDT</b><br>2023-06 (4.28)</span>"
-bottom "<br><span style='font-size:small;float:right'>Copyright (c) 2000, 2023 Eclipse Contributors and others. All rights reserved.</span><span style='font-size:small'><a href='{@docRoot}/../misc/api-usage-rules.html'>Guidelines for using Eclipse APIs.</a></span>"
-group "Java development tools core packages" "org.eclipse.jdt.core:org.eclipse.jdt.core.*"
-group "Java development tools UI packages" "org.eclipse.jdt.ui:org.eclipse.jdt.ui.*"
-group "Java development tools APT packages" "org.eclipse.jdt.apt.core:org.eclipse.jdt.apt.core.*:com.sun.mirror.*"
-group "Java development tools debug and launching packages" "org.eclipse.ant.launching:org.eclipse.ant.ui.launching:org.eclipse.jdt.debug.*:org.eclipse.jdt.launching:org.eclipse.jdt.launching.*"
-group "Java development tools JUnit packages" "org.eclipse.jdt.junit:org.eclipse.jdt.junit.*"
-link https://docs.oracle.com/en/java/javase/17/docs/api
-link https://docs.osgi.org/javadoc/osgi.core/8.0.0/
-link https://docs.osgi.org/javadoc/osgi.enterprise/7.0.0/
-linkoffline ./../../../org.eclipse.platform.doc.isv/reference/api ../org.eclipse.platform.doc.isv/reference/api
-tag 'noimplement:a:Restriction:'
-tag 'noextend:a:Restriction:'
-tag 'noreference:a:Restriction:'
-tag 'noinstantiate:a:Restriction:'
-tag 'nooverride:a:Restriction:'
-tag 'category:a:Category:'
-Xdoclint:reference,html
-Xmaxwarns 10000
-Xmaxerrs 10000
-notimestamp

org.eclipse.jdt.annotation

org.eclipse.jdt.core
org.eclipse.jdt.core.compiler
org.eclipse.jdt.core.compiler.batch
org.eclipse.jdt.core.dom
org.eclipse.jdt.core.dom.rewrite
org.eclipse.jdt.core.eval
org.eclipse.jdt.core.formatter
org.eclipse.jdt.core.index
org.eclipse.jdt.core.jdom
org.eclipse.jdt.core.manipulation
org.eclipse.jdt.core.refactoring
org.eclipse.jdt.core.refactoring.descriptors
org.eclipse.jdt.core.refactoring.participants
org.eclipse.jdt.core.search
org.eclipse.jdt.core.util

org.eclipse.jdt.ui
org.eclipse.jdt.ui.actions
org.eclipse.jdt.ui.cleanup
org.eclipse.jdt.ui.dialogs
org.eclipse.jdt.ui.jarpackager
org.eclipse.jdt.ui.refactoring
org.eclipse.jdt.ui.search
org.eclipse.jdt.ui.text
org.eclipse.jdt.ui.text.folding
org.eclipse.jdt.ui.text.java
org.eclipse.jdt.ui.text.java.correction
org.eclipse.jdt.ui.text.java.hover
org.eclipse.jdt.ui.wizards

com.sun.mirror.apt
com.sun.mirror.declaration
com.sun.mirror.type
com.sun.mirror.util
org.eclipse.jdt.apt.core.build
org.eclipse.jdt.apt.core.env
org.eclipse.jdt.apt.core.util

org.eclipse.ant.launching
org.eclipse.ant.ui.launching
org.eclipse.jdt.debug.core
org.eclipse.jdt.debug.eval
org.eclipse.jdt.debug.ui
org.eclipse.jdt.debug.ui.actions
org.eclipse.jdt.debug.ui.breakpoints
org.eclipse.jdt.debug.ui.launchConfigurations
org.eclipse.jdt.launching
org.eclipse.jdt.launching.environments
org.eclipse.jdt.launching.sourcelookup
org.eclipse.jdt.launching.sourcelookup.advanced
org.eclipse.jdt.launching.sourcelookup.containers

org.eclipse.jdt.junit
org.eclipse.jdt.junit.launcher
org.eclipse.jdt.junit.model
org.eclipse.jdt.junit.wizards

And with exact that list in my local SDK build directory tree I don't see any errors.

BUT!

If I change :../../../eclipse.platform.debug/org.eclipse.core.externaltools/target/classes: to :../../../eclipse.platform.debug/org.eclipse.core.externaltools/target/classesXXX:

I see exact the error we see on the "official" build:

cd eclipse.platform.releng.aggregator/eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv

/usr/lib/jvm/jdk-17_adoptium/bin/javadoc @/data/git/eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/argsfile1.txt -J-Xmx1000M
../../../eclipse.platform/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/IAntLaunchConstants.java:17: error: package org.eclipse.core.externaltools.internal does not exist
import org.eclipse.core.externaltools.internal.IExternalToolConstants;
                                              ^
1 error

What is really strange, because the externaltools/target/classes directory IS there after SDK build and the classpath I've extracted from ant log file works after the build but not during the build.

And in fact, it looks like the externaltools are compiled after we build javadocs!!!

I see this output AFTER the build fails!

[INFO] --------< org.eclipse.platform:org.eclipse.core.externaltools >---------
[INFO] Building [bundle] External Tools Headless Support 1.3.0-SNAPSHOT [159/520]
[INFO] ---------------------------[ eclipse-plugin ]---------------------------
[INFO] Resolving dependencies of MavenProject: org.eclipse.platform:org.eclipse.core.externaltools:1.3.0-SNAPSHOT @

@iloveeclipse
Copy link
Member

iloveeclipse commented Apr 6, 2023

And here is the order that maven prints at beginning:

[INFO] Reactor Build Order:
...
[INFO] org.eclipse.platform.doc.isv                            [eclipse-plugin]
[INFO] org.eclipse.jdt.doc.isv                                 [eclipse-plugin]
[INFO] org.eclipse.jdt.debug.ui                                [eclipse-plugin]
[INFO] org.eclipse.jdt.apt.pluggable.core                      [eclipse-plugin]
[INFO] org.eclipse.jdt.doc.user                                [eclipse-plugin]
[INFO] [bundle] External Tools Headless Support                [eclipse-plugin]

Note: javadoc requires built code of external tools bundle that is compiled after javadoc bundles.

@laeubi
Copy link
Contributor

laeubi commented Apr 6, 2023

If org.eclipse.jdt.doc.isv requires org.eclipse.core.externaltools to be build before it should at best mention this as an additional dependency.

@iloveeclipse
Copy link
Member

So was there a tycho / maven change that changed the order of dependencies?
I don't see any of many dependencies the javadoc requires defined in eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/META-INF/MANIFEST.MF

iloveeclipse added a commit to iloveeclipse/eclipse.platform.common that referenced this issue Apr 6, 2023
This makes sure the org.eclipse.core.externaltools is built before the
javadoc is executed, so it's target/classes directory is not empty and
javadoc sees the required classes used by JDT.

See eclipse-jdt/eclipse.jdt.ui#484
@laeubi
Copy link
Contributor

laeubi commented Apr 6, 2023

You see additional dependencies are defined here:
https://github.com/eclipse-platform/eclipse.platform.common/blob/master/bundles/org.eclipse.jdt.doc.isv/pom.xml

if there is no dependency, this means the project can be build any time before/after or even in parallel. Also if I understand one needs to "touch" files to have things changed, so maybe this problem exits longer but was not noticed, or some dependency changed and the order changed therefore slightly...

@iloveeclipse
Copy link
Member

I've set eclipse-platform/eclipse.platform.common#136 that adds this dependency.

But thinking more, all of the bundles we refer via target/classes, starting with this line should be on the pom file dependencies list?

@laeubi
Copy link
Contributor

laeubi commented Apr 6, 2023

But thinking more, all of the bundles we refer via target/classes, starting with this line should be on the pom file dependencies list?

At best yes... I have investigated about the details how this works and think it can also work on the compiles jars, but currently it all very specific to a workspace, and compiled class files in a folder, I hope to find some time to optimize here and move stuff from ant->maven but that probably will be more ongoing work than happening tomorrow.

iloveeclipse added a commit to eclipse-platform/eclipse.platform.common that referenced this issue Apr 6, 2023
This makes sure the org.eclipse.core.externaltools is built before the
javadoc is executed, so it's target/classes directory is not empty and
javadoc sees the required classes used by JDT.

See eclipse-jdt/eclipse.jdt.ui#484
@iloveeclipse
Copy link
Member

@iloveeclipse iloveeclipse self-assigned this Apr 7, 2023
@iloveeclipse iloveeclipse added bug Something isn't working regression Regression defect labels Apr 7, 2023
@iloveeclipse iloveeclipse added this to the 4.28 M2 milestone Apr 7, 2023
iloveeclipse added a commit to iloveeclipse/eclipse.platform.common that referenced this issue Apr 11, 2023
This makes sure the dependencies are built before the
javadoc is executed, so it's target/classes directory is not empty and
javadoc sees the required classes used by JDT.

See eclipse-jdt/eclipse.jdt.ui#484
iloveeclipse added a commit to eclipse-platform/eclipse.platform.common that referenced this issue Apr 11, 2023
This makes sure the dependencies are built before the
javadoc is executed, so it's target/classes directory is not empty and
javadoc sees the required classes used by JDT.

See eclipse-jdt/eclipse.jdt.ui#484
@iloveeclipse
Copy link
Member

Note: I've added more dependencies to maven via eclipse-platform/eclipse.platform.common#139

laeubi pushed a commit to laeubi/eclipse.pde that referenced this issue Nov 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working regression Regression defect
Projects
None yet
Development

No branches or pull requests

4 participants