-
Notifications
You must be signed in to change notification settings - Fork 141
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
[24] Try building the java24 patch on JDT infra #3244
Comments
One none-standard part of the existing patch-build can be found in java23patch/eclipse.releng.repository.java23patch/patchMatchVersion.xsl |
Command line approach using pde-build and p2's publishers Fixes eclipse-jdt/eclipse.jdt.core#3244
- make wget silent - invoke xslt processor via ant Fixes eclipse-jdt/eclipse.jdt.core#3244
Development is happening in git and on jenkins. The following result can be installed into Eclipse I20241104-1800 (against which it was built: https://ci.eclipse.org/jdt/job/org.eclipse.jdt-patch-feature/9/artifact/eclipse.jdt/org.eclipse.jdt.releng/patchbuild/work/org.eclipse.jdt.java24patch.zip Unfortunately installation into 4.34M3 fails, despite what looks like a suitable version range. Further issues:
|
Next build based on Y-Build Y20241109-1000 and SDK 4.34M3 can be installed into 4.34M3 (I20241107-0510) and also the next I-build I20241108-1800, see https://ci.eclipse.org/jdt/job/org.eclipse.jdt-patch-feature/10/artifact/eclipse.jdt/org.eclipse.jdt.releng/patchbuild/work/org.eclipse.jdt.java24patch.zip |
Overview of StepsThe following steps are orchestrated in build.sh :
All this completes well under one minute. Building the featurePDE Build is set up using these files (
Generating MetadataI had a bit of an issue to get metadata including the substitutions from
|
- update feature after various version bumps Fixes eclipse-jdt/eclipse.jdt.core#3244
- update version of the jdt feature to patch - update category labels Fixes eclipse-jdt/eclipse.jdt.core#3244
- exclude jdt.core.manipulation and jdt.astview for now - the former has a version bump only in master - the latter depends on changes in the former Fixes eclipse-jdt/eclipse.jdt.core#3244
Currently waiting for consistent merges from master in all of jdt.*. Once we have a suitable Y-build I'll try to add the missing parts: signing & uploading. |
- update versions after latest merge from master - update feature name - improve build sequence to get checksums of the feature generated Fixes eclipse-jdt/eclipse.jdt.core#3244
- debug output to analyse difference local / remote execution Fixes eclipse-jdt/eclipse.jdt.core#3244
- reconcile requirements of metadata generation - update the feature jar with feature.properties & license.html - only use binary input to generate checksums - use a new output directory to please the metadata generator - add JCP disclaimer to license Fixes eclipse-jdt/eclipse.jdt.core#3244
There was a bit more to this:
In the end the solution is simply to
=> The build artifact from https://ci.eclipse.org/jdt/job/org.eclipse.jdt-patch-feature/18/ can indeed be installed into recent I-builds (minimum I20250115-0110). Moreover it shows proper data for description license etc. |
- add signing Fixes eclipse-jdt/eclipse.jdt.core#3244
Build artifact from https://ci.eclipse.org/jdt/job/org.eclipse.jdt-patch-feature/19/
|
I have moved the Java version from the name "java24patch" to the feature version, so now the technical coordinates are
Hopefully, this will address two issues at once:
Note, that also the P-build job is version agnostic already :) |
For the final step of uploading to the download area we're now waiting for https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/5564 |
We have a first P-build available for installation from https://download.eclipse.org/jdt/updates/4.35-P-builds While this is not the normal URL of eclipse/updates, I hope this is OK. @jarthana ? We have a composite repo at that URL, but with the current script it will only ever point to the most specific child directory. Documentation can be found at https://github.com/eclipse-jdt/eclipse.jdt/tree/BETA_JAVA24/org.eclipse.jdt.releng/patchbuild With this I declare vijaya for this mission. 🍾 |
@HannesWell Is this giving an opportunity to simplify platform releng scripts? |
@stephan-herrmann : Could you please create a wiki page under Thanks. |
I had thought about this (and you know that I'm all in favor of using the wiki where suitable). On another issue I then came across https://github.com/eclipse-jdt/eclipse.jdt.debug/tree/master/org.eclipse.jdt.launching.javaagent#readme and figured that documentation right next to the code might have lower risk of decay. Simply duplicating the same documentation doesn't look like an improvement to me. So, can you say a word about your goal? |
One need to know where the path to documentation is (org.eclipse.jdt.releng/patchbuild isn't obvious). Wiki is the natural starting point to search for documentation "how to ...". So if you believe the documentation about patchbuild belongs to the source tree, I wont start discussion here, simply put a note to the wiki "how to create / maintain JDT patchbuilds" somewhere. |
"Obvious" is quite a relative term :) -- Actually, the wiki structure wasn't totally obvious to me either (the migration mediawiki -> github didn't improve this - see, e.g., verbatim copies of previously auto-generated lists, lack of hierarchy, categories, pages gone missing during the migration etc.). To give my edits a chance of being found in the wiki I added some new structure. Let's see if people now find what they are looking for... |
Oh yes absolutely. I wasn't aware of this, but know I understand your remark about JDT taking care about P-build. :)
Without having looked in the details and following the discussion I want to recommend to not use PDE-build as it's (currently) not in good shape and Maven+Tycho is in general the more recommended way. If you are interested and think there is a chance for success and can try to help you using Maven+Tycho instead. |
I know I'm old fashioned, but yes, I have thought of other options, here are some of the considerations:
But thanks for sharing your view :) -- if some person wants to set up a tycho build to achieve the same, fine, but that person is not me. |
The JDT project manages P-builds by itself since eclipse-jdt/eclipse.jdt.core#3244 Therefore all files and content related to P-builds can be removed from this repository.
I have now created the proposal to remove all P-build related files and content from the releng.aggr repo via:
Thank you for listing all the points. I've started to look into it and it looks quite promising and also super fast (the build completes in about 15s). I'll create a PR as soon as it's fully ready.
That's not correct. You can include artifacts from existing p2-repositories by adding the artifacts to the target-platform of the build without issues. Another point I noticed about the new build: Would you be interested in having the org.eclipse.jdt-patch-feature job defined as Jenkins-pipeline? Then all aspects of the build, like the JDK used or the script called is under version control too and the actual job definition just contains the URL of the |
@HannesWell from my p.o.v. the task is resolved, and we can move on. The build works, I know why it works and don't see a significant risk that it will break. Also I have no problem telling jenkins directly how to invoke a few shell commands, rather than learning yet another "language" for a jenkins pipeline. In the outset the goal was something owned and maintained by JDT. This we have. What's missing? |
In my opinion, the future would be well served (better served) by using a pipeline to bring improved structure and uniformity across all the builds. Thanks to @HannesWell the old spit-and-glue approach with a hodgepodge of jobs and shell scripts sprinkled here and there are a thing of the past. I think if you look at any functioning pipeline, its meaning will be pretty much self-evident and in the best case it's also self-contained, i.e., the shell scripts are in the pipeline. I would personal look to @HannesWell to provide best-of-breed solutions that are long term maintainable... |
I'm confused because initially releng wanted to offload this topic to JDT, and now that I resolved it, releng people want this thing to be done their way. In that case all this could've best stayed in the ownership of releng, I guess. Please make up your mind who should be responsible. |
One more issue: currently the build job is parameterized on purpose, so that I don't have to push to git every time I want to build against a fresh Y-build. I have no idea if pipelines can be parameterized, but when releng takes back responsibility, keep in mind that we need a strategy to get frequent updates consuming selected Y-builds, not necessarily the most recent one, if that has known regressions, etc. |
The JDT project manages P-builds by itself since eclipse-jdt/eclipse.jdt.core#3244 Therefore all files and content related to P-builds can be removed from this repository.
Some initial thoughts are in #2899 (comment)
The text was updated successfully, but these errors were encountered: