Subversion Repositories DevTools

Rev

Rev 7096 | Rev 7098 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7096 Rev 7097
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