Edgewall Software
Modify

Opened 10 years ago

Last modified 4 years ago

#833 new enhancement

Change build order to HEAD-revisions then revision-time.

Reported by: Mark Potter <mpotter@…> Owned by:
Priority: major Milestone: 0.6.2
Component: Build master Version: 0.6
Keywords: Cc: mpotter@…
Operating System:

Description

Originally a part of #556 (comment:4, comment:5, comment:7), but with a simpler prescribed solution.

From what I can tell currently builds are performed in the order: Revision time, most recent first.

Scenario

This is a real example.

  • "Build all revisions" is checked.
  • There where 5 active branches.
  • Each branch caused the build of between 21 and 25 targets.
Day 1 (4/28)
  • 10:10 a change was made to the target-branch. Prior to this the build system was idle.
  • by 18:00
    • 13 additional revisions were made to other branches.
    • 251 builds from these other more resent revisions still remain to be built.
    • Only 9 of the 21 builds from the target-revision had been built.
  • System continues building through the night, but no other target-revision builds are made.
Day 2 (4/29)
  • 04:59 the HEAD of all of the other branches had completed building.
    • However there are still 135 builds from other more resent revisions.
  • 11:43 another revision was made to another branch.
    • Thus there was 6:44 where all the other recipes had finished their HEADs, but the target-revision still did not get any more building. There were 74 builds still remaining from the more resent revisions.
  • by 18:00
    • 4 total additional revisions where made to other branches.
    • 144 builds from the more resent revisions still remain to be built.
  • System continues building through the night, but no other target-revision builds are made.
Day 3 (4/30)
  • 01:05 the HEAD of all of the other branches has completed building.
    • However there are still 118 builds from other more resent revisions.
  • 09:43 another revision was made to another branch.
    • Thus there was 8:38 where all the other recipes had finished their HEADs, but the target-revision still did not get any more builds. There were 66 builds still remaining from the more resent revisions.
  • 11:40 another revision was made to the target-branch.
    • Thus the original revision is no longer the HEAD of the target-branch.
  • 11:31 First build from this new revision completes.
  • 15:07 Fourteenth build from this new revision completes.
  • 15:17 and 15:19 Two more revisions to another branch are made.
  • 18:05 Twenty-first and last build from the new target-branch revision completes.

Desired Change

The HEAD of any recipe should take precedence over back-building.

Change the order in which builds are performed from revision-time to HEAD-revisions then revision-time.

Attachments (0)

Change History (2)

comment:1 in reply to: ↑ description ; follow-up: Changed 10 years ago by Mark Potter <mpotter@…>

Replying to Mark Potter <mpotter@…>:

Change the order in which builds are performed from revision-time to HEAD-revisions then revision-time.

Questions:

  • Where is this decision made? Is it here, or elsewhere?
  • Is there any existing code for deciding if a revision is the HEAD revision or any thoughts on how one might approach this? I can think of some SQL to do it, but there may be a better approach.

comment:2 in reply to: ↑ 1 Changed 10 years ago by Mark Potter <mpotter@…>

Replying to Mark Potter <mpotter@…>:

Questions:

  • Where is this decision made? Is it here, or elsewhere?

Ah, found it: queue.py get_build_for_slave.

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.