-
Notifications
You must be signed in to change notification settings - Fork 78
Releng Tasks
Page contains instructions for carrying out regular Eclipse Release engineering tasks. If you still have a query, please post the query in Releng Faq and contact the release engineer of the previous release Sravan Kumar Lakkimsetti.
https://wiki.eclipse.org/Platform-releng-faq
All the regular test(x86_64 only) are available at Automated Tests OS and Java version
Centos 8 | Java 11, Java 15 |
Windows 10 | Java 11 |
Macos | Java 11 |
We run platform ui suite as smoke test suite. If developers request we can run individual test suites using these jobs. All the Smoke Tests are available at Smoke Tests OS/Arch/Java version
Centos 8 | x86_64 | Java 11, Java 15, Java 16, Java 17 |
arm64 | Java 11, Java 15, Java 16, Java 17 | |
ppc64le | Java 11, Java 15 | |
Opensuse 15.2 | x86_64 | Java 11, Java 15, Java 16, Java 17 |
Ubuntu 20.04 | x86_64 | Java 11, Java 15, Java 16, Java 17 |
Deploys eclipse parent pom for use in gerrit Deploys prereqs Deploys JDT compiler
Removed old builds based on the retention policy and updates download page Verifies the I-build Cleans up equinox builds Mark any IBuild as unstable when "Unanticipated comparator errors" occurs, you need to pass below Job args: - Eclipse IBuild ID - Bugzilla bug ID
We have a new flag setting w.r.t. MAC signing which is never disabled. We only enable/disable the failing nature of IBuild.
Sharing more details on what exactly the flag does: Current flag value: <macSigner.forceContinue>true</macSigner.forceContinue> false: means the IBuild will try to do MAC signing and if MAC signing step fails the complete IBuild is declared as failure which can be noticed with: https://download.eclipse.org/eclipse/downloads/drops4/I20190224-0600/ Major drawback: Builds for all platform fails because of missing MAC signing step, even when the IBuild is testable but not releasable.
true: means the IBuild process try to sign the MAC build(if it woks we get a .dmg file extension for a signed build) e.g. https://download.eclipse.org/eclipse/downloads/drops4/I20190225-1800/ and if it fails we will force continue with the build which you can notice with: https://download.eclipse.org/eclipse/downloads/drops4/I20190224-0930/ and we will end up with .tar.gz(extension for un-signed build). Note: When MAC signing fails the MAC download link will not work in the download page as it continues to point to .dmg file, to make the download link work, rename it to .tar.gz Related bugs: bug 542843, bug 544555 and bug 544798
What to do if test result doesnt come for one or more platforms due to infrastructure issues in the I build ( especially on milestone candidate build)?
1) Open infrastructure bug like 552589
2) If the bug is fixed, then you can just retrigger the relevant tests here - https://ci.eclipse.org/releng/view/Automated%20tests/job/ep423I-unit-cen64-gtk3-java11/
(this example is for linux tests with java 11 but you need to find the appropriate test job here https://ci.eclipse.org/releng/view/Automated%20tests/)
A failure would appear something like
testJavadocLogs Failure javadoc errors and/or warnings in: platform.doc.isv.javadoc.txt jdt.doc.isv.javadoc.txt pde.doc.user.javadoc.txt See the javadoc logs linked from the test results page for details
java.lang.AssertionError: javadoc errors and/or warnings in: platform.doc.isv.javadoc.txt jdt.doc.isv.javadoc.txt
Steps:
1) Go to javadoc logs ( something like https://download.eclipse.org/eclipse/downloads/drops4/I20191106-1805/logs.php#javadoc )
2) Look at "Javadoc Logs" section
3) For different components there are link like jdt.doc.isv.schema.txt
4) All should be 0 KB ideally
5) Click the link that is not 0 KB - you will see a syntax error or encoding error
6) Either fix it or escalate to the respective component
1) Open WinSCP
2) Go to build.eclipse.org ( use eclipse user name and password) - rest default values
3) Go to /home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/I20191120-2335
4) Add file buildHidden
5) Run re-index job https://ci.eclipse.org/releng/job/eclipse.releng.updateIndex/
Update Calender for release 4.x - https://www.eclipse.org/eclipse/platform-releng/buildSchedule.html
Steps:
https://www.eclipse.org/eclipse/platform-releng/buildSchedule.html Click on the "Google Calendar" icon below the calendar widget. Add the events - 1. I builds 2. Milestone builds
Use this job using the new stream version as parameter to get the I-builds/Y-builds/milestones/release repo.
Get commit rights by creating a bug similar to Bug 549297 - Request for commit rights to SimRel repo
1) Send email to platform-dev, eclipse-dev and equinox-dev with the contents from https://www.eclipse.org/eclipse/platform-releng/buildSchedule.html
under the heading "Milestone Weeks" starting with the para Here's the usual schedule for milestone weeks
Make sure to include "The master branch stays closed..." even for RCs.
2) Send a mail to Roland Grunberg, Ed Merks for ECF, EMF and Orbit build contributions.
3) Enable milestone build schedule - https://ci.eclipse.org/releng/view/Builds/job/I-build-4.19/
1) Send mail for EMF (Bug 545717), ECF (BUG 545718) and Orbit (Bug 545719)
2) Check for any feature change wrt platform dependencies and send mail to cross-project-issues-dev - here is an example.
3) Last build on a milestone - Wednesday usually - Touch the documentation bundles - Use Touch Doc Bundles
Monitoring of builds:
Builds are triggered using https://hudson.eclipse.org/releng/view/Builds/
SWT builds are done from https://hudson.eclipse.org/releng/view/SWT%20Natives/
Launcher builds from https://hudson.eclipse.org/releng/view/Launcher/
Disable all future builds before creating the sign-off bug
Rebuild steps: First, ensure that the build input has been done for the SWT bundles by looking at the repository history: (this needs to be checked for any off-cycle builds) https://git.eclipse.org/c/platform/eclipse.platform.swt.git/ the last commit message should be like v<4 digit version>. If not, run https://ci.eclipse.org/releng/view/SWT%20Natives/job/1-SWT-Increment_if_needed/ Secondly, certain documentation bundles need to be touched in the following repo: (this needs to be done for last build of a milestone) https://git.eclipse.org/c/platform/eclipse.platform.common.git/ If a new build needs to be done trigger the appropriate job, for e.g. for I build: https://ci.eclipse.org/releng/view/Builds/
- Create Sign-Off bug (eg Bug 547968) and send mail to platform-dev, platform-releng-dev and equinox-dev [see here for example: https://www.eclipse.org/lists/platform-releng-dev/msg33740.html] - Disable future builds - enable post simrel contribution - List of cc for Sign off Bug: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected] - Send email to all mailing groups asking to give go/no go against the component. - For RC2 ALONE, disable I-build task listed under https://ci.eclipse.org/releng/view/Builds/ for this release
The build promotion (NOT TO BE DONE FOR M2 milestone) needs to be done in three steps. Before you proceed, there are certain preliminary steps need to be taken. Usually, the promotion is done on a Friday. And finally, before proceeding with the promotion get the candidate build ID that is required during the promotion.
Run the rename and promote job with the appropriate parameters: (Click on the job and then "Build with Parameters") - Can take up to 5 min. https://ci.eclipse.org/releng/view/Releng/job/eclipse.releng.renameAndPromote/
DROP_ID I20190109-1800 (copy the build ID here) (make sure there is no space before or after the ID)
CHECKPOINT M1 (blank for final releases)
SIGNOFF_BUG 543331 (numeric part only)
TRAIN_NAME 2020-03 (whatever is the current release planned for)
STREAM 4.15.0 (4.14.0 etc.)
DL_TYPE S (S is used to promote I-builds)
Click on Build to run the Job.
After the job has run successfully, get the mail template and update-site URL ( resides in mail template) from the job's build artifacts. https://ci.eclipse.org/releng/job/eclipse.releng.renameAndPromote/lastSuccessfulBuild/artifact/
Location of the content: stage2output/mailtemplate.txt
Verify all the links in the generated download page by putting in browser and updateSite (updateSite verification can be combined with simRel contribution. If there are any problems, simRel contribution will fail).
If the promotion is done before test results were available for the I-build (e.g. in case of a re-build of the candidate build), the test results will not be updated to the milestone S-build on the downloads page. To fix, see bug 559086.
For milestones, do this step immediately after the previous step.
For RCs, this step needs to be performed after SIMREL completes its previous milestone. To make sure that this has happened positively, Please wait until Frederic (or other from Foundation) sends the mail on promotion for previous checkpoint.
- Set up simrel eclipse env https://wiki.eclipse.org/Simrel/Contributing_to_Simrel_Aggregation_Build
- (setup Aggregator editor, clone simrel git repo, configure workspace)
- Clone http://git.eclipse.org/c/simrel/org.eclipse.simrel.build.git or ssh://[email protected]:29418/simrel/org.eclipse.simrel.build (for committers) and import it to workspace.
- Open simrel.aggr in the CBI Aggregator Editor. (Install from update site https://www.eclipse.org/cbi/downloads/#p2repoAggregator)
- Then open properties view
- Select Eclipse in the CBI aggregator editor and select Mapped Repository - properties view will get updated with the details from Eclipse project.
- Update Location in the properties view. For eg 4.12 M3 the location is http://download.eclipse.org/eclipse/updates/4.12milestones/S-4.12M3-201905221800/
- Repeat the same steps for equinox.
- Updating p2 repo site for eclipse and equinox corresponds to files ep.aggrcon and equinox.aggrcon
- Note update site, not download URL e.g.: http://download.eclipse.org/eclipse/updates/4.7-M-builds/M-4.7.2RC3-201711230800/
- There will be 1 problem that will come up
In windows machine, there will be formatting issue. Ignore all files except ep.aggrcon & equinox.aggrcon
open ep.aggrcon - Go to File > Convert Line delimiter to > Unix will solve
open equinox.aggrcon - Go to File > Convert Line delimiter to > Unix will solve
- (Instead of below, you can just create gerrit patch and if you get SUCCESS in gerrit patch, it is good) (optional) Right-click on Aggregation > clean Aggregation, Validate, Validate Aggregation in a sequence. (Don't click on Build Aggregation)
If gerrit successful, push changes to ep.aggrcon & equinox.aggrcon to gerrit (comment for eg for 4.12 M3 - use year - month format: Eclipse platform and Equinox Contribution for 2019-06 M3) and also add signed-off.
Submit the patch after gerrit passes.
In cases where gerrit fails, checks for issues similar to this: https://www.eclipse.org/lists/cross-project-issues-dev/msg16562.html
then disable object team like this https://git.eclipse.org/c/simrel/org.eclipse.simrel.build.git/commit/?id=7b08585c85efb9b5f8d3cc1f01eda2bc905a3655
Run the following job with appropriate parameter as given in the example:
https://ci.eclipse.org/releng/view/Releng/job/eclipse.releng.stage2DeferredMakeVisible/
DROP_ID I20190109-1800 (copy the build ID here) (make sure there is no space before or after the ID)
CHECKPOINT M1 (blank for final releases)
STREAM 4.15.0 (4.14.0 etc.)
DL_TYPE S (S is used to promote I-builds)
Note: It usually takes few minutes to make the build visible and if build is not visible after 30 mins on downloads page https://download.eclipse.org/eclipse/downloads/index.html and it's visible on below page: https://download.eclipse.org/eclipse/downloads/createIndex4x.php
Then run job: https://ci.eclipse.org/releng/job/eclipse.releng.updateIndex/ [Again wait for 30 mins to reflect the changes.]
Finally, after Milestone builds promotion, disable Milestone build scheduled for the build job used in the preliminary steps. (comment out with #)
Send a note to mailing lists platform-releng-dev, eclipse-dev, equinox-dev, platform-dev about the availability of the release and a reminder about the next milestones if any. For e.g.,
We are pleased to announce that 2019-03 M1 is available for download and updates.
Eclipse downloads:
http://download.eclipse.org/eclipse/downloads/drops4/S-4.11M1-201901091800/
Update existing (non-production) installs:
http://download.eclipse.org/eclipse/updates/4.11milestones/
Specific repository good for building against:
http://download.eclipse.org/eclipse/updates/4.11milestones/S-4.11M1-201901091800/
Equinox specific downloads:
http://download.eclipse.org/equinox/drops/S-4.11M1-201901091800/
Thank you to everyone who made this checkpoint possible.
Should there be a request for milestone, here is the schedule for RC4:
Sep 6, 2017 Wednesday 4.7.1 RC4 candidate build
Sep 7, 2017 Thursday Defect verification and signoff
Sep 8, 2017 Friday Promotion and contribution to Simrel
- Deployment of JDT compiler after every milestone https://wiki.eclipse.org/Platform-releng/Platform_Build_Automated#Routine_release_engineering_tasks_for_builds
- After every milestone and release we should update the ECJ compiler used by the build and in maven repo
- Open a bug for this, for eg: 543355
- Run the job to copy and deploy the ECJ compiler -https://ci.eclipse.org/jdt/job/copyAndDeployJDTCompiler/
Search for version of below plugins directory e.g. https://download.eclipse.org/eclipse/updates/4.11-I-builds/I20190225-0200/plugins/?d Below are required job build parameter: //org.eclipse.jdt.core_ NOT REQUIRED WITH THE NEW JOB
//org.eclipse.jdt.compiler.apt_
NOT`` ``REQUIRED
``WITH`` ``THE`` ``NEW`` ``JOB
org.eclipse.jdt.core.compiler.batch_ JUST THIS IS REQUIRED
- You can manually check if the compiler is copied on below site(takes few minutes to update): https://repo.eclipse.org/content/repositories/eclipse-staging/org/eclipse/jdt/
- Update the versions in eclipse-platform-parent/pom.xml in eclipse.platform.releng.aggregator.git repo. (search for cbi-ecj)
Update EMF (Bug 545717), ECF (BUG 545718) and/or Orbit (Bug 545719) of Maintenance branch
After every release we should update the orbit url in the maintenance branch created for the release to use the release location. Open a bug for this, sharing an old git commit from the same: https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?h=R4_9_maintenance&id=f3fc7c7c1ec159c6e918eb307c6878bc84474aa3 Files to be updated are: eclipse.platform.releng.prereqs.sdk/eclipse-sdk-prereqs.target
Open a bug 545053
Change build-functions.shsource file and update below two parameters: FREEZE_PARAMS API_FREEZE_REF_LABEL
Create a bug for branch creation - see here for example Bug 545104 - Create R4_11_maintenance branch from 4.11RC2 Create bug for moving I builds - eg: Bug 545103 - Move I-builds to R4_11_maintenance branch Create bug for master preparation - Bug 545088 - Prep work for 4.12 and open master for development
- Checking Composite states
Job to be run : https://ci.eclipse.org/releng/job/eclipse.releng.checkCompositesValidity/
Might need some fixes like https://git.eclipse.org/r/#/c/149322/
- For New Eclipse version, the qualifiers for all the brand plug-ins / features are bumped up, this may require the force version increase of those features and plug-ins. Mails should be sent to eclipse-dev and platform-releng and it is the responsibility of Project leads to correct it.
Sample Bug : Bug 550777 - Version bumps for 4.14 stream
Sample reports are found at https://download.eclipse.org/eclipse/downloads/drops4/I20190911-1805/buildlogs/reporeports/index.html Feature versions compared to reference repository Bundle versions compared to reference repository
- Create Infrastructure bug similar to Bug 548564 - Umbrella Bug to record infrastructure issues during 4.13
1. https://ci.eclipse.org/releng/job/eclipse.releng.renameAndPromote
Change S to R
Checkpoint will be empty
Uncheck "Dry Run"
2. Contribute to Simrel
3. Upload to Maven Central Bug 551086 - Publish Eclipse 4.13 to maven central
Submit the first patch Run https://ci.eclipse.org/releng/view/Publish%20to%20Maven%20Central/job/CBIaggregator/ Run PublishJDTtoMaven, PublishPDEtoMaven and PublishPlatformtoMaven giving the build number of previous step. Copy content of baseline_new to baseline Submit repo -> Release on the day of release
- Update "updateProductVersion.sh" script with proper source and target version properly for all 4 mentioned files.
- From Shell command prompt go to "eclipse.platform.releng.aggregator" directory
- Then we should run the script using command: ./scripts/updateProductVersion.sh
- Above script will take around less than a minute max to update the complete Eclipse sources.
- Make sure to create the gerrit for for "eclipse.platform.releng.aggregator" in first place - IIRC gerrit build will fail for this change, you can commit without gerrit validation
- After committing above change, you need to deploy the POM for the new Eclipse version 4.14
- e.g. For new Eclipse release 4.14 [Note: version value will change depending on the release] rub below jobs:
https://ci.eclipse.org/releng/job/deploy-eclipse-platform-parent-pom-4.14/
https://ci.eclipse.org/releng/job/deploy-eclipse-sdk-target-pom-4.14/
- Now create the gerrit patches for all sub-modules which should pass.
- Finally commit all the modified files in each of the individual submodules of Releng.
All projects can be tagged with the required tag after a release at one go using the following job (if you have the permission, i.e.):
https://ci.eclipse.org/releng/job/TagEclipseRelease/
Important Links:
Temporary build location used by releng build jobs - http://build.eclipse.org/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/
Temporary build location for Update site - http://build.eclipse.org/eclipse/builds/4I/siteDir/updates/4.8-I-builds/
Creating maintenance branch:
https://hudson.eclipse.org/releng/job/ep-createMaintenanceBranch
1. Cleanup of download page 2. Archive the release builds 3. Update the update url in SimRel repo
Release Engineering Build schedule - Update https://www.eclipse.org/eclipse/platform-releng/buildSchedule.html
Refer to previous release schedule and remember to add special schedules during milestone week or quite week.
cd /shared/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/ rm -rf I20191123-0100
- rm -rf S-* I20191030-1800 I20191031-1325 I20191031-1800 I20191101-0300 I20191101-1800 I20191102-1800 I20191103-1800 I20191104-1800 I20191105-0025 I20191105-1800 I20191106-1805 I20191107-1800 I20191108-1800 I20191109-0330 I20191109-0650 I20191109-1800 I20191110-1800 I20191111-0145 I20191111-0435 I20191111-0655 I20191111-0920 I20191111-1800 I20191112-1800 I20191113-1800 I20191113-2315 I20191114-0410 I20191114-1800 I20191115-1800 I20191116-0600 I20191116-1800 I20191117-0600 I20191117-1800 I20191118-0600 I20191118-1800 I20191118-2230 I20191119-0020 I20191119-0315 I20191119-0510 I20191119-0725 I20191119-0840 I20191119-0850 I20191119-1155 I20191119-1215 I20191119-1235 I20191119-1250 I20191119-1800 I20191119-2200 I20191120-0600 I20191120-0840 I20191120-1800 I20191120-2335 I20191122-1800 I20191123-010 I20191123-0600 I20191123-1115 I20191123-1800 I20191124-0600 I20191124-1800 I20191125-0600 I20191125-1800 I20191126-0600 I20191126-1800 I20191126-2315 I20191127-0600 I20191127-1800 I20191129-1800 I20191130-0600 I20191130-1800 I20191201-0600 I20191201-1800 I20191202-0600 I20191202-1800 I20191203-0600 I20191203-1800 I20191204-0600 I20191204-1800 I20191209-2205 I20191210-0425 I20191210-0450 I20191210-0505 I20191210-0530 I20191210-0545 I20191210-0600 I20191210-1800 I20191211-0135 I20191211-1805 I20191212-1800 I20191213-0155 I20191213-1805 I20191214-1800 I20191215-1800 I20191216-1805 I20191217-1800
cd /home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/ rm -rf I20191028-1800
- rm -rf I20191202-0600 I20191125-0600 I20191118-0600 I20191104-1800 I20191014-1800 I20191007-0625 I20190930-1800 I20190923-0615 I20190916-1800 I20190909-1520
- rm -rf S-* R-4.11-201903070500
- cp -r R-4.14-201912100610 /home/data/httpd/archive.eclipse.org/eclipse/downloads/drops4/.
- cd /home/data/httpd/download.eclipse.org/equinox/drops/
- rm -rf R-4.11-201903070500 S-*
- cd /shared/eclipse/builds/4I/siteDir/equinox/drops/
- rm -rf I2019* S-*
- cd /home/data/httpd/download.eclipse.org/eclipse/updates
- time rm -rf 4.14-I-builds
cd /shared/eclipse/builds/4I/siteDir/updates time rm -rf 4.14-I-builds
During promotion there are three folders that gets created after renameAndPromote job.
milestone repository or release repository composite will get updated after stage2DeferredMakeVisible job.
The folders are located at
- eclipse downloads /home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/
- equinox downloads /home/data/httpd/download.eclipse.org/equinox/drops/
- Repository /home/data/httpd/download.eclipse.org/eclipse/updates/milestones/
buildid is calculated <S|R>--
To remove above folder one needs to create a jenkins job on relend jipp and execute
to remove form composite we need to use p2 ant task. For this we need to run eclipse in command line and use removeFromComposite.xml script to remove a build from composite.
Please Note: this needs to be run before removal of promoted folders
1. Recommended OS is linux. On windows you'll encounter issues with long path names. Another recommendation is create a linux machine on fyre in either SVL or RTP for this setup. Maven build requires high speed connectivity to maven central, download.eclipse.org, repo.eclipse.org etc. Connectivity from ISL locations is not stable enough for this.
2. Install JDK 11
3. Export JAVA_HOME with JDK 11 root folder (put it in your .bash_profile)
4. Get apache maven from https://maven.apache.org/download.cgi
5. Extract the maven from the zip file
6. Add /bin and $JAVA_HOME/bin to your PATH (put in your .bash_profile or alternately in .bashrc on Ubuntu)
7. run mvn -version: Out put should similar to this
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T11:41:47-07:00)
Maven home: /home/sravanl/maven/apache-maven-3.6.0
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.14.4.el7.x86_64", arch: "amd64", family: "unix"
1. Clone eclipse.platform.releng.aggregator repository
$> git clone --recurse-submodules [email protected]:eclipse-platform/eclipse.platform.releng.aggregator.git
2. To update git repos to latest on master use the following script
#!/bin/bash
git clean -f -d -x
git submodule foreach git clean -f -d -x
git reset --hard HEAD
git submodule foreach git reset --hard HEAD
git checkout master
git submodule foreach git checkout master
git pull --rebase
git submodule foreach git pull --rebase
Use the following command to build Eclipse platform from the root folder of eclipse.platform.releng.aggregator
$> mvn -U clean verify -DskipTests=true
optional parameter -l
this will put the complete build log into a file
Configure the Job SWT-native-build
Go to the "Build" Section
Alter the "Projects to build" Ex: To remove the native build for ppcle remove the project gtk_linux_ppc64le
Complete list is win32_x86_64,gtk_linux_x86_64,cocoa_x86_64,gtk_linux_ppc64le,gtk_linux_aarch64
Update bundles/org.eclipse.swt/buildSWT.xml like https://git.eclipse.org/r/#/c/150183/
Re trigger the Job to verify
Goal to be added under Build->Invoke top-level Maven targets
-Pbree-libs