| Line 859... |
Line 859... |
| 859 |
* @throws SQLException
|
859 |
* @throws SQLException
|
| 860 |
*/
|
860 |
*/
|
| 861 |
private void planBuildOrder() throws Exception, SQLException
|
861 |
private void planBuildOrder() throws Exception, SQLException
|
| 862 |
{
|
862 |
{
|
| 863 |
|
863 |
|
| 864 |
//TODO - Planning is not working well
|
- |
|
| 865 |
/**
|
864 |
/**
|
| 866 |
* Current status
|
865 |
* Current status
|
| 867 |
* The selection of the package to build next is deeply flawed
|
866 |
* basicPlan - time to complete current ripple
|
| 868 |
* Currently it will select a directly planned package over a ripple - (perhaps that is good)
|
- |
|
| 869 |
*
|
- |
|
| 870 |
* Currently on the buildPlan of the 'selected' package is included in the BuildOrder
|
867 |
* FullPlan - Include all WIPS/RIPPLES into the release set
|
| 871 |
*
|
868 |
*
|
| 872 |
* The current algorithm is based on time - but all packages have zero build time ( in UTF )
|
869 |
* If the full Plan does NOT extend the time of the basicPLan by 20% then use the full plan
|
| 873 |
* Even if this is fixed the algorithm is broken as we will select the complete build with the shortest time
|
- |
|
| 874 |
* which will be the ripple of a leaf package ( perhaps that is good )
|
870 |
* otherwise complete the current ripple and the include WIPs/RIPPLEs\
|
| 875 |
*
|
- |
|
| 876 |
* Also:
|
- |
|
| 877 |
* [Done] Need to include all packages that we can now build into the final build plan, not just the first one and its build tree
|
- |
|
| 878 |
*
|
871 |
*
|
| 879 |
* [Done-ish]Need to generate a single package set - so that WIPS and others replace those in the final build set
|
- |
|
| 880 |
* [Done]Remove duplicates from the complete package set
|
- |
|
| 881 |
*
|
- |
|
| 882 |
* [Being Done] Need more test cases
|
872 |
* TEST requests will be done first.
|
| 883 |
*
|
- |
|
| 884 |
* [Done, in the UTF] Need to report all build options, not just the selected one
|
- |
|
| 885 |
* Data to RM may need some more info
|
- |
|
| 886 |
*
|
- |
|
| 887 |
* Cleanup the ANT build file - don't list all the release dependencies, just those needed to build the current package
|
- |
|
| 888 |
* Chances are - all we need is the new package version number
|
- |
|
| 889 |
*
|
873 |
*
|
| 890 |
* [Fixed] If a WIP on a package that has circular dependencies is added, then the WIP will be excluded. This prevents the problem being fixed.
|
- |
|
| 891 |
* Should not exclude a WIP of a package with a circular dependency
|
- |
|
| 892 |
*/
|
874 |
*/
|
| 893 |
|
875 |
|
| 894 |
// Process remaining packages which are need to be reproduced for this baseline.
|
876 |
// Process remaining packages which are need to be reproduced for this baseline.
|
| 895 |
// Determine the build file for each package
|
877 |
// Determine the build file for each package
|
| 896 |
// For daemon builds:
|
878 |
// For daemon builds:
|
| Line 960... |
Line 942... |
| 960 |
// Add the planned packages into the buildOrder
|
942 |
// Add the planned packages into the buildOrder
|
| 961 |
|
943 |
|
| 962 |
if( !basicPlan.planCollection.isEmpty() && !fullPlan.planCollection.isEmpty() )
|
944 |
if( !basicPlan.planCollection.isEmpty() && !fullPlan.planCollection.isEmpty() )
|
| 963 |
{
|
945 |
{
|
| 964 |
mLogger.error("Two plan selection: {} {}, {} <= {}", basicPlan.planTime,fullPlan.planTime, basicPlan.planTime * 12, fullPlan.planTime * 10);
|
946 |
mLogger.error("Two plan selection: {} {}, {} <= {}", basicPlan.planTime,fullPlan.planTime, basicPlan.planTime * 12, fullPlan.planTime * 10);
|
| - |
|
947 |
|
| - |
|
948 |
//
|
| - |
|
949 |
// Report numbers for Bryan - can be removed after Aug-2019
|
| - |
|
950 |
// See PX-14283
|
| - |
|
951 |
//
|
| - |
|
952 |
mLogger.error("PLAN STATS: Estimated time to complete current plan (ETC): {}", basicPlan.planTime);
|
| - |
|
953 |
mLogger.error("PLAN STATS: Estimated time to full plan (PBT): {}", fullPlan.planTime);
|
| - |
|
954 |
mLogger.error("PLAN STATS: Build Impact (BI): {}", (fullPlan.planTime - basicPlan.planTime) / (float)basicPlan.planTime);
|
| - |
|
955 |
mLogger.error("PLAN STATS: Build Efficency (BE): {}", (float)fullPlan.planTime / (fullPlan.planTime / basicPlan.planTime));
|
| - |
|
956 |
|
| - |
|
957 |
|
| 965 |
if ( (basicPlan.planTime * 12) <= (fullPlan.planTime * 10) )
|
958 |
if ( (basicPlan.planTime * 12) <= (fullPlan.planTime * 10) )
|
| 966 |
{
|
959 |
{
|
| 967 |
// Use the basic plan FOLLOWED by a plan that does not include
|
960 |
// Use the basic plan FOLLOWED by a plan that does not include
|
| 968 |
// Ripples done by the basic plan
|
961 |
// Ripples done by the basic plan
|
| 969 |
// WIPs/RIPPLES done in the course of doing the basic plan
|
962 |
// WIPs/RIPPLES done in the course of doing the basic plan
|