-
Notifications
You must be signed in to change notification settings - Fork 80
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
Fix jdt.feature version in P build and add commonmark bundles to the patch #2341
Conversation
@MohananRahul Please take a look at this and merge. Can you also kick off a new P build after that? TIA! |
<plugin | ||
id="org.commonmark" | ||
version="0.0.0"/> | ||
<plugin | ||
id="org.commonmark-gfm-tables" | ||
version="0.0.0"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this saying that commonmark plugins should be available in the P-build already due to ..prereqs.sdk? That would be very cool!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the include of these 3rd party bundles necessary? I expect the bundles that require them are sufficient requirements to ensure they get installed.
With all the effort to make upgrades to 3rd party bundles easier, I hope we don’t move in the opposite direction at the same time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As bundles require them, features should not list them at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the include of these 3rd party bundles necessary? I expect the bundles that require them are sufficient requirements to ensure they get installed.
I think this is more about provisioning than about installing: without these inclusions, installation simply has no chance to find those plugins. Ergo, the P-build update site must somehow "contain" those plugins, either physically, or using a composite site mentioning also orbit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also note, that the patch feature is a bit of a short lived animal, where upgrades of individual ingredients is less likely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this saying that commonmark plugins should be available in the P-build already due to ..prereqs.sdk? That would be very cool!
That's right as per Sravan.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it’s in the category.xml it must end up in the update site built from that at least as built by tycho.
As said I tried it using the export wizard, which did not work.
Next I tried to build using maven / tycho, but I seem to be too stupid for that. Current failure:
Missing requirement: org.eclipse.jdt.core 3.39.50.qualifier requires 'osgi.bundle; org.eclipse.core.runtime [3.29.0,4.0.0)' but it could not be found
Is it possible to build just the patch feature, or must I perform a full SDK build with all submodules materialized?
Please try mvn -f eclipse.platform.releng.tychoeclipsebuilder/java23patch/pom.xml clean verify -Pjava23patch -DskipTests=true
This is the command we use for patch build
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So perhaps this will be my last question: Where can I find org.eclipse:eclipse-platform-parent:4.33.0 ? repo.eclipse.org doesn't seem to have it, and also the snapshot version seems to have gone missing.
It is there https://repo.eclipse.org/content/repositories/eclipse/org/eclipse/eclipse-platform-parent/4.33.0-SNAPSHOT/ . What you hit is infrastructure issue at EF.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not that hard to add it to category.xml and move on but do as you please. I am more and more convinced that PDE/JDT/Equinox should be their own separate releng procedures and scripts which projects can drive according to their taste and needs.
In the past, the P builds also had PDE in them. So, it probably made sense at that time to have the releng scripts in the releng project. Would be nice if we can get them into jdt feature itself.
Also, what can we, the JDT committers, do to get permissions to kick off P builds and Y builds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move them to https://ci.eclipse.org/jdt/ . This is not a different issue from Platform committers not being able to run https://ci.eclipse.org/jdt/job/copyAndDeployJDTCompiler/ .
It's a possibility to add 1-2 JDT committers manually to some jobs (IIRC that gives the permission to edit the cron pattern but doesn't give direct run permission) but this would be overriden whenever https://ci.eclipse.org/releng/job/Create%20Jobs/ is run (and it's the only way to edit all jenkinsfiles and redeploy in one go and there are so many different scripts) and the manually added committers will have to be readded.
I rolled back the changes in feature.xml and made similar changes in category.xml as @merks suggested. Don't know what I need to make the PR pass, though. Is this a result of trying build off the R4_33 branch? |
@MohananRahul Any idea what's going on here? Is this because jdt.core.binaries and jdt feature are pulled from master? Shouldn't we pull everything from the R4_33_maintenance branch? |
OK, that last hack didn't work either. I give up and hopefully someone with more releng expertise chip in here. Also, I see this, which explains why my change didn't take effect: |
Looking at https://ci.eclipse.org/platform/job/eclipse.platform.releng.aggregator/view/change-requests/ I'm not confident that the PR build is likely to succeed any time soon. OTOH, P-builds have been working to some degree as can be seen at https://download.eclipse.org/eclipse/updates/4.33-P-builds/ All that's needed to make progress are the changes in this PR. If changes to So I kindly ask that someone with commit rights to this repo simply push Jay's changes - minus jenkinsfile, and the next P-build will tell us success / failure better then a broken PR build. |
After Java 23 GA I'm happy to join discussions of unburdening platform.releng from these tasks, but I don't think it's humanly possible to make this move between today and 17 Sept!
|
Well, @jarthana added commonmark as feature (which it clearly isn't) while the example and what @stephan-herrmann was using bundle. Please change. |
FYI, I am currently trying to replicate a build locally so that I can help more effectively and see the problems. But it's a bit of a learning curve. |
Yes, as bundle works category.xml, Let me create PR |
Please hold on for some time. I am looking into this one. there are three new bundles that are required. We need to be able to install these new bundles. For installation we use eclipse p2. because of these the dependencies needs to be present in the feature patch. That will also add the bundles to repo. I am currently building locally first. |
I get much farther doing as @akurtakov suggests: I keep needing more magic properties to be set:
|
This worked for me:
But in the real build, what sets the magic properties? |
These changes have been replaced by #2344 |
It seems helping is not very effective when folks ignore what is being done. 😱 I can certainly find other ways to waste my time. 😭 |
@merks I completely agree your approach is much better than the existing approach. Since the java23 release in next week and jdt team here went into panic mode I went ahead and fixed the patch build using older approach which I am quite familiar with. That said, I am open if someone else can take up the alternative approach to provide a P build. btw, for the record, I also do not think highly of the current patch build process as it is too fragile with too many hacks. Lets migrate the patch build to the better one you suggested if someone else can pick it up now or for the next (Java24) release atleast. |
I know everyone means well. Also, while the includes of the plugins in the feature are not such a big deal for a temporary patch feature. I don't think it's necessary as you stated. The bundles just need to be available in the update site. My big concern is the problem commons logging which basically destroys the users ability to work with EGit, p2 is broken, and marketplace is broken. An installation with that problem cannot be repaired except maybe by rollback: It just seems so unnecessary given the bundle is already in the 4.33 update site but best to let package imports choose the 1.2 version that's used other Apache components to the exclusion of 1.3. |
@merks Due to the limited availability of team today and since this was a blocker for the release, I was literally sitting next to Sravan though he had moved out of the project and requested him to get a P Build up while I was doing some sanity testing. We can remove the apache.commons and upload a P build as you suggested for now. @stephan-herrmann @jarthana any comments here? |
A suggestion for next cycle - start P-builds early in the cycle not as a last minute thing. |
I'm sorry if commons-logging was a red herring. I believed that was the reason why at one point p2 claimed the feature were not applicable although commonmark was already installed. If we have a patch build that is installable in pristine SDK 4.33 without stuffing commons-logging into the patch: much better! Many thanks!! I'm sure you'll let us know once a new P-build is available for testing, right? :) |
It's all fine. As I said, everyone means well and there was quite a bit of pressure due to deadlines (that would be best avoided in the future). I still haven't completely learned not to vent my frustration, so apologies for that. No offense intended to the hard working people! Let's just get to the bottom of the logging library issue. I'm here to help. For background, most EPP packages have this version installed: That installed in combination with the 1.3.4 version of commons-logging version appears to be really bad with class loader problems. The 1.2.0 version of that bundle doesn't appear to cause problems in combination with 1.3.4, though I'm not exactly sure why or what's the difference. In any case, I worked hard to eliminate the older 1.2.0.v20180409-1502 version of org.apache.commons.logging from the release train to prevent future problems as much as possible. As such, I'm highly doubtful that anything in the patch feature's transitive closure should require this specific bundle by name. I expect there are only package requirements and that the 1.2.0 version satisfies those requirements. Best that be the case! |
Nevermind, I found the patch to be available already. Installs fine and passes smoke test. GREAT! So, we have a release candidate! In case we had some last minute code changes, would it require more than a push of one button to create a new P-build? Who has the permissions to push that button? |
Can someone share the URL of the patch? |
Sure: here's the composite: https://download.eclipse.org/eclipse/updates/4.33-P-builds/ |
I tested installing 2024-06 Java IDE, updating to 2024-09, and then installing the patches. Interestingly the common-logging bundle is not actually installed in the end result: Probably because a patch is different from a regular feature and expresses the requirement like this:
I.e., it's more like update instructions. So probably this instructs to update org.apache.commons.commons-logging to 1.3.4 only if it's present. Probably that even applies for the commonmark bundles, which are only actually installed because some bundle actually requires them to be installed, not because of the inclusion in the patch feature: So the org.apache.commons.commons-logging thing looks to be a red herring, but one that doesn't cause any problems. Also, even the inclusion of the commonmark bundles in the feature wasn't strictly necessary, just their presence in the update site, via category.xml, would suffice. In any case, it looks like a case of don't worry be happy. 🥳 |
hey @merks - please do not change yourself - your comments are indeed extremely valuable as always. Personally I feel privileged to be involved in this Eclipse family of extremely dedicated and knowledgeable people like you and others, where everyone means well as you mentioned, also everyone being themselves and all working towards a great release. sorry for commenting (that too non-technical one) on a closed issue but could n't resist so that it will not be missed in the release activities. |
The technical aspect of this has been resolved via #2344. So I guess anyone with the necessary permission can safely close this PR. OTOH, the discussion we started here, should be continued, for which purpose I just created eclipse-jdt/eclipse.jdt.core#2985 . Please join me there. |
I'm closing this one now as there is nothing more to be done here. The change was merged in via #2344 |
No description provided.