Changeset 174366 in webkit


Ignore:
Timestamp:
Oct 6, 2014 2:37:28 PM (10 years ago)
Author:
ap@apple.com
Message:

build.webkit.org/dashboard: Add commit queue
https://bugs.webkit.org/show_bug.cgi?id=137462

Reviewed by Tim Horton.

Generalizes EWS into "bubble queue", which also includes commit queue and style queue.
Style queue is still invisible, as it doesn't have an associated platform, and also
we never have problems with it anyway, so it's not worth watching.

The UI now allows for adding more bots to the Other column (such as leaks bot).
To make that actually happen, we'll need to refactor QueueView, allowing for multiple
sources of data in a cell.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueue.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js.

(BubbleQueue):
(BubbleQueue.prototype.get statusPageURL):
(BubbleQueue.prototype.update):
(BubbleQueue.prototype.loadDetailedStatus):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js.

(BubbleQueueServer):
(BubbleQueueServer.prototype.jsonQueueLengthURL):
(BubbleQueueServer.prototype.jsonQueueStatusURL):
(BubbleQueueServer.prototype.queueStatusURL):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js.

(BubbleQueueView):
(BubbleQueueView.prototype.update.appendQueue):
(BubbleQueueView.prototype.update):
(BubbleQueueView.prototype._addQueueHeadingToPopover):
(BubbleQueueView.prototype._popoverContentForBubbleQueue):
(BubbleQueueView.prototype._presentPopoverForBubbleQueue):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:

(.bubble-server-popover .popover-queue-heading .queue-charts-link):
(.bubble-server-popover .latest-status-no-link):
(.bubble-server-popover .bot-status-description):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:

(buildAggregateTable):
(buildQueuesTable):
Removed dysfunctional support for EWS for now. It will be different.

Location:
trunk/Tools
Files:
6 edited
3 moved

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueue.js

    r174343 r174366  
    2424 */
    2525
    26 EWSQueue = function(ews, id, info)
     26BubbleQueue = function(queueServer, id, info)
    2727{
    2828    BaseObject.call(this);
    2929
    30     console.assert(ews);
     30    console.assert(queueServer);
    3131    console.assert(id);
    3232
    33     this.ews = ews;
     33    this.queueServer = queueServer;
    3434    this.id = id;
    3535    this.title = info.title || "\xa0";
    3636
    37     this.platform = info.platform.name || "unknown";
     37    this.platform = info.platform ? info.platform.name : "unknown";
    3838};
    3939
    40 BaseObject.addConstructorFunctions(EWSQueue);
     40BaseObject.addConstructorFunctions(BubbleQueue);
    4141
    42 EWSQueue.Event = {
     42BubbleQueue.Event = {
    4343    Updated: "updated"
    4444};
    4545
    46 EWSQueue.prototype = {
    47     constructor: EWSQueue,
     46BubbleQueue.prototype = {
     47    constructor: BubbleQueue,
    4848    __proto__: BaseObject.prototype,
    4949
    5050    get statusPageURL()
    5151    {
    52         return this.ews.queueStatusURL(this.id);
     52        return this.queueServer.queueStatusURL(this.id);
    5353    },
    5454
     
    8484        this._loadedDetailedStatus = false;
    8585
    86         JSON.load(this.ews.jsonQueueLengthURL(this.id), function(data) {
     86        JSON.load(this.queueServer.jsonQueueLengthURL(this.id), function(data) {
    8787            var newPatchCount = data.queue_length;
    8888            if (this._patchCount == newPatchCount)
    8989                return;
    9090            this._patchCount = newPatchCount;
    91             this.dispatchEventToListeners(EWSQueue.Event.Updated, null);
     91            this.dispatchEventToListeners(BubbleQueue.Event.Updated, null);
    9292        }.bind(this));
    9393    },
     
    9595    loadDetailedStatus: function(callback)
    9696    {
    97         JSON.load(this.ews.jsonQueueStatusURL(this.id), function(data) {
     97        JSON.load(this.queueServer.jsonQueueStatusURL(this.id), function(data) {
    9898            this._queue = [];
    9999            for (var i = 0, end = data.queue.length; i < end; ++i) {
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js

    r174343 r174366  
    2424 */
    2525
    26 EWS = function()
     26BubbleQueueServer = function()
    2727{
    2828    const queueInfo = {
    29         "mac": {platform: Dashboard.Platform.MacOSXMountainLion, title: "WebKit1 Release Tests"},
    30         "mac-wk2": {platform: Dashboard.Platform.MacOSXMountainLion, title: "WebKit2 Release Tests"},
    31         "win": {platform: Dashboard.Platform.Windows7, title: "WebKit1 Release Build"},
    32         "gtk-wk2": {platform: Dashboard.Platform.LinuxGTK, title: "WebKit2 Release Build"},
    33         "efl-wk2": {platform: Dashboard.Platform.LinuxEFL, title: "WebKit2 Release Build"}
     29        "commit-queue": {platform: Dashboard.Platform.MacOSXMountainLion, shortName: "commit", title: "Commit Queue"},
     30        "style-queue": {shortName: "style", title: "Style Checker Queue"},
     31        "mac-ews": {platform: Dashboard.Platform.MacOSXMountainLion, shortName: "mac", title: "WebKit1\xa0Release\xa0Tests\xa0EWS"},
     32        "mac-wk2-ews": {platform: Dashboard.Platform.MacOSXMountainLion, shortName: "mac-wk2", title: "WebKit2\xa0Release\xa0Tests\xa0EWS"},
     33        "win-ews": {platform: Dashboard.Platform.Windows7, shortName: "win", title: "WebKit1\xa0Release\xa0Build\xa0EWS"},
     34        "gtk-wk2-ews": {platform: Dashboard.Platform.LinuxGTK, shortName: "gtk-wk2", title: "WebKit2\xa0Release\xa0Build\xa0EWS"},
     35        "efl-wk2-ews": {platform: Dashboard.Platform.LinuxEFL, shortName: "efl-wk2", title: "WebKit2\xa0Release\xa0Build\xa0EWS"}
    3436    };
    3537
     
    4042
    4143    for (var id in queueInfo)
    42         this.queues[id] = new EWSQueue(this, id, queueInfo[id]);
     44        this.queues[id] = new BubbleQueue(this, id, queueInfo[id]);
    4345};
    4446
    45 BaseObject.addConstructorFunctions(EWS);
     47BaseObject.addConstructorFunctions(BubbleQueueServer);
    4648
    47 EWS.prototype = {
    48     constructor: EWS,
     49BubbleQueueServer.prototype = {
     50    constructor: BubbleQueueServer,
    4951    __proto__: BaseObject.prototype,
    5052
    5153    jsonQueueLengthURL: function(queueID)
    5254    {
    53         return this.baseURL + "queue-length-json/" + encodeURIComponent(queueID) + "-ews";
     55        return this.baseURL + "queue-length-json/" + encodeURIComponent(queueID);
    5456    },
    5557
    5658    jsonQueueStatusURL: function(queueID)
    5759    {
    58         return this.baseURL + "queue-status-json/" + encodeURIComponent(queueID) + "-ews";
     60        return this.baseURL + "queue-status-json/" + encodeURIComponent(queueID);
    5961    },
    6062
    6163    queueStatusURL: function(queueID)
    6264    {
    63         return this.baseURL + "queue-status/" + encodeURIComponent(queueID) + "-ews";
     65        return this.baseURL + "queue-status/" + encodeURIComponent(queueID);
    6466    },
    6567};
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js

    r174343 r174366  
    2424 */
    2525
    26 EWSQueueView = function(queues)
     26BubbleQueueView = function(queues)
    2727{
    2828    QueueView.call(this);
     
    3232    this.queues.forEach(function(queue) {
    3333        if (this.platform && this.platform != queue.platform)
    34             throw "A EWS view may not contain queues for multiple platforms."
     34            throw "A bubble queue view may not contain queues for multiple platforms."
    3535        else
    3636            this.platform = queue.platform;
    37         queue.addEventListener(EWSQueue.Event.Updated, this._queueUpdated, this);
     37        queue.addEventListener(BubbleQueue.Event.Updated, this._queueUpdated, this);
    3838    }.bind(this));
    3939
     
    4141};
    4242
    43 BaseObject.addConstructorFunctions(EWSQueueView);
    44 
    45 EWSQueueView.prototype = {
    46     constructor: EWSQueueView,
     43BaseObject.addConstructorFunctions(BubbleQueueView);
     44
     45BubbleQueueView.prototype = {
     46    constructor: BubbleQueueView,
    4747    __proto__: QueueView.prototype,
    4848
     
    6868            this.element.appendChild(status.element);
    6969
    70             new PopoverTracker(status.statusBubbleElement, this._presentPopoverForEWSQueue.bind(this), queue);
     70            new PopoverTracker(status.statusBubbleElement, this._presentPopoverForBubbleQueue.bind(this), queue);
    7171        }
    7272
     
    9999        title.className = "popover-queue-heading";
    100100
    101         this.addTextToRow(title, "queue-name", queue.id + " ews queue");
     101        this.addTextToRow(title, "queue-name", queue.id);
    102102        this.addLinkToRow(title, "queue-status-link", "status page", queue.statusPageURL);
    103103        this.addLinkToRow(title, "queue-charts-link", "charts", queue.chartsPageURL);
     
    139139    },
    140140
    141     _popoverContentForEWSQueue: function(queue)
     141    _popoverContentForBubbleQueue: function(queue)
    142142    {
    143143        var content = document.createElement("div");
    144         content.className = "ews-popover";
     144        content.className = "bubble-server-popover";
    145145
    146146        this._addQueueHeadingToPopover(queue, content);
     
    195195    },
    196196
    197     _presentPopoverForEWSQueue: function(element, popover, queue)
     197    _presentPopoverForBubbleQueue: function(element, popover, queue)
    198198    {
    199199        if (queue.loadedDetailedStatus)
    200             var content = this._popoverContentForEWSQueue(queue);
     200            var content = this._popoverContentForBubbleQueue(queue);
    201201        else {
    202202            var content = document.createElement("div");
    203             content.className = "ews-popover";
     203            content.className = "bubble-server-popover";
    204204
    205205            var loadingIndicator = document.createElement("div");
     
    209209
    210210            queue.loadDetailedStatus(function() {
    211                 popover.content = this._popoverContentForEWSQueue(queue);
     211                popover.content = this._popoverContentForBubbleQueue(queue);
    212212            }.bind(this));
    213213        }
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js

    r173924 r174366  
    2929if (typeof Bugzilla !== "undefined")
    3030    var bugzilla = new Bugzilla;
    31 if (typeof EWS !== "undefined")
    32     var ews = new EWS;
     31if (typeof BubbleQueueServer !== "undefined")
     32    var bubbleQueueServer = new BubbleQueueServer;
    3333if (typeof TestHistory !== "undefined")
    3434    var testHistory = new TestHistory;
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js

    r173211 r174366  
    11/*
    2  * Copyright (C) 2013 Apple Inc. All rights reserved.
     2 * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 var hasEWS = typeof ews != "undefined";
    27 var EWSCategory = "ews";
     26var hasBubbles = typeof bubbleQueueServer != "undefined";
     27var BubblesCategory = "bubbles";
    2828
    2929var categorizedQueuesByPlatformAndBuildType = {};
     
    6565}
    6666
    67 if (hasEWS) {
    68     for (var id in ews.queues) {
    69         var queue = ews.queues[id];
     67if (hasBubbles) {
     68    for (var id in bubbleQueueServer.queues) {
     69        var queue = bubbleQueueServer.queues[id];
    7070        var platform = categorizedQueuesByPlatformAndBuildType[queue.platform];
    7171        if (!platform)
     
    7474            platform.builders = {};
    7575
    76         var categoryName = EWSCategory;
     76        var categoryName = BubblesCategory;
    7777
    7878        platformQueues = platform[categoryName];
     
    155155    row.appendChild(header);
    156156
    157     if (hasEWS) {
     157    if (hasBubbles) {
     158        // Currently, EWS and commit queues are the only items in Other category.
     159        // To add more (e.g. leaks bot), we'll need to refactor view classes.
    158160        var header = document.createElement("th");
    159         header.textContent = "EWS";
     161        header.textContent = "Other";
    160162        row.appendChild(header);
    161163    }
     
    221223        row.appendChild(cell);
    222224
    223         if (hasEWS) {
     225        if (hasBubbles) {
    224226            var cell = document.createElement("td");
    225227
    226             if (platformQueues[EWSCategory]) {
    227                 var view = new EWSQueueView(platformQueues[EWSCategory]);
     228            if (platformQueues[BubblesCategory]) {
     229                var view = new BubbleQueueView(platformQueues[BubblesCategory]);
    228230                cell.appendChild(view.element);
    229231            }
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js

    r173273 r174366  
    2424 */
    2525
    26 var hasEWS = typeof ews !== "undefined";
    27 var EWSCategory = "ews";
    28 
    2926var analyzer = new Analyzer;
    3027
     
    6865}
    6966
    70 if (hasEWS) {
    71     for (var id in ews.queues) {
    72         var queue = ews.queues[id];
    73         var platform = categorizedQueuesByPlatformAndBuildType[queue.platform];
    74         if (!platform)
    75             platform = categorizedQueuesByPlatformAndBuildType[queue.platform] = {};
    76         if (!platform.builders)
    77             platform.builders = {};
    78 
    79         var categoryName = EWSCategory;
    80 
    81         platformQueues = platform[categoryName];
    82         if (!platformQueues)
    83             platformQueues = platform[categoryName] = [];
    84 
    85         platformQueues.push(queue);
    86     }
    87 }
    88 
    8967var testNames = {};
    9068testNames[Buildbot.TestCategory.WebKit2] = "WK2 Tests";
     
    175153    row.appendChild(header);
    176154
    177     if (hasEWS) {
    178         var header = document.createElement("th");
    179         header.textContent = "EWS";
    180         row.appendChild(header);
    181     }
    182 
    183155    table.appendChild(row);
    184156
     
    229201    }
    230202
    231     if (hasEWS) {
    232         var header = document.createElement("th");
    233         header.textContent = "EWS";
    234         row.appendChild(header);
    235     }
    236 
    237203    table.appendChild(row);
    238204
     
    281247            if (platformQueues[testerProperty]) {
    282248                var view = new MetricsView(analyzer, allQueues(platformQueues[testerProperty]));
    283                 cell.appendChild(view.element);
    284             }
    285 
    286             row.appendChild(cell);
    287         }
    288 
    289         if (hasEWS) {
    290             var cell = document.createElement("td");
    291 
    292             if (platformQueues[EWSCategory]) {
    293                 var view = new EWSQueueView(platformQueues[EWSCategory]);
    294249                cell.appendChild(view.element);
    295250            }
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css

    r173228 r174366  
    121121}
    122122
    123 .ews-popover,
     123.bubble-server-popover,
    124124.performance-popover {
    125125    font-family: "HelveticaNeue-Light", "Helvetica Neue", sans-serif;
     
    130130}
    131131
    132 .ews-popover .popover-queue-heading .queue-status-link,
    133 .ews-popover .popover-queue-heading .queue-charts-link {
     132.bubble-server-popover .popover-queue-heading .queue-status-link,
     133.bubble-server-popover .popover-queue-heading .queue-charts-link {
    134134    color: rgb(145, 135, 95);
    135135    padding-left: 7px;
    136136}
    137137
    138 .ews-popover .latest-status-with-link,
    139 .ews-popover .latest-status-no-link {
     138.bubble-server-popover .latest-status-with-link,
     139.bubble-server-popover .latest-status-no-link {
    140140    color: black;
    141141    padding-left: 7px;
    142142}
    143143
    144 .ews-popover .failure-count,
    145 .ews-popover .time-since-message,
    146 .ews-popover .bugzilla-link,
    147 .ews-popover .bot-status-description {
     144.bubble-server-popover .failure-count,
     145.bubble-server-popover .time-since-message,
     146.bubble-server-popover .bugzilla-link,
     147.bubble-server-popover .bot-status-description {
    148148    padding-left: 7px;
    149149}
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html

    r173211 r174366  
    3838    <script src="Scripts/Buildbot.js"></script>
    3939    <script src="Scripts/Bugzilla.js"></script>
    40     <script src="Scripts/EWS.js"></script>
     40    <script src="Scripts/BubbleQueueServer.js"></script>
    4141    <script src="Scripts/WebKitBuildbot.js"></script>
    4242    <script src="Scripts/BuildbotQueue.js"></script>
    43     <script src="Scripts/EWSQueue.js"></script>
     43    <script src="Scripts/BubbleQueue.js"></script>
    4444    <script src="Scripts/BuildbotIteration.js"></script>
    4545    <script src="Scripts/BuildbotTestResults.js"></script>
     
    5252    <script src="Scripts/BuildbotTesterQueueView.js"></script>
    5353    <script src="Scripts/BuildbotPerformanceQueueView.js"></script>
    54     <script src="Scripts/EWSQueueView.js"></script>
     54    <script src="Scripts/BubbleQueueView.js"></script>
    5555    <script src="Scripts/StatusLineView.js"></script>
    5656    <script src="Scripts/Settings.js"></script>
  • trunk/Tools/ChangeLog

    r174364 r174366  
     12014-10-06  Alexey Proskuryakov  <ap@apple.com>
     2
     3        build.webkit.org/dashboard: Add commit queue
     4        https://bugs.webkit.org/show_bug.cgi?id=137462
     5
     6        Reviewed by Tim Horton.
     7
     8        Generalizes EWS into "bubble queue", which also includes commit queue and style queue.
     9        Style queue is still invisible, as it doesn't have an associated platform, and also
     10        we never have problems with it anyway, so it's not worth watching.
     11
     12        The UI now allows for adding more bots to the Other column (such as leaks bot).
     13        To make that actually happen, we'll need to refactor QueueView, allowing for multiple
     14        sources of data in a cell.
     15
     16        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueue.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js.
     17        (BubbleQueue):
     18        (BubbleQueue.prototype.get statusPageURL):
     19        (BubbleQueue.prototype.update):
     20        (BubbleQueue.prototype.loadDetailedStatus):
     21        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js.
     22        (BubbleQueueServer):
     23        (BubbleQueueServer.prototype.jsonQueueLengthURL):
     24        (BubbleQueueServer.prototype.jsonQueueStatusURL):
     25        (BubbleQueueServer.prototype.queueStatusURL):
     26        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueView.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js.
     27        (BubbleQueueView):
     28        (BubbleQueueView.prototype.update.appendQueue):
     29        (BubbleQueueView.prototype.update):
     30        (BubbleQueueView.prototype._addQueueHeadingToPopover):
     31        (BubbleQueueView.prototype._popoverContentForBubbleQueue):
     32        (BubbleQueueView.prototype._presentPopoverForBubbleQueue):
     33        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWS.js: Removed.
     34        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueue.js: Removed.
     35        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/EWSQueueView.js: Removed.
     36        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Initialization.js:
     37        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:
     38        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/QueueView.css:
     39        (.bubble-server-popover .popover-queue-heading .queue-charts-link):
     40        (.bubble-server-popover .latest-status-no-link):
     41        (.bubble-server-popover .bot-status-description):
     42        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/index.html:
     43
     44        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:
     45        (buildAggregateTable):
     46        (buildQueuesTable):
     47        Removed dysfunctional support for EWS for now. It will be different.
     48
    1492014-10-06  Alexey Proskuryakov  <ap@apple.com>
    250
Note: See TracChangeset for help on using the changeset viewer.