-
Notifications
You must be signed in to change notification settings - Fork 89
[RelEng] Update build configuration in release preparation pipeline #3255
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
[RelEng] Update build configuration in release preparation pipeline #3255
Conversation
Thanks @HannesWell. Looks fine to me. Rechecking on one point on Y-Build: While I Build is always on master, Y Build as you know will be on the BETA_JAVAXX branch which would be BETA_JAVA26 for Java 26. After BETA_JAVA25 merge to master, Y Build should not automatically triggered on BETA_JAVA25 even if there's an update on BETA_JAVA25 (by mistake, let's say). Is there any guard for this scenario? |
|
If I am to answer if the impact on Y-builds is OK, I would need a little help, what actually is the effect on Y-builds? Do we have a special schedule for RC phase? Do we have a precise definition of that RC phase to begin with? Other effects? Then for a moment I was thinking if #2706 is actually good for Y-builds (which have lower frequency of actual changes). In the light of intermittent test failures I actually appreciate when more builds are running on the same input to give an idea if the failure indicates a systematic bug. OTOH, I don't want to be a resource hog, so should the above scenario be resolved by touching some |
In fact this needs an even more detailed look: Even for Y-builds the eclipse.platform.releng.aggregator/cje-production/mbscripts/mb620_promoteUpdateSite.sh Line 26 in abd5d85
To make a long story short and to answer your question: As soon as the Or does this gap not really exist and you create the
That's a good question I was also wondering. For the Eclipse-TLPs respectively the RC-phase/schedule starts on Monday before RC1 and lasts until Wednesday before RC2. The build from Wednesday night is by default the last build of a release cycle and is to be signed off on Thursday and promoted on Friday. If problems are noticed early, another build can be started manually on Thursday or Friday (before the promotion). Or there is a RC2a/b/c... if problems are noticed later. The effect on Y-builds is indeed a good question. Correct me if I'm wrong, but for the beta branch eventually only the P-build repo is published in that sense that the P-build repo is referenced from the Marketplace entry for ECJ's support of a new java version, which is created on release day (and based on selected bundles from the Y-build)? |
That feature was introduced mainly for RC-schedule times where we have more frequent I-builds but at the same time have a great chance of no changes (if no bug is found...). or times around new-year where only little change happens. As Y-builds by defaults runs less often, it would probably not be unreasonable to turn that off for Y-builds. OTOH, the last time a Y-build was skipped due to no changes was in March (probably short before the Java-24 release?):
Does enforcing a new qualifier really helps with test-failures? I assumed they only helped with comparator errors. |
|
For the record - 4.37 RC1 I-builds happened only once per day and 2 I-builds per day for RC2 . As RC2 is too late in the cycle for significant work having 2 builds doesn't make sense and no one complaint about the single build per day for RC1 - I propose to remove this complication and have single I-build per day at all time even in RC phase. |
That sounds good to me. I plan to complete this with that proposal. The only 'complication' I would add is to that the cron-trigger patterns should be limited to stop (the regular) schedule after RC2-2 (as it's intended now).
@mpalat and @stephan-herrmann, I plan to continue with that for now and discuss with you a potential JDT/Y-build rc schedule in a separate PR. Unless you state that you don't want that at all? |
ac49af6 to
95663eb
Compare
and simplify the CRON expressions that define the I/Y-build schedules: - Drop the RC phase with additional builds because that late in the dev-cycle many changes are not expected/desired. If necessary an extra build can still be triggered manually. - Define the CRON expressions for I-builds so that the schedule automatically ends with the end of RC2. This avoids the need to change the CRON-trigger definition manually at the end of the RC phase.
95663eb to
775507f
Compare
|
This PR has been updated with the suggestion from my previous message. This is a pure RelEng change that's intended to be used for the upcoming release preparation. Therefore I'm submitting this now despite we are currently in a freeze-period. And as the verification build doesn't test this, I'm submitting this immediately. |
|
We have a build failure in https://ci.eclipse.org/jdt/job/eclipse.jdt.core-run.javac-25/26/console which tells me that that composite repo https://download.eclipse.org/eclipse/updates/Y-builds already points to 4.38-Y-builds, which IMHO doesn't make sense before Java 25 GA / final freeze of BETA_JAVA25. Is there any connection to this PR? Will Y-builds start to upload to 4.38-Y-builds already? As per eclipse-jdt/eclipse.jdt.core#4366 I'm preparing to tie the branch build to the more specific 4.37-build repo, which assumes that this will still be populated by current Y-builds. Is this assumption correct? |
no, today's Y-build still uploaded to 4.37-Y-builds. |
There's more to it, over to #3273 |
Yes that was changed intentionally, but after your remarks, I think that this point in time might be too early.
Thanks, I'll continue there. |
and simplify the definition and activation of the RC schedule: Update the cron-trigger to it's final value immediately. The extra builds are then triggered when the RC period arrives without activating that schedule manually.
This also simplifies the cron-triggers by just using the complement for the RC schedule (at least for I-builds) and by continuing the RC schedule for the sign-off Thursday. Nowadays we don't have to worry too much about extra triggers as an I/Y build is skipped when nothing has changed:
From a RelEng POV this has the advantage that the RC schedule doesn't have to be activated by an extra config/code-change but is just specified as necessary from the beginning.
FYI @akurtakov, @MohananRahul
and @jarthana, @mpalat, @stephan-herrmann as this also affects JDT's Y-build.
Are you all fine with this?
This is currently a draft as the update of the Y-build is currently missing and I have to check if the new I/Y-build jobs can be created in disabled state (and be activated once everything is ready).