Skip to main content
Jump to: navigation, search

Difference between revisions of "Platform-releng-faq"

m (draft of new FAQ)
(Trigger builds manually)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{warning| The document that used to be here has been moved to [[Platform-releng-faq-obsolete]] because the majority of [[Platform-releng-faq-obsolete]] was no longer accurate. There might still be some items there that are still true or interesting for some people, and, ideally, someone could, someday, go through each item carefully and decide if there is any merit to moving the item "up" to this document. But in the meantime, it was thought best to "start over".}}
 
 
 
== Where are the basics of the Platform build documented? ==  
 
== Where are the basics of the Platform build documented? ==  
  
Line 7: Line 5:
 
== Does that Platform Build document describe the so-called Production Build? ==  
 
== Does that Platform Build document describe the so-called Production Build? ==  
  
No, not exactly. It forms the heart of the production build, but there are other things done in the production build. Those are described in [[Platform-releng/Platform_Build_Automated| Platform Build Automated]]. So in general, anyone wanting to learn or reproduce our build should first read [[Platform-releng/Platform_Build| Platform Build]] and then read [[Platform-releng/Platform_Build_Automated| Platform Build Automated]].  
+
No, not exactly. It forms the heart of the production build, but there are other things done in the production build. Those are described in [[Platform-releng/Platform_Build_Automated| Platform Build Automated]]. So in general, anyone wanting to learn or reproduce our build should first read [[Platform-releng/Platform_Build| Platform Build]] and then read [[Platform-releng/Platform_Build_Automated| Platform Build Automated]].
 +
 
 +
=== Trigger builds manually ===
 +
 
 +
The builds can be triggered manually or scheduled to run at a specified time. The build jobs are available at [https://ci.eclipse.org/releng/view/Builds/ releng JIPP instance]. We use [https://ci.eclipse.org/releng/view/Builds/job/I-build-4.13/ I-build] for integration builds. These jobs can be directly triggered after logging in or can be scheduled by modifying the configuration of the specific job.
 +
 
 +
Syntax of cron consists of 5 fields separated by TAB or whitespace as below:
 +
    MINUTE HOUR DOM MONTH DOW
 +
 
 +
    MINUTE Minutes within the hour (0–59)
 +
    HOUR The hour of the day (0–23)
 +
    DOM The day of the month (1–31)
 +
    MONTH The month (1–12)
 +
    DOW The day of the week (0–7) where 0 and 7 are Sunday, 1 is Monday, 2 is Tuesday, 3 is Wednesday, 4 is Thursday, 5 is Friday and 6 is Saturday
  
 
== What other tasks does Platform Releng do? ==  
 
== What other tasks does Platform Releng do? ==  
Line 16: Line 27:
 
: [[Platform-releng/Checklist| releng checklists]]
 
: [[Platform-releng/Checklist| releng checklists]]
 
: [[Platform-releng/Updating_Branding| updating branding]]
 
: [[Platform-releng/Updating_Branding| updating branding]]
 +
: [[Platform-releng/Publish_to_Maven_Central| publishing to Maven Central]]
 +
: [[Platform-releng/Build_Clean_up| build cleanup]]
  
 
== Are there documents that Platform committers should read or be aware of? ==  
 
== Are there documents that Platform committers should read or be aware of? ==  
Line 26: Line 39:
 
: [[Performance/Automated_Tests| performance testing]]
 
: [[Performance/Automated_Tests| performance testing]]
  
[Feel free to add more items to this document, when questions are frequently asked.]]
+
== What are common build problems? ==
 +
=== Build failure with "Cannot satisfy dependency:" ===
 +
 
 +
----------------------------------------------
 +
Typical error message :
 +
  [ERROR] Cannot resolve project dependencies:
 +
  [ERROR]  Software being installed: org.eclipse.equinox.sdk.product 4.9.0.qualifier
 +
  [ERROR]  Missing requirement: org.eclipse.equinox.serverside.sdk.feature.group 3.15.0.v20180803-1236 requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.server.p2.feature.group
 +
  [1.5.0.v20180710-1609,1.5.0.v20180710-1609]' but it could not be found
 +
  [ERROR]  Cannot satisfy dependency: org.eclipse.equinox.sdk.feature.group 3.15.0.v20180803-1236 depends on: org.eclipse.equinox.p2.iu; org.eclipse.equinox.serverside.sdk.feature.group
 +
  [3.15.0.v20180803-1236,3.15.0.v20180803-1236]
 +
  [ERROR]  Cannot satisfy dependency: org.eclipse.equinox.sdk.product 4.9.0.qualifier depends on: org.eclipse.equinox.p2.iu; org.eclipse.equinox.sdk.feature.group 0.0.0
 +
  [ERROR]
 +
 
 +
Problem Analysis and solution:
 +
 
 +
This happens when we have nested features, in this case we have the following features nested.
 +
org.eclipse.equinox.server.p2
 +
org.eclipse.equinox.serverside.sdk
 +
org.eclipse.equinox.server.p2
 +
org.eclipse.equinox.sdk
 +
In the above case org.eclipse.equinox.server.p2 got modified and other feature did not recognize that. This causes comparator to replace other three features with baseline and causing above problem.
 +
Can be rectified by updating forceQualifierUpdate.txt file present alongside those features. Also raised [https://bugs.eclipse.org/bugs/show_bug.cgi?id=537718 Bug 537718] against Tycho to address this
 +
----------------------------------------------
 +
 
 +
=== Build failure while creating base builder ===
 +
----------------------------------------------
 +
Typical error message:
 +
  Installing org.eclipse.pde.api.tools 1.1.400.v20180727-1338.
 +
  Installing org.eclipse.releng.build.tools.feature.feature.group 1.0.101.v20170602-0639.
 +
  Installing org.eclipse.wtp.releng.tools.feature.feature.group 1.2.0.v201405010053.
 +
  Installing org.apache.derby.core.feature.feature.group 10.11.1.1-v201411092200.
 +
  Cannot complete the install because of a conflicting dependency.
 +
  Software being installed: API Tools 1.1.400.v20180727-1338 (org.eclipse.pde.api.tools 1.1.400.v20180727-1338)
 +
  Software currently installed: Eclipse Platform 4.8.0.I20180611-0500 (org.eclipse.platform.ide 4.8.0.I20180611-0500)
 +
  Only one of the following can be installed at once:
 +
    Debug Core 3.12.0.v20180509-0959 (org.eclipse.debug.core 3.12.0.v20180509-0959)
 +
    Debug Core 3.13.0.v20180728-0102 (org.eclipse.debug.core 3.13.0.v20180728-0102)
 +
  Cannot satisfy dependency:
 +
    From: Java Development Tools Launching Support 3.11.0.v20180728-0103 (org.eclipse.jdt.launching 3.11.0.v20180728-0103)
 +
    To: osgi.bundle; org.eclipse.debug.core [3.13.0,4.0.0)
 +
  Cannot satisfy dependency:
 +
    From: Java Development Tools Launching Support 3.11.0.v20180728-2102 (org.eclipse.jdt.launching 3.11.0.v20180728-2102)
 +
    To: osgi.bundle; org.eclipse.debug.core [3.13.0,4.0.0)
 +
  Cannot satisfy dependency:
 +
    From: API Tools 1.1.400.v20180727-1338 (org.eclipse.pde.api.tools 1.1.400.v20180727-1338)
 +
    To: osgi.bundle; org.eclipse.jdt.launching [3.6.100,4.0.0)
 +
  Cannot satisfy dependency:
 +
    From: Eclipse Platform 4.8.0.v20180611-0656 (org.eclipse.platform.feature.group 4.8.0.v20180611-0656)
 +
    To: org.eclipse.equinox.p2.iu; org.eclipse.debug.core [3.12.0.v20180509-0959,3.12.0.v20180509-0959]
 +
  Cannot satisfy dependency:
 +
    From: Eclipse Platform 4.8.0.I20180611-0500 (org.eclipse.platform.ide 4.8.0.I20180611-0500)
 +
    To: org.eclipse.equinox.p2.iu; org.eclipse.platform.feature.group [4.8.0.v20180611-0656,4.8.0.v20180611-0656]
 +
 
 +
Problem Analysis and solution:
 +
 
 +
We use an eclipse instance for generating different build reports. This instance is created by adding org.eclipse.pde.api.tools, org.eclipse.releng.build.tools.feature.feature.group, org.apache.derby.core.feature.feature.group and org.eclipse.wtp.releng.tools.feature.feature.group to eclipse platform product. If you see the above error message it implies that one of the above feature requires higher version of eclipse platform product. This errors happens because the p2director cannot upgrade through commandline. This can be fixed by changing the base dir and base label [https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse.platform.releng.tychoeclipsebuilder/eclipse/getBaseBuilderAndTools.xml#n94 here]
 +
----------------------------------------------
 +
 
 +
=== How to promote a failed build due to base builder creation failure ===
 +
 
 +
For this you'll need shell account
 +
During the build we create
 +
 
 +
eclipse build at https://build.eclipse.org/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/(/shared/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/)
 +
 
 +
repo at https://build.eclipse.org/eclipse/builds/4I/siteDir/updates/(/shared/eclipse/builds/4I/siteDir/updates/) and
 +
 
 +
equinox build at https://build.eclipse.org/eclipse/builds/4I/siteDir/equinox/drops/(/shared/eclipse/builds/4I/siteDir/equinox/drops/)
 +
 
 +
Copy eclipse build folder to /home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/
 +
 
 +
Copy equinox build folder to /home/data/httpd/download.eclipse.org/equinox/drops/
 +
 
 +
Copy repo folder to /home/data/httpd/download.eclipse.org/updates/
 +
 
 +
Update compositeArtifacts.jar and compositeContent.jar available for composite repo to include new repo.
 +
----------------------------------------------
 +
 
 +
== What are common infrastructure issues affect releng ==
 +
Infrastructure issues are documented here
 +
: [[Platform_Releng/Eclipse_Infrastructure_Issues| Infrastructure issues at Eclipse foundation]]
 +
 
 +
== Where are the old release engineering faq used till 4.4. release ==
 +
They are documented here
 +
: [[Platform-releng-faq-obsolete| Releng faq till 4.4. release]]
 +
 
 +
[Feel free to add more items to this document, when questions are frequently asked.]
  
  

Latest revision as of 04:16, 9 July 2019

Where are the basics of the Platform build documented?

In Platform Build.

Does that Platform Build document describe the so-called Production Build?

No, not exactly. It forms the heart of the production build, but there are other things done in the production build. Those are described in Platform Build Automated. So in general, anyone wanting to learn or reproduce our build should first read Platform Build and then read Platform Build Automated.

Trigger builds manually

The builds can be triggered manually or scheduled to run at a specified time. The build jobs are available at releng JIPP instance. We use I-build for integration builds. These jobs can be directly triggered after logging in or can be scheduled by modifying the configuration of the specific job.

Syntax of cron consists of 5 fields separated by TAB or whitespace as below:

   MINUTE HOUR DOM MONTH DOW
   MINUTE	Minutes within the hour (0–59)
   HOUR		The hour of the day (0–23)
   DOM		The day of the month (1–31)
   MONTH	The month (1–12)
   DOW		The day of the week (0–7) where 0 and 7 are Sunday, 1 is Monday, 2 is Tuesday, 3 is Wednesday, 4 is Thursday, 5 is Friday and 6 is Saturday

What other tasks does Platform Releng do?

Other tasks are described in several other documents, each has various degrees of accuracy or being up do date:

miscellaneous releng tasks
releng checklists
updating branding
publishing to Maven Central
build cleanup

Are there documents that Platform committers should read or be aware of?

The following are good, though some sections may need to be brought up to date.

the Eclipse Projects rhythm
incrementing version numbers
automated (production) testing
performance testing

What are common build problems?

Build failure with "Cannot satisfy dependency:"


Typical error message :

 [ERROR] Cannot resolve project dependencies:
 [ERROR]   Software being installed: org.eclipse.equinox.sdk.product 4.9.0.qualifier
 [ERROR]   Missing requirement: org.eclipse.equinox.serverside.sdk.feature.group 3.15.0.v20180803-1236 requires 'org.eclipse.equinox.p2.iu; org.eclipse.equinox.server.p2.feature.group 
 [1.5.0.v20180710-1609,1.5.0.v20180710-1609]' but it could not be found
 [ERROR]   Cannot satisfy dependency: org.eclipse.equinox.sdk.feature.group 3.15.0.v20180803-1236 depends on: org.eclipse.equinox.p2.iu; org.eclipse.equinox.serverside.sdk.feature.group 
 [3.15.0.v20180803-1236,3.15.0.v20180803-1236]
 [ERROR]   Cannot satisfy dependency: org.eclipse.equinox.sdk.product 4.9.0.qualifier depends on: org.eclipse.equinox.p2.iu; org.eclipse.equinox.sdk.feature.group 0.0.0
 [ERROR]

Problem Analysis and solution:

This happens when we have nested features, in this case we have the following features nested. org.eclipse.equinox.server.p2 org.eclipse.equinox.serverside.sdk org.eclipse.equinox.server.p2 org.eclipse.equinox.sdk In the above case org.eclipse.equinox.server.p2 got modified and other feature did not recognize that. This causes comparator to replace other three features with baseline and causing above problem. Can be rectified by updating forceQualifierUpdate.txt file present alongside those features. Also raised Bug 537718 against Tycho to address this


Build failure while creating base builder


Typical error message:

 Installing org.eclipse.pde.api.tools 1.1.400.v20180727-1338.
 Installing org.eclipse.releng.build.tools.feature.feature.group 1.0.101.v20170602-0639.
 Installing org.eclipse.wtp.releng.tools.feature.feature.group 1.2.0.v201405010053.
 Installing org.apache.derby.core.feature.feature.group 10.11.1.1-v201411092200.
 Cannot complete the install because of a conflicting dependency.
  Software being installed: API Tools 1.1.400.v20180727-1338 (org.eclipse.pde.api.tools 1.1.400.v20180727-1338)
  Software currently installed: Eclipse Platform 4.8.0.I20180611-0500 (org.eclipse.platform.ide 4.8.0.I20180611-0500)
  Only one of the following can be installed at once: 
   Debug Core 3.12.0.v20180509-0959 (org.eclipse.debug.core 3.12.0.v20180509-0959)
   Debug Core 3.13.0.v20180728-0102 (org.eclipse.debug.core 3.13.0.v20180728-0102)
  Cannot satisfy dependency:
   From: Java Development Tools Launching Support 3.11.0.v20180728-0103 (org.eclipse.jdt.launching 3.11.0.v20180728-0103)
   To: osgi.bundle; org.eclipse.debug.core [3.13.0,4.0.0)
  Cannot satisfy dependency:
   From: Java Development Tools Launching Support 3.11.0.v20180728-2102 (org.eclipse.jdt.launching 3.11.0.v20180728-2102)
   To: osgi.bundle; org.eclipse.debug.core [3.13.0,4.0.0)
  Cannot satisfy dependency:
   From: API Tools 1.1.400.v20180727-1338 (org.eclipse.pde.api.tools 1.1.400.v20180727-1338)
   To: osgi.bundle; org.eclipse.jdt.launching [3.6.100,4.0.0)
  Cannot satisfy dependency:
   From: Eclipse Platform 4.8.0.v20180611-0656 (org.eclipse.platform.feature.group 4.8.0.v20180611-0656)
   To: org.eclipse.equinox.p2.iu; org.eclipse.debug.core [3.12.0.v20180509-0959,3.12.0.v20180509-0959]
  Cannot satisfy dependency:
   From: Eclipse Platform 4.8.0.I20180611-0500 (org.eclipse.platform.ide 4.8.0.I20180611-0500)
   To: org.eclipse.equinox.p2.iu; org.eclipse.platform.feature.group [4.8.0.v20180611-0656,4.8.0.v20180611-0656]

Problem Analysis and solution:

We use an eclipse instance for generating different build reports. This instance is created by adding org.eclipse.pde.api.tools, org.eclipse.releng.build.tools.feature.feature.group, org.apache.derby.core.feature.feature.group and org.eclipse.wtp.releng.tools.feature.feature.group to eclipse platform product. If you see the above error message it implies that one of the above feature requires higher version of eclipse platform product. This errors happens because the p2director cannot upgrade through commandline. This can be fixed by changing the base dir and base label here


How to promote a failed build due to base builder creation failure

For this you'll need shell account During the build we create

eclipse build at https://build.eclipse.org/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/(/shared/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/)

repo at https://build.eclipse.org/eclipse/builds/4I/siteDir/updates/(/shared/eclipse/builds/4I/siteDir/updates/) and

equinox build at https://build.eclipse.org/eclipse/builds/4I/siteDir/equinox/drops/(/shared/eclipse/builds/4I/siteDir/equinox/drops/)

Copy eclipse build folder to /home/data/httpd/download.eclipse.org/eclipse/downloads/drops4/

Copy equinox build folder to /home/data/httpd/download.eclipse.org/equinox/drops/

Copy repo folder to /home/data/httpd/download.eclipse.org/updates/

Update compositeArtifacts.jar and compositeContent.jar available for composite repo to include new repo.


What are common infrastructure issues affect releng

Infrastructure issues are documented here

Infrastructure issues at Eclipse foundation

Where are the old release engineering faq used till 4.4. release

They are documented here

Releng faq till 4.4. release

[Feel free to add more items to this document, when questions are frequently asked.]

Back to the top