<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><div><span style="font-size: 10pt">Hi Christoph --</span><br></div><div><br></div><div>> <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;font-size: 16px">Otherwise, should we at least honor Smalltalk </span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;font-size: 16px">isLowerPerformance before downloading the entire HTML page? :-)</span></div><div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;font-size: 16px"><br></span></div><div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">That might not be necessary. The biggest lag is because of network traffic:</span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px"><br></span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">Download: '7.64 per second. 131 milliseconds per run. 3.42936 % GC time.' </span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">Parse:  '2,100 per second. 476 microseconds per run. 0.46 % GC time.' </span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px"><br></span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">I would expect a similar download performance on slower platforms.</span></span></div></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px"><br></span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">Best,</span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">Marcel</span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px"><br></span></span></div><div style=""><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols"><span style="font-size: 16px">P.S.: Also, we had this discussion on how to detect "has slow performance" in the first place. Any progress on that? Anyone? :-D</span></span></div><div class="mb_sig"></div>
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 22.11.2021 11:26:17 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<div id="divtagdefaultwrapper" style="font-size: 12pt;color: rgb(0, 0, 0);font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols" dir="ltr">
<p>> <span style="font-size: 12pt">The biggest issue is, though, that we have no simple way to get the DateAndTime of the latest build job. I have to parse the HTML page ... -.-"</span></p>
<div><br>
</div>
<p></p>
<p>Hmm, my strategy would have been to post this information as part of the GitHub workflow itself and post it, for instance, to a GitHub gist. I have applied this strategy for a custom badge in SqueakInboxTalk, see:</p>
<p></p>
<ul style="margin-bottom: 0px; margin-top: 0px;">
<li><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk/blob/3d3bc8834785da9a7fd877b92b762a3e67ee49b8/README.md?plain=1#L5" class="OWAAutoLink" id="LPlnk480274" previewremoved="true">https://github.com/hpi-swa-lab/squeak-inbox-talk/blob/3d3bc8834785da9a7fd877b92b762a3e67ee49b8/README.md?plain=1#L5</a><br>
</li><li><a href="https://gist.github.com/LinqLover/36dd3c4a155eed5aa7e874415cd60eea" class="OWAAutoLink" id="LPlnk996124" previewremoved="true">https://gist.github.com/LinqLover/36dd3c4a155eed5aa7e874415cd60eea</a><br>
</li><li><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk/blob/3d3bc8834785da9a7fd877b92b762a3e67ee49b8/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/testFlagsBadge.st" class="OWAAutoLink" id="LPlnk865794" previewremoved="true">https://github.com/hpi-swa-lab/squeak-inbox-talk/blob/3d3bc8834785da9a7fd877b92b762a3e67ee49b8/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/testFlagsBadge.st</a><br>
</li></ul>
<div>Then you would only need an API token to update the gist but you could access it anonymously in a structured format, and during the GitHub workflow, <span>${{ github.token }} is already available.</span></div>
<div><span><br>
</span></div>
<div><span>If you are interested in this kind of solution, I could update squeak-app and #<span>ciStatusTimestamp accordingly</span>. Should be not be overly complicated. :-)</span></div>
<div><span><br>
</span></div>
<div><span>Otherwise, should we at least honor Smalltalk <span>isLowerPerformance before downloading the entire HTML page? :-)</span></span></div>
<div><span><span><br>
</span></span></div>
<div><span><span>Best,</span></span></div>
<div><span><span>Christoph</span></span></div>
<p></p>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 22. November 2021 11:13 Uhr<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Trunk: System-mt.1248.mcz</span>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" dir="ltr" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left">
Yes. The biggest issue is, though, that we have no simple way to get the DateAndTime of the latest build job. I have to parse the HTML page ... -.-"
<div><br>
</div>
<div>Setting up an account-specific API key seems not worth the effort for such a little piece of information.</div>
<div><br>
</div>
<div>In TravisCI, that info was free like the badge.</div>
<div><br>
</div>
<div>Best,</div>
<div>Marcel</div>
<div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color:#AAAAAA; margin-top:10px">Am 22.11.2021 11:08:09 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: rgb(0, 0, 0);font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols">
<p>Ah. You did not use the badge URL from GitHub itself <<a href="https://github.com/squeak-smalltalk/squeak-app/actions/workflows/bundle.yml/badge.svg?branch=squeak-trunk" class="x_OWAAutoLink" id="LPlnk647736" previewremoved="true">https://github.com/squeak-smalltalk/squeak-app/actions/workflows/bundle.yml/badge.svg?branch=squeak-trunk</a>>
 because they only offer SVGs as of today. Yeah, maybe we should have an SVG solution right in the Trunk at someday... :-)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif; color:#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von commits@source.squeak.org <commits@source.squeak.org><br>
<b>Gesendet:</b> Montag, 22. November 2021 10:12:00<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org<br>
<b>Betreff:</b> [squeak-dev] The Trunk: System-mt.1248.mcz</span>
<div> </div>
</div>
</div>
<span style="font-size: 10pt"><span style="font-size: 10pt">
<div class="PlainText">Marcel Taeumel uploaded a new version of System to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/System-mt.1248.mcz" id="LPlnk606098" previewremoved="true">http://source.squeak.org/trunk/System-mt.1248.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: System-mt.1248<br>
Author: mt<br>
Time: 22 November 2021, 10:11:55.950785 am<br>
UUID: 26002484-3fff-e74e-8a15-9cf025fe7395<br>
Ancestors: System-mt.1247<br>
<br>
Fixes CI status in update dialog.<br>
<br>
=============== Diff against System-mt.1247 ===============<br>
<br>
Item was added:<br>
+ ----- Method: SystemVersion>>ciBranch (in category 'continuous integration') -----<br>
+ ciBranch<br>
+        "Convert the receiver into the corresponding branch name on github.com/squeak-smalltalk/squeak-app."<br>
+ <br>
+        | branch |<br>
+        branch := 'squeak-{1}{2}{3}' format: {<br>
+                self isRelease ifTrue: [self majorVersionNumber] ifFalse: [''].<br>
+                self isRelease ifTrue: ['.'] ifFalse: ['trunk'].<br>
+                self isRelease ifTrue: [self minorVersionNumber] ifFalse: [''] }.<br>
+ <br>
+        ^ branch!<br>
<br>
Item was changed:<br>
  ----- Method: SystemVersion>>ciStatusBadgeUrl (in category 'continuous integration') -----<br>
  ciStatusBadgeUrl<br>
+        "shields.io needs a workflow's descriptive name, not the name of the .yml file."<br>
- <br>
-        | branch |<br>
-        branch := 'squeak-{1}{2}{3}' format: {<br>
-                self isRelease ifTrue: [self majorVersionNumber] ifFalse: [''].<br>
-                self isRelease ifTrue: ['.'] ifFalse: ['trunk'].<br>
-                self isRelease ifTrue: [self minorVersionNumber] ifFalse: [''] }.<br>
         <br>
+        ^ '<a href="https://raster.shields.io/github/workflow/status/squeak-smalltalk/squeak-app/{1}/{2}?style=flat&logo=github" id="LPlnk534212" previewremoved="true">https://raster.shields.io/github/workflow/status/squeak-smalltalk/squeak-app/{1}/{2}?style=flat&logo=github</a>'<br>
+                format: {self ciWorkflowName encodeForHTTP. self ciBranch}!<br>
-        ^ '<a href="https://api.travis-ci.com/squeak-smalltalk/squeak-app.png?branch=" id="LPlnk126754" previewremoved="true">https://api.travis-ci.com/squeak-smalltalk/squeak-app.png?branch=</a>', branch!<br>
<br>
Item was changed:<br>
  ----- Method: SystemVersion>>ciStatusPageUrl (in category 'continuous integration') -----<br>
  ciStatusPageUrl<br>
-        "In a release image, let the user see the overview of branches to choose from. I am not aware of a permanent link for a specific branch. In a trunk image, just let Travis report the state of the main branch, which is usually for trunk builds."<br>
  <br>
+        ^ '<a href="https://github.com/squeak-smalltalk/squeak-app/actions/workflows/{1}?query=branch%3A{2}+is%3Acompleted+event%3Aschedule" id="LPlnk808985" previewremoved="true">https://github.com/squeak-smalltalk/squeak-app/actions/workflows/{1}?query=branch%3A{2}+is%3Acompleted+event%3Aschedule</a>'<br>
+                format: {self ciWorkflow. self ciBranch}!<br>
-        ^ '<a href="http://travis-ci.com/squeak-smalltalk/squeak-app{1}" id="LPlnk9877" previewremoved="true">http://travis-ci.com/squeak-smalltalk/squeak-app{1}</a>' format: {<br>
-                self isRelease ifFalse: [''] ifTrue: ['/branches'] }!<br>
<br>
Item was changed:<br>
  ----- Method: SystemVersion>>ciStatusTimestamp (in category 'continuous integration') -----<br>
  ciStatusTimestamp<br>
+        "Slow. Fetch HTML page, extract first occurrence of<br>
+                ... <time-ago datetime='2021-08-04T14:24:20Z' ... "<br>
  <br>
+        | statusPage begin end dateAndTime |<br>
+        statusPage := (WebClient httpGet: self ciStatusPageUrl) content.<br>
+        begin := statusPage findString: 'datetime' startingAt: 100000. "Skip the first X bytes decoration."<br>
+        end := statusPage findString: 'Z' startingAt: begin.<br>
+        dateAndTime := DateAndTime readFrom: (statusPage copyFrom: begin + 10 to: end) readStream.<br>
-        | stamp " 'Mon, 05 Jul 2021 17:52:11 GMT' " dateAndTime |<br>
-        stamp := (WebClient httpGet: self ciStatusBadgeUrl) headerAt: 'last-modified'.<br>
-        stamp ifEmpty: [^ stamp].<br>
-        dateAndTime := DateAndTime readFrom: (((stamp allButFirst: 4) allButLast: 4), ' Z') readStream.<br>
         ^ String streamContents: [:s |<br>
                 dateAndTime asDate = Date today<br>
                         ifTrue: [s nextPutAll: 'Today' translated, ',']<br>
                         ifFalse: [dateAndTime asDate = Date yesterday<br>
                                 ifTrue: [s nextPutAll: 'Yesterday' translated, ',']<br>
                                 ifFalse: [dateAndTime printYMDOn: s]].<br>
                 s space.<br>
                 dateAndTime printHMSOn: s]!<br>
<br>
Item was added:<br>
+ ----- Method: SystemVersion>>ciWorkflow (in category 'continuous integration') -----<br>
+ ciWorkflow<br>
+        "See <a href="https://github.com/squeak-smalltalk/squeak-app/tree/squeak-trunk/.github/workflows" id="LPlnk7827" previewremoved="true">
https://github.com/squeak-smalltalk/squeak-app/tree/squeak-trunk/.github/workflows</a>"<br>
+        <br>
+        ^ 'bundle.yml'!<br>
<br>
Item was added:<br>
+ ----- Method: SystemVersion>>ciWorkflowName (in category 'continuous integration') -----<br>
+ ciWorkflowName<br>
+        "See 'name' in #ciWorkflow .yml file. Case sensitive."<br>
+        <br>
+        ^ 'Bundle'!<br>
<br>
<br>
</div>
</span></span></div>
</blockquote>
</div>
</div>
</div>
</div>
</div></blockquote></div>