From f360a5aa5e374f4b0cf27e37b574d10303a84613 Mon Sep 17 00:00:00 2001 From: Christoph Thiede Date: Tue, 19 Nov 2024 00:53:24 +0100 Subject: [PATCH] inbox browser: add announcements for automatic self-update notifications --- .github/workflows/tests.yml | 16 +++++- .squot | 3 +- .smalltalk.ston => jobs.smalltalk.ston | 0 .../class/cleanUpTimeStamps.st | 4 ++ .../class/latestTimeStampFor..st | 4 ++ .../class/latestTimeStampForPackage..st | 8 +++ .../class/latestTimeStampsFor..st | 8 +++ .../instance/baseline..st | 4 +- .../instance/postLoad.st | 3 +- .../instance/postLoadGeneric.st | 4 ++ .../methodProperties.json | 10 +++- .../properties.json | 2 +- .../instance/isTalkAnnouncement.st | 4 ++ .../methodProperties.json | 1 + .../instance/buildButtonBar..st | 2 +- .../instance/canReply.st | 4 ++ .../methodProperties.json | 3 +- .../class/allAnnouncementSelectors.st | 5 ++ .../class/checkSelfUpdatesIfFound..st | 18 ++++++ .../TalkInboxBrowser.class/class/cleanUp..st | 5 +- .../class/defaultFeedbackText.st | 4 +- .../class/hideAnnouncementSelector..st | 5 ++ .../class/latestPackageTimeStamps.st | 5 ++ .../class/latestTimeStamp.st | 5 ++ .../class/pendingAnnouncements.st | 9 +++ .../class/resetAnnouncements.st | 4 ++ .../class/selfUpdateAnnouncementFor..st | 57 +++++++++++++++++++ .../class/shouldShowAnnouncements..st | 7 +++ .../class/shouldShowAnnouncements.st | 5 ++ .../instance/conversationColumns.st | 9 ++- .../instance/gatherConversationsOn..st | 2 + .../instance/pendingAnnouncements.st | 5 ++ .../instance/refreshMessages.st | 4 +- .../instance/refreshPendingAnnouncements.st | 5 ++ .../methodProperties.json | 22 +++++-- .../TalkInboxBrowser.class/properties.json | 5 +- .../README.md | 1 + .../class/date.subject.content..st | 8 +++ .../class/selector.date.subject.content..st | 9 +++ .../instance/attachmentNames.st | 4 ++ .../instance/author.st | 4 ++ .../instance/authorTimestamp.st | 5 ++ .../instance/browseForSearcher..st | 6 ++ .../instance/content..st | 4 ++ .../instance/content.st | 4 ++ .../instance/contributionState.st | 4 ++ .../instance/contributions.st | 4 ++ .../instance/date..st | 4 ++ .../instance/date.st | 4 ++ .../instance/explainTimezone.st | 4 ++ .../instance/fullTextForSummary.st | 4 ++ .../instance/hasContributions.st | 4 ++ .../instance/hide.st | 5 ++ .../instance/inbox.st | 4 ++ .../instance/involvementState.st | 4 ++ .../instance/isTalkAnnouncement.st | 4 ++ .../instance/latestDate.st | 4 ++ .../instance/messages.st | 4 ++ .../instance/openInHyperkitty.st | 4 ++ .../instance/openInNabble.st | 4 ++ .../instance/openInPipermail.st | 4 ++ .../instance/plainText.st | 4 ++ .../instance/printOn..st | 9 +++ .../instance/rawText.st | 4 ++ .../instance/richText.st | 4 ++ .../instance/selector..st | 4 ++ .../instance/selector.st | 4 ++ .../instance/subject..st | 4 ++ .../instance/subject.st | 4 ++ .../instance/text.st | 10 ++++ .../methodProperties.json | 36 ++++++++++++ .../properties.json | 17 ++++++ .../instance/isTalkAnnouncement.st | 4 ++ .../TalkMessage.class/methodProperties.json | 1 + .../instance/similarConversations.st | 4 ++ .../methodProperties.json | 5 ++ .../properties.json | 2 + .../SqueakInboxTalkJobs.package/.filetree | 4 ++ .../.squot-contents | 6 ++ .../TalkPipelineJobs.class/README.md | 0 .../class/allTestSelectors.st | 0 .../TalkPipelineJobs.class/class/isCI.st | 0 .../class/testSelectors.st | 0 .../instance/badgeGistId.st | 0 .../instance/gistToken.st | 0 .../instance/githubRefName.st | 0 .../instance/latestTimeStampsGistId.st | 4 ++ .../instance/testFlagsBadge.st | 2 +- .../instance/testLatestTimeStamps.st | 19 +++++++ .../updateBadgeNamed.label.value.color..st | 0 .../updateLatestTimeStampsFor.data..st | 10 ++++ .../instance/uploadGist.filename.content..st | 2 +- .../methodProperties.json | 3 + .../TalkPipelineJobs.class/properties.json | 2 +- .../monticello.meta/categories.st | 1 + .../monticello.meta/initializers.st | 0 .../properties.json | 2 + tests.smalltalk.ston | 18 ++++++ 98 files changed, 533 insertions(+), 27 deletions(-) rename .smalltalk.ston => jobs.smalltalk.ston (100%) create mode 100644 packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/cleanUpTimeStamps.st create mode 100644 packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampFor..st create mode 100644 packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampForPackage..st create mode 100644 packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampsFor..st create mode 100644 packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoadGeneric.st create mode 100644 packages/SqueakInboxTalk.package/TalkConversation.class/instance/isTalkAnnouncement.st create mode 100644 packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/canReply.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/allAnnouncementSelectors.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/checkSelfUpdatesIfFound..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/hideAnnouncementSelector..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestPackageTimeStamps.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestTimeStamp.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/pendingAnnouncements.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/resetAnnouncements.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/selfUpdateAnnouncementFor..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/pendingAnnouncements.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshPendingAnnouncements.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/README.md create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/date.subject.content..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/selector.date.subject.content..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/attachmentNames.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/author.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/authorTimestamp.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/browseForSearcher..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributionState.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributions.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/explainTimezone.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/fullTextForSummary.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hasContributions.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hide.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/inbox.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/involvementState.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/isTalkAnnouncement.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/latestDate.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/messages.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInHyperkitty.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInNabble.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInPipermail.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/plainText.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/printOn..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/rawText.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/richText.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject..st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/text.st create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/methodProperties.json create mode 100644 packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/properties.json create mode 100644 packages/SqueakInboxTalk.package/TalkMessage.class/instance/isTalkAnnouncement.st create mode 100644 packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/instance/similarConversations.st create mode 100644 packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/methodProperties.json create mode 100644 packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/properties.json create mode 100644 packages/SqueakInboxTalkJobs.package/.filetree create mode 100644 packages/SqueakInboxTalkJobs.package/.squot-contents rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/README.md (100%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/class/allTestSelectors.st (100%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/class/isCI.st (100%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/class/testSelectors.st (100%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/instance/badgeGistId.st (100%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/instance/gistToken.st (100%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/instance/githubRefName.st (100%) create mode 100644 packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/latestTimeStampsGistId.st rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/instance/testFlagsBadge.st (98%) create mode 100644 packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testLatestTimeStamps.st rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/instance/updateBadgeNamed.label.value.color..st (100%) create mode 100644 packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/updateLatestTimeStampsFor.data..st rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/instance/uploadGist.filename.content..st (98%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/methodProperties.json (73%) rename packages/{SqueakInboxTalkTests.package => SqueakInboxTalkJobs.package}/TalkPipelineJobs.class/properties.json (81%) create mode 100644 packages/SqueakInboxTalkJobs.package/monticello.meta/categories.st create mode 100644 packages/SqueakInboxTalkJobs.package/monticello.meta/initializers.st create mode 100644 packages/SqueakInboxTalkJobs.package/properties.json create mode 100644 tests.smalltalk.ston diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a04e86dd..50f9dc41 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -3,7 +3,7 @@ name: Tests on: [push, workflow_dispatch] jobs: - build: + tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -11,9 +11,21 @@ jobs: uses: hpi-swa/setup-smalltalkCI@v1 with: smalltalk-image: Squeak64-Trunk - - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }} + - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }} tests.smalltalk.ston timeout-minutes: 15 env: # for uploading coverage reports GITHUB_TOKEN: ${{ github.token }} + + jobs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - id: smalltalkci + uses: hpi-swa/setup-smalltalkCI@v1 + with: + smalltalk-image: Squeak64-Trunk + - run: smalltalkci -s ${{ steps.smalltalkci.outputs.smalltalk-image }} jobs.smalltalk.ston + timeout-minutes: 15 + env: SIT_GIST_TOKEN: ${{ secrets.SIT_GIST_TOKEN }} diff --git a/.squot b/.squot index 5ae26897..8ff09751 100644 --- a/.squot +++ b/.squot @@ -2,5 +2,6 @@ OrderedDictionary { 'packages/BaselineOfSqueakInboxTalk.package' : #SquotCypressCodeSerializer, 'packages/SqueakInboxTalk.package' : #SquotCypressCodeSerializer, 'packages/SqueakInboxTalkTests.package' : #SquotCypressCodeSerializer, - 'packages/SqueakInboxTalkExtras-Semantics.package' : #SquotCypressCodeSerializer + 'packages/SqueakInboxTalkExtras-Semantics.package' : #SquotCypressCodeSerializer, + 'packages/SqueakInboxTalkJobs.package' : #SquotCypressCodeSerializer } \ No newline at end of file diff --git a/.smalltalk.ston b/jobs.smalltalk.ston similarity index 100% rename from .smalltalk.ston rename to jobs.smalltalk.ston diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/cleanUpTimeStamps.st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/cleanUpTimeStamps.st new file mode 100644 index 00000000..3dfc67c6 --- /dev/null +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/cleanUpTimeStamps.st @@ -0,0 +1,4 @@ +accessing +cleanUpTimeStamps + + LatestTimeStamps := nil. \ No newline at end of file diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampFor..st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampFor..st new file mode 100644 index 00000000..631f9226 --- /dev/null +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampFor..st @@ -0,0 +1,4 @@ +accessing +latestTimeStampFor: spec + + ^ (self latestTimeStampsFor: spec) max \ No newline at end of file diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampForPackage..st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampForPackage..st new file mode 100644 index 00000000..5c80e275 --- /dev/null +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampForPackage..st @@ -0,0 +1,8 @@ +accessing +latestTimeStampForPackage: aPackageInfo + + ^ (LatestTimeStamps ifNil: [LatestTimeStamps := Dictionary new]) + at: aPackageInfo name ifAbsentPut: + [(aPackageInfo methods collect: [:method | + [TimeStamp fromMethodTimeStamp: method timeStamp] ifError: [TimeStamp new]]) + max] \ No newline at end of file diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampsFor..st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampsFor..st new file mode 100644 index 00000000..08e91d69 --- /dev/null +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/class/latestTimeStampsFor..st @@ -0,0 +1,8 @@ +accessing +latestTimeStampsFor: spec + + ^ (((self project version allPackagesForSpecNamed: spec) + collect: [:packageSpec | packageSpec workingCopy packageInfo]) + , {self packageInfo. (Smalltalk classNamed: #BaselineOfSqueakHistory) package}) + collect: [:package | package -> (self latestTimeStampForPackage: package)] + as: Dictionary \ No newline at end of file diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/baseline..st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/baseline..st index 9283586a..9081d07d 100644 --- a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/baseline..st +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/baseline..st @@ -17,7 +17,9 @@ baseline: spec requires: 'SqueakHistory'; postLoadDoIt: #postLoad]. spec package: 'SqueakInboxTalkExtras-Semantics' with: [ - spec requires: #('SqueakInboxTalk' 'SemanticText')]. + spec + requires: #('SqueakInboxTalk' 'SemanticText'); + postLoadDoIt: #postLoadGeneric]. "test packages" spec package: 'SqueakInboxTalkTests' with: [spec requires: #(#app)]. diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoad.st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoad.st index f841b5dd..7a9ade83 100644 --- a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoad.st +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoad.st @@ -1,4 +1,5 @@ scripts postLoad - self postLoadMailingLists \ No newline at end of file + self postLoadGeneric. + self postLoadMailingLists. \ No newline at end of file diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoadGeneric.st b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoadGeneric.st new file mode 100644 index 00000000..aaad1bb5 --- /dev/null +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/instance/postLoadGeneric.st @@ -0,0 +1,4 @@ +scripts +postLoadGeneric + + self class cleanUpTimeStamps. \ No newline at end of file diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/methodProperties.json b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/methodProperties.json index a8e8a179..d6453b06 100644 --- a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/methodProperties.json +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/methodProperties.json @@ -1,12 +1,16 @@ { "class" : { - }, + "cleanUpTimeStamps" : "ct 11/18/2024 02:08", + "latestTimeStampFor:" : "ct 11/18/2024 02:23", + "latestTimeStampForPackage:" : "ct 11/18/2024 02:22", + "latestTimeStampsFor:" : "ct 11/18/2024 20:26" }, "instance" : { - "baseline:" : "ct 11/17/2024 23:16", + "baseline:" : "ct 11/18/2024 02:08", "initializeSqhPreferences" : "ct 11/17/2024 23:26", "installDependencies" : "ct 11/17/2024 23:17", "isCI" : "ct 10/15/2022 21:23", "openWelcomeContentsSync" : "ct 7/8/2021 21:00", - "postLoad" : "ct 5/26/2021 15:42", + "postLoad" : "ct 11/18/2024 02:08", + "postLoadGeneric" : "ct 11/18/2024 02:08", "postLoadMailingLists" : "ct 7/8/2021 21:00", "projectClass" : "ct 5/26/2021 15:29" } } diff --git a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/properties.json b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/properties.json index 582222f6..6ef084a6 100644 --- a/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/properties.json +++ b/packages/BaselineOfSqueakInboxTalk.package/BaselineOfSqueakInboxTalk.class/properties.json @@ -3,7 +3,7 @@ "classinstvars" : [ ], "classvars" : [ - ], + "LatestTimeStamps" ], "commentStamp" : "", "instvars" : [ ], diff --git a/packages/SqueakInboxTalk.package/TalkConversation.class/instance/isTalkAnnouncement.st b/packages/SqueakInboxTalk.package/TalkConversation.class/instance/isTalkAnnouncement.st new file mode 100644 index 00000000..68e66461 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkConversation.class/instance/isTalkAnnouncement.st @@ -0,0 +1,4 @@ +*SqueakInboxTalk-UI-testing +isTalkAnnouncement + + ^ false \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkConversation.class/methodProperties.json b/packages/SqueakInboxTalk.package/TalkConversation.class/methodProperties.json index 24a38916..207fc020 100644 --- a/packages/SqueakInboxTalk.package/TalkConversation.class/methodProperties.json +++ b/packages/SqueakInboxTalk.package/TalkConversation.class/methodProperties.json @@ -18,6 +18,7 @@ "involvementFor:" : "ct 7/24/2021 03:10", "involvementState" : "ct 6/16/2021 16:27", "involvementStateFor:" : "ct 6/15/2021 19:49", + "isTalkAnnouncement" : "ct 11/18/2024 03:32", "latestDate" : "ct 5/7/2021 15:38", "mailConversation" : "ct 5/7/2021 15:06", "mailConversation:" : "ct 5/7/2021 15:07", diff --git a/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/buildButtonBar..st b/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/buildButtonBar..st index 32f00541..8c2a366a 100644 --- a/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/buildButtonBar..st +++ b/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/buildButtonBar..st @@ -9,7 +9,7 @@ buildButtonBar: aBuilder model: self; label: 'Reply'; action: #reply; - enabled: #hasActualMessageSelected; + enabled: #canReply; yourself); add: (aBuilder pluggableActionButtonSpec new model: self; diff --git a/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/canReply.st b/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/canReply.st new file mode 100644 index 00000000..1fa4368e --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/instance/canReply.st @@ -0,0 +1,4 @@ +testing +canReply + + ^ self hasActualMessageSelected and: [self selectedMessage isTalkAnnouncement not] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/methodProperties.json b/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/methodProperties.json index d42b15c3..211a9603 100644 --- a/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/methodProperties.json +++ b/packages/SqueakInboxTalk.package/TalkConversationBrowser.class/methodProperties.json @@ -19,13 +19,14 @@ "browseAttachmentsColor" : "ct 6/22/2023 17:15", "browseAttachmentsLabel" : "ct 6/22/2023 17:15", "browseContributions" : "ct 6/25/2023 21:22", - "buildButtonBar:" : "ct 7/2/2023 23:26", + "buildButtonBar:" : "ct 11/18/2024 03:49", "buildContentPane:" : "ct 5/14/2023 19:46", "buildFilterBar:" : "ct 7/22/2021 16:17", "buildMessageList:" : "ct 6/2/2023 20:01", "buildMessagePane:" : "ct 5/12/2023 18:01", "buildSearchBar:" : "ct 7/22/2021 16:17", "buildWith:" : "ct 5/12/2023 17:57", + "canReply" : "ct 11/18/2024 03:50", "conversation" : "ct 4/30/2021 00:06", "conversation:" : "ct 6/22/2023 22:20", "currentText" : "ct 8/21/2023 02:43", diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/allAnnouncementSelectors.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/allAnnouncementSelectors.st new file mode 100644 index 00000000..a08de601 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/allAnnouncementSelectors.st @@ -0,0 +1,5 @@ +announcements +allAnnouncementSelectors + + ^ (Pragma allNamed: #talkAnnouncement in: self class) + collect: [:pragma | pragma selector] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/checkSelfUpdatesIfFound..st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/checkSelfUpdatesIfFound..st new file mode 100644 index 00000000..5d4dcaaf --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/checkSelfUpdatesIfFound..st @@ -0,0 +1,18 @@ +self-updating +checkSelfUpdatesIfFound: dateBlock + + | selfUpdateTimeStamps response selfUpdateTimeStampsUrl hasUpdates | + selfUpdateTimeStampsUrl := 'https://gist.githubusercontent.com/LinqLover/36dd3c4a155eed5aa7e874415cd60eea/raw/{1}.json' format: {('latestTimeStamps/{1}' format: {"self selfUpdateBranch"nil}) asFileName encodeForHTTP}. + response := WebClient httpGet: selfUpdateTimeStampsUrl. + response isSuccess ifFalse: [^ false]. + + selfUpdateTimeStamps := response content parseAsJson timeStamps + collect: [:ea | ea asDateAndTime asTimeStamp]. + + hasUpdates := self latestPackageTimeStamps associations anySatisfy: [:packageInfoAndTimeStamp | + selfUpdateTimeStamps + at: packageInfoAndTimeStamp key name + ifPresent: [:selfUpdateTimeStamp | selfUpdateTimeStamp > packageInfoAndTimeStamp value] + ifAbsent: [true]]. + + ^ "hasUpdates"true ifTrue: [dateBlock value: selfUpdateTimeStamps max asDateAndTime] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/cleanUp..st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/cleanUp..st index f82c557d..ed92baaa 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/cleanUp..st +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/cleanUp..st @@ -2,5 +2,6 @@ initialize-release cleanUp: aggressive aggressive ifTrue: [ - UseSimpleIcons := nil]. - Icons := Dictionary new \ No newline at end of file + InboxAgeForDanger := InboxAgeForWarning := SelfUpdateMetacelloSpec := SelfUpdateBranch := ShowAnnouncements := UseSimpleIcons := nil]. + HiddenAnnouncementSelectors := nil. + Icons := Dictionary new. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/defaultFeedbackText.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/defaultFeedbackText.st index 65ef01b0..a78eed1a 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/defaultFeedbackText.st +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/defaultFeedbackText.st @@ -1,6 +1,4 @@ feedback defaultFeedbackText - | latestTimeStamp | - latestTimeStamp := (self packageInfo methods collect: [:method | TimeStamp fromMethodTimeStamp: method timeStamp]) max. - ^ '

Reported from {1}, for version of {2} last updated at {3}.' asTextFromHtml format: {SystemVersion current. self appName. latestTimeStamp} \ No newline at end of file + ^ '

Reported from {1}, for version of {2} last updated at {3}.' asTextFromHtml format: {SystemVersion current. self appName. self latestTimeStamp} \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/hideAnnouncementSelector..st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/hideAnnouncementSelector..st new file mode 100644 index 00000000..1e947d92 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/hideAnnouncementSelector..st @@ -0,0 +1,5 @@ +announcements +hideAnnouncementSelector: selector + + (HiddenAnnouncementSelectors ifNil: [HiddenAnnouncementSelectors := Set new]) + add: selector. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestPackageTimeStamps.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestPackageTimeStamps.st new file mode 100644 index 00000000..49b21d2b --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestPackageTimeStamps.st @@ -0,0 +1,5 @@ +self-updating +latestPackageTimeStamps + + ^ (Smalltalk classNamed: #BaselineOfSqueakInboxTalk) + latestTimeStampsFor: self basicSelfUpdateMetacelloSpec \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestTimeStamp.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestTimeStamp.st new file mode 100644 index 00000000..d376a204 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/latestTimeStamp.st @@ -0,0 +1,5 @@ +self-updating +latestTimeStamp + + ^ (self environment classNamed: #BaselineOfSqueakInboxTalk) ifNotNil: [:baseline | + baseline latestTimeStampFor: self basicSelfUpdateMetacelloSpec] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/pendingAnnouncements.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/pendingAnnouncements.st new file mode 100644 index 00000000..cf768318 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/pendingAnnouncements.st @@ -0,0 +1,9 @@ +announcements +pendingAnnouncements + + self shouldShowAnnouncements ifFalse: [^ #()]. + + ^ Array streamContents: [:stream | + self checkSelfUpdatesIfFound: [:date | stream nextPut: (self selfUpdateAnnouncementFor: DateAndTime today - 5 days"date")]. + (self allAnnouncementSelectors copyWithoutAll: (HiddenAnnouncementSelectors ifNil: [#()])) do: [:selector | + stream nextPut: (self perform: selector)]] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/resetAnnouncements.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/resetAnnouncements.st new file mode 100644 index 00000000..cb93bd40 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/resetAnnouncements.st @@ -0,0 +1,4 @@ +announcements +resetAnnouncements + + HiddenAnnouncementSelectors := nil. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/selfUpdateAnnouncementFor..st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/selfUpdateAnnouncementFor..st new file mode 100644 index 00000000..e73891c3 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/selfUpdateAnnouncementFor..st @@ -0,0 +1,57 @@ +announcements +selfUpdateAnnouncementFor: aDateAndTime + + | changes changesSummary | + changesSummary := 'This might include new features, bug fixes, or performance improvements.'. + changes := + [| response | + response := WebClient httpGet: ('https://api.github.com/repos/{1}/{2}/commits?sha={3}&since={4}' format: + {self githubRepositoryParams first. + self githubRepositoryParams second. + self selfUpdateBranch. + aDateAndTime asString}). + response isSuccess ifFalse: [self error: response content]. + response content parseAsJson collect: [:ea | ea commit message]] + ifError: [:msg | 'Error retrieving changes: {1}' format: {msg}]. + (changes isArray and: [TalkInbox enableSemanticSearch]) ifTrue: + [| changesHash | + changesHash := changes hash. + (thisContext homeMethod propertyValueAt: #changesHash ifAbsent: []) = changesHash + ifTrue: [changesSummary := thisContext homeMethod propertyValueAt: #changesSummary] + ifFalse: + [[changesSummary := (Smalltalk classNamed: #SemanticConversation) new + addSystemMessage: ('Summarize the following changes to Squeak Inbox Talk (which is a mailing list client for squeak-dev) in a single very short sentence. The changes are provided as technical commit messages. The sentence should have the form "This..." and be very short. +If you very unsure about the nature of the changes, answer "{1}" instead. + Audience: Users of the tool.' format: {changesSummary}); + addUserMessage: changes asJsonString; + in: [:conversation | + (Smalltalk classNamed: #SemanticText) registeredConversationModels + detect: [:model | model name = (Smalltalk classNamed: #OpenAIConversationModel) cheapestName] + ifFound: [:model | conversation model: model]]; + getAssistantReply. + thisContext homeMethod propertyValueAt: #changesSummary put: changesSummary. + thisContext homeMethod propertyValueAt: #changesHash put: changesHash] + ifError: [:msg | changesSummary := '{1} (Error retrieving summary: {2}.)' format: {changesSummary. msg}]]]. + + ^ TalkInboxBrowserAnnouncement + date: aDateAndTime + subject: ('Updates for {1} are available' format: {self appName}) + content: ('New updates for {appName} are available. {changesSummary} It is recommended to install {appName} updates together with Squeak updates. + +You can install the updates now or inspect the changes on GitHub first. + +New changes: +{changes}' + format: + (Dictionary new + at: #appName put: self appName; + at: #codeInstallUpdates put: 'code:// TalkInboxBrowser selfUpdate. nil'; + at: #changesUrl put: + ('https://github.com/{1}/{2}/commits/{3}' format: { + self githubRepositoryParams first. + self githubRepositoryParams second. + self selfUpdateBranch}); + at: #changesSummary put: changesSummary; + at: #changes put: (changes isArray ifTrue: [changes ifEmpty: ['(not found)'] ifNotEmpty: [(changes collect: [:ea | '* ' , (ea lines at: 1 ifAbsent: [''])]) joinSeparatedBy: String cr]] ifFalse: [changes]); + yourself)) + talkAsTextFromHtmlWithCRs \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements..st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements..st new file mode 100644 index 00000000..0257b14a --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements..st @@ -0,0 +1,7 @@ +preferences +shouldShowAnnouncements: aBoolean + + aBoolean ifTrue: + [(self confirm: 'Reset all announcements?') ifTrue: + [self resetAnnouncements]]. + ShowAnnouncements := aBoolean. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements.st new file mode 100644 index 00000000..ac6235c1 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/class/shouldShowAnnouncements.st @@ -0,0 +1,5 @@ +preferences +shouldShowAnnouncements + + + ^ ShowAnnouncements ifNil: [true] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/conversationColumns.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/conversationColumns.st index 655bc738..1ba447a7 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/conversationColumns.st +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/conversationColumns.st @@ -13,7 +13,14 @@ conversationColumns ifFalse: [((cachedConversationColumns ifNil: [cachedConversationColumns := Dictionary new]) at: columnIndex ifAbsentPut: [WeakIdentityKeyDictionary new]) - at: conversation ifAbsentPut: [columnBlock value: conversation]] + at: conversation ifAbsentPut: + [| text | + text := columnBlock value: conversation. + conversation isTalkAnnouncement ifTrue: + [text := text asText + addAttribute: TextEmphasis bold; + yourself]. + text]] ifTrue: [columnIndex = 1 ifTrue: [ diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/gatherConversationsOn..st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/gatherConversationsOn..st index e36cd196..98162810 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/gatherConversationsOn..st +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/gatherConversationsOn..st @@ -2,6 +2,8 @@ conversation gathering gatherConversationsOn: aStream | newConversations filteredConversations | + aStream nextPutAll: self pendingAnnouncements. + newConversations := self allConversations readStream. filteredConversations := self totalFilter filter: newConversations. diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/pendingAnnouncements.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/pendingAnnouncements.st new file mode 100644 index 00000000..1a0fee2e --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/pendingAnnouncements.st @@ -0,0 +1,5 @@ +accessing +pendingAnnouncements + + ^ pendingAnnouncements ifNil: [pendingAnnouncements := + self class pendingAnnouncements] \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshMessages.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshMessages.st index f73da450..5e5c282d 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshMessages.st +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshMessages.st @@ -3,7 +3,9 @@ refreshMessages Project uiManager informUser: 'Refreshing messages...' - during: [self inbox refreshMessages]. + during: + [self refreshPendingAnnouncements. + self inbox refreshMessages]. allConversations := nil. self changed: #allConversations \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshPendingAnnouncements.st b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshPendingAnnouncements.st new file mode 100644 index 00000000..8381285c --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/instance/refreshPendingAnnouncements.st @@ -0,0 +1,5 @@ +private +refreshPendingAnnouncements + + pendingAnnouncements := nil. + self pendingAnnouncements. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/methodProperties.json b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/methodProperties.json index 7c7af94d..7d46101b 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/methodProperties.json +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/methodProperties.json @@ -1,13 +1,15 @@ { "class" : { "ageFromString:" : "ct 1/10/2023 18:37", + "allAnnouncementSelectors" : "ct 11/18/2024 20:47", "appName" : "ct 5/20/2021 19:04", "authorMailAddress" : "ct 5/26/2021 23:54", "basicSelfUpdateBranch:" : "ct 11/25/2022 21:27", "basicSelfUpdateMetacelloSpec" : "ct 8/27/2023 21:47", "basicSelfUpdateMetacelloSpec:" : "ct 8/27/2023 21:36", - "cleanUp:" : "ct 11/25/2022 21:27", - "defaultFeedbackText" : "ct 7/24/2021 04:18", + "checkSelfUpdatesIfFound:" : "ct 11/18/2024 20:30", + "cleanUp:" : "ct 11/18/2024 20:43", + "defaultFeedbackText" : "ct 11/18/2024 01:37", "defaultInbox" : "ct 5/26/2021 23:41", "defaultInboxAgeForDanger" : "ct 1/10/2023 18:30", "defaultInboxAgeForWarning" : "ct 1/10/2023 18:30", @@ -18,6 +20,7 @@ "githubNewIssueUrl" : "ct 5/26/2021 23:52", "githubNewIssueUrlWithBody:" : "ct 5/26/2021 23:52", "githubRepositoryParams" : "ct 5/26/2021 23:15", + "hideAnnouncementSelector:" : "ct 11/18/2024 20:41", "iconCheckmarkGray" : "ct 7/20/2021 21:24", "iconCheckmarkGrayContents" : "ct 7/20/2021 21:41", "iconCheckmarkGreen" : "ct 7/20/2021 21:24", @@ -33,6 +36,8 @@ "inboxAgeForWarningString" : "ct 1/10/2023 18:38", "inboxAgeForWarningString:" : "ct 1/10/2023 18:38", "initialize" : "ct 7/24/2021 02:26", + "latestPackageTimeStamps" : "ct 11/18/2024 02:52", + "latestTimeStamp" : "ct 11/18/2024 02:04", "metacello" : "ct 6/23/2023 00:31", "metacelloBaseline" : "ct 7/2/2023 00:08", "newDefault" : "ct 5/20/2021 18:58", @@ -41,10 +46,13 @@ "openDefault" : "ct 5/7/2021 15:57", "openOn:" : "ct 5/7/2021 15:58", "openUrl:" : "ct 7/24/2021 02:27", + "pendingAnnouncements" : "ct 11/18/2024 20:48", "registerInWorldMenu" : "ct 5/18/2021 16:29", "repositoryUrl" : "ct 7/14/2021 15:43", + "resetAnnouncements" : "ct 11/18/2024 20:48", "resources" : "ct 7/24/2021 04:18", "selfUpdate" : "ct 6/3/2023 19:45", + "selfUpdateAnnouncementFor:" : "ct 11/18/2024 20:37", "selfUpdateBranch" : "ct 11/25/2022 21:17", "selfUpdateBranch:" : "ct 11/25/2022 21:28", "selfUpdateFromMetacello" : "ct 8/27/2023 21:47", @@ -56,6 +64,8 @@ "selfUpdateRepositoryParams" : "ct 5/26/2021 20:56", "sendFeedback" : "ct 7/14/2021 18:34", "sendFeedbackGitHub" : "ct 6/15/2021 19:36", + "shouldShowAnnouncements" : "ct 11/18/2024 01:15", + "shouldShowAnnouncements:" : "ct 11/18/2024 20:48", "stringFromAge:" : "ct 1/10/2023 18:36", "stringFromDuration:" : "ct 1/10/2023 18:17", "unload" : "ct 5/18/2021 16:31", @@ -86,7 +96,7 @@ "combineContributionConversations:" : "ct 7/2/2021 17:00", "contents" : "ct 7/3/2021 02:00", "contributeMenu:" : "ct 7/8/2021 13:32", - "conversationColumns" : "ct 7/10/2024 22:42", + "conversationColumns" : "ct 11/18/2024 03:32", "conversationHelpAtRow:atColumn:" : "ct 2/1/2024 20:11", "conversationHelpFor:atColumnNamed:" : "ct 7/20/2021 20:24", "conversationIconAtRow:atColumn:" : "ct 2/1/2024 20:06", @@ -108,7 +118,7 @@ "fullContents" : "ct 7/2/2021 16:49", "gatherAllConversations" : "ct 7/2/2021 17:00", "gatherConversations" : "ct 6/16/2021 20:26", - "gatherConversationsOn:" : "ct 1/5/2024 16:22", + "gatherConversationsOn:" : "ct 11/18/2024 03:20", "hasContributionsSelected" : "ct 5/7/2021 21:58", "hasConversationSelected" : "ct 5/8/2021 20:03", "helpForContributionState:" : "ct 7/17/2021 17:23", @@ -133,9 +143,11 @@ "openConversation" : "ct 7/22/2021 20:27", "openMonticello" : "ct 7/8/2021 13:32", "openPreferences" : "ct 7/20/2021 20:13", - "refreshMessages" : "ct 6/11/2021 14:26", + "pendingAnnouncements" : "ct 11/18/2024 03:23", + "refreshMessages" : "ct 11/18/2024 03:22", "refreshMessagesColor" : "ct 1/10/2023 18:39", "refreshMessagesHelp" : "ct 5/15/2023 19:38", + "refreshPendingAnnouncements" : "ct 11/18/2024 03:23", "resetAllFilters" : "ct 7/2/2021 16:11", "searchModel" : "ct 7/7/2021 20:02", "searchResultsPreview" : "ct 7/22/2021 20:27", diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/properties.json b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/properties.json index b489eef1..ff801ea8 100644 --- a/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/properties.json +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowser.class/properties.json @@ -3,11 +3,13 @@ "classinstvars" : [ ], "classvars" : [ + "HiddenAnnouncementSelectors", "Icons", "InboxAgeForDanger", "InboxAgeForWarning", "SelfUpdateBranch", "SelfUpdateMetacelloSpec", + "ShowAnnouncements", "UseSimpleIcons" ], "commentStamp" : "ct 7/24/2021 02:53", "instvars" : [ @@ -19,7 +21,8 @@ "conversations", "menuFilter", "contents", - "cachedConversationColumns" ], + "cachedConversationColumns", + "pendingAnnouncements" ], "name" : "TalkInboxBrowser", "pools" : [ ], diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/README.md b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/README.md new file mode 100644 index 00000000..fdddbc8d --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/README.md @@ -0,0 +1 @@ +I display an announcement about new updates or features in an inbox browser. For that, I mimick the interface of a conversation and also that of a message (so I can be displayed in a conversation browser as well). \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/date.subject.content..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/date.subject.content..st new file mode 100644 index 00000000..accf4645 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/date.subject.content..st @@ -0,0 +1,8 @@ +instance creation +date: aDateAndTime subject: subject content: content + + ^ self new + date: aDateAndTime; + subject: subject; + content: content; + yourself \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/selector.date.subject.content..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/selector.date.subject.content..st new file mode 100644 index 00000000..4be72f5d --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/class/selector.date.subject.content..st @@ -0,0 +1,9 @@ +instance creation +selector: selector date: aDateAndTime subject: subject content: content + + ^ self new + selector: selector; + date: aDateAndTime; + subject: subject; + content: content; + yourself \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/attachmentNames.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/attachmentNames.st new file mode 100644 index 00000000..27eaf7ec --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/attachmentNames.st @@ -0,0 +1,4 @@ +accessing - message +attachmentNames + + ^ #() \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/author.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/author.st new file mode 100644 index 00000000..01f8053e --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/author.st @@ -0,0 +1,4 @@ +accessing - message +author + + ^ '(system)' \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/authorTimestamp.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/authorTimestamp.st new file mode 100644 index 00000000..0dfa7f89 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/authorTimestamp.st @@ -0,0 +1,5 @@ +accessing - message +authorTimestamp + + ^ 'system ' , self date asDate mmddyyyy , ' ' , + (String streamContents: [:s | self date asTime print24: true showSeconds: false on: s]) \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/browseForSearcher..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/browseForSearcher..st new file mode 100644 index 00000000..561b97c7 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/browseForSearcher..st @@ -0,0 +1,6 @@ +browsing +browseForSearcher: aTextSearcher + + ^ (TalkConversationBrowser on: self) + searcher: aTextSearcher; + open \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content..st new file mode 100644 index 00000000..8c66f2e7 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content..st @@ -0,0 +1,4 @@ +accessing +content: aStringOrText + + content := aStringOrText. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content.st new file mode 100644 index 00000000..a5f2cf17 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/content.st @@ -0,0 +1,4 @@ +accessing +content + + ^ content \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributionState.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributionState.st new file mode 100644 index 00000000..3850e933 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributionState.st @@ -0,0 +1,4 @@ +accessing - conversation +contributionState + + ^ nil \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributions.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributions.st new file mode 100644 index 00000000..63168ddc --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/contributions.st @@ -0,0 +1,4 @@ +accessing - conversation +contributions + + ^ #() \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date..st new file mode 100644 index 00000000..e67f93e1 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date..st @@ -0,0 +1,4 @@ +accessing +date: aDateAndTime + + date := aDateAndTime. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date.st new file mode 100644 index 00000000..7e729372 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/date.st @@ -0,0 +1,4 @@ +accessing +date + + ^ date \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/explainTimezone.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/explainTimezone.st new file mode 100644 index 00000000..baa69a73 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/explainTimezone.st @@ -0,0 +1,4 @@ +tools - message +explainTimezone + + ^ self inform: 'nope' \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/fullTextForSummary.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/fullTextForSummary.st new file mode 100644 index 00000000..3021fe88 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/fullTextForSummary.st @@ -0,0 +1,4 @@ +accessing - conversation +fullTextForSummary + + ^ self text \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hasContributions.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hasContributions.st new file mode 100644 index 00000000..8ac5b869 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hasContributions.st @@ -0,0 +1,4 @@ +accessing - conversation +hasContributions + + ^ false \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hide.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hide.st new file mode 100644 index 00000000..dd6f2ebe --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/hide.st @@ -0,0 +1,5 @@ +actions +hide + + TalkInboxBrowser hideAnnouncementSelector: self selector. + self inform: 'ok won''t show this again'. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/inbox.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/inbox.st new file mode 100644 index 00000000..4f6178d3 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/inbox.st @@ -0,0 +1,4 @@ +accessing - conversation +inbox + + ^ TalkInbox squeakDev \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/involvementState.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/involvementState.st new file mode 100644 index 00000000..e7f65a52 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/involvementState.st @@ -0,0 +1,4 @@ +accessing - conversation +involvementState + + ^ nil \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/isTalkAnnouncement.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/isTalkAnnouncement.st new file mode 100644 index 00000000..7b4a14e1 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/isTalkAnnouncement.st @@ -0,0 +1,4 @@ +testing +isTalkAnnouncement + + ^ true \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/latestDate.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/latestDate.st new file mode 100644 index 00000000..9ba159bf --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/latestDate.st @@ -0,0 +1,4 @@ +accessing - conversation +latestDate + + ^ self date \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/messages.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/messages.st new file mode 100644 index 00000000..2c7cc3d4 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/messages.st @@ -0,0 +1,4 @@ +accessing - conversation +messages + + ^ {self} \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInHyperkitty.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInHyperkitty.st new file mode 100644 index 00000000..7d0a77d9 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInHyperkitty.st @@ -0,0 +1,4 @@ +browsing - conversation +openInHyperkitty + + ^ self inform: 'nope' \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInNabble.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInNabble.st new file mode 100644 index 00000000..119b9559 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInNabble.st @@ -0,0 +1,4 @@ +browsing - conversation +openInNabble + + ^ self inform: 'nope' \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInPipermail.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInPipermail.st new file mode 100644 index 00000000..f4b72713 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/openInPipermail.st @@ -0,0 +1,4 @@ +browsing - conversation +openInPipermail + + ^ self inform: 'nope' \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/plainText.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/plainText.st new file mode 100644 index 00000000..f6b1193e --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/plainText.st @@ -0,0 +1,4 @@ +accessing - message +plainText + + ^ self content \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/printOn..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/printOn..st new file mode 100644 index 00000000..85a32ede --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/printOn..st @@ -0,0 +1,9 @@ +printing +printOn: aStream + + super printOn: aStream. + + aStream + nextPutAll: ' ('; + nextPutAll: self subject; + nextPut: $). \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/rawText.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/rawText.st new file mode 100644 index 00000000..51e7349b --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/rawText.st @@ -0,0 +1,4 @@ +accessing - message +rawText + + ^ self text asString \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/richText.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/richText.st new file mode 100644 index 00000000..803ddf72 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/richText.st @@ -0,0 +1,4 @@ +accessing - message +richText + + ^ self text \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector..st new file mode 100644 index 00000000..d3ee7d6c --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector..st @@ -0,0 +1,4 @@ +accessing +selector: aSymbol + + selector := aSymbol. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector.st new file mode 100644 index 00000000..bf5601b8 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/selector.st @@ -0,0 +1,4 @@ +accessing +selector + + ^ selector \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject..st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject..st new file mode 100644 index 00000000..c6c3d166 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject..st @@ -0,0 +1,4 @@ +accessing +subject: aString + + subject := aString. \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject.st new file mode 100644 index 00000000..8266e030 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/subject.st @@ -0,0 +1,4 @@ +accessing +subject + + ^ subject \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/text.st b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/text.st new file mode 100644 index 00000000..6e13259a --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/instance/text.st @@ -0,0 +1,10 @@ +accessing - message +text + + self selector ifNil: [^ self content]. + + ^ self content asText , String cr , String cr , + ('[Hide this announcement]' asText + addAttribute: + (PluggableTextAttribute evalBlock: [self hide]); + yourself) \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/methodProperties.json b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/methodProperties.json new file mode 100644 index 00000000..16adb2e2 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/methodProperties.json @@ -0,0 +1,36 @@ +{ + "class" : { + "date:subject:content:" : "ct 11/18/2024 20:36", + "selector:date:subject:content:" : "ct 11/18/2024 20:37" }, + "instance" : { + "attachmentNames" : "ct 11/18/2024 03:41", + "author" : "ct 11/18/2024 03:43", + "authorTimestamp" : "ct 11/18/2024 03:45", + "browseForSearcher:" : "ct 11/18/2024 03:40", + "content" : "ct 11/18/2024 20:36", + "content:" : "ct 11/18/2024 20:36", + "contributionState" : "ct 11/18/2024 03:17", + "contributions" : "ct 11/18/2024 03:15", + "date" : "ct 11/18/2024 03:11", + "date:" : "ct 11/18/2024 03:11", + "explainTimezone" : "ct 11/18/2024 03:46", + "fullTextForSummary" : "ct 11/18/2024 03:47", + "hasContributions" : "ct 11/18/2024 03:15", + "hide" : "ct 11/18/2024 20:46", + "inbox" : "ct 11/18/2024 03:41", + "involvementState" : "ct 11/18/2024 03:17", + "isTalkAnnouncement" : "ct 11/18/2024 03:32", + "latestDate" : "ct 11/18/2024 03:14", + "messages" : "ct 11/18/2024 03:40", + "openInHyperkitty" : "ct 11/18/2024 21:24", + "openInNabble" : "ct 11/18/2024 21:23", + "openInPipermail" : "ct 11/18/2024 21:23", + "plainText" : "ct 11/18/2024 20:37", + "printOn:" : "ct 11/18/2024 20:49", + "rawText" : "ct 11/18/2024 03:46", + "richText" : "ct 11/18/2024 03:43", + "selector" : "ct 11/18/2024 20:35", + "selector:" : "ct 11/18/2024 20:35", + "subject" : "ct 11/18/2024 03:12", + "subject:" : "ct 11/18/2024 03:12", + "text" : "ct 11/18/2024 20:50" } } diff --git a/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/properties.json b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/properties.json new file mode 100644 index 00000000..6281ba27 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkInboxBrowserAnnouncement.class/properties.json @@ -0,0 +1,17 @@ +{ + "category" : "SqueakInboxTalk-UI", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "ct 11/18/2024 21:07", + "instvars" : [ + "date", + "subject", + "content", + "selector" ], + "name" : "TalkInboxBrowserAnnouncement", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/SqueakInboxTalk.package/TalkMessage.class/instance/isTalkAnnouncement.st b/packages/SqueakInboxTalk.package/TalkMessage.class/instance/isTalkAnnouncement.st new file mode 100644 index 00000000..68e66461 --- /dev/null +++ b/packages/SqueakInboxTalk.package/TalkMessage.class/instance/isTalkAnnouncement.st @@ -0,0 +1,4 @@ +*SqueakInboxTalk-UI-testing +isTalkAnnouncement + + ^ false \ No newline at end of file diff --git a/packages/SqueakInboxTalk.package/TalkMessage.class/methodProperties.json b/packages/SqueakInboxTalk.package/TalkMessage.class/methodProperties.json index 15f9b71b..5524ec4e 100644 --- a/packages/SqueakInboxTalk.package/TalkMessage.class/methodProperties.json +++ b/packages/SqueakInboxTalk.package/TalkMessage.class/methodProperties.json @@ -19,6 +19,7 @@ "inbox" : "ct 5/20/2021 18:54", "includesMentionOf:" : "ct 5/16/2023 14:30", "isPlaceholder" : "ct 8/16/2023 15:43", + "isTalkAnnouncement" : "ct 11/18/2024 03:51", "mail" : "ct 5/7/2021 15:07", "mail:" : "ct 5/7/2021 15:07", "messageId" : "ct 5/18/2023 19:04", diff --git a/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/instance/similarConversations.st b/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/instance/similarConversations.st new file mode 100644 index 00000000..36d9c09f --- /dev/null +++ b/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/instance/similarConversations.st @@ -0,0 +1,4 @@ +*SqueakInboxTalkExtras-Semantics-Core +similarConversations + + ^ #() \ No newline at end of file diff --git a/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/methodProperties.json b/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/methodProperties.json new file mode 100644 index 00000000..e91deb29 --- /dev/null +++ b/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "similarConversations" : "ct 11/18/2024 03:48" } } diff --git a/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/properties.json b/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/properties.json new file mode 100644 index 00000000..4268aef9 --- /dev/null +++ b/packages/SqueakInboxTalkExtras-Semantics.package/TalkInboxBrowserAnnouncement.extension/properties.json @@ -0,0 +1,2 @@ +{ + "name" : "TalkInboxBrowserAnnouncement" } diff --git a/packages/SqueakInboxTalkJobs.package/.filetree b/packages/SqueakInboxTalkJobs.package/.filetree new file mode 100644 index 00000000..8998102c --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/.filetree @@ -0,0 +1,4 @@ +{ + "noMethodMetaData" : true, + "separateMethodMetaAndSource" : false, + "useCypressPropertiesFile" : true } diff --git a/packages/SqueakInboxTalkJobs.package/.squot-contents b/packages/SqueakInboxTalkJobs.package/.squot-contents new file mode 100644 index 00000000..bc8ef108 --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/.squot-contents @@ -0,0 +1,6 @@ +SquotTrackedObjectMetadata { + #objectClassName : #PackageInfo, + #id : UUID [ '90159a45ff75472f8ea0b80abb64d607' ], + #objectsReplacedByNames : true, + #serializer : #SquotCypressCodeSerializer +} \ No newline at end of file diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/README.md b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/README.md similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/README.md rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/README.md diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/class/allTestSelectors.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/class/allTestSelectors.st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/class/allTestSelectors.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/class/allTestSelectors.st diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/class/isCI.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/class/isCI.st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/class/isCI.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/class/isCI.st diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/class/testSelectors.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/class/testSelectors.st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/class/testSelectors.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/class/testSelectors.st diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/badgeGistId.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/badgeGistId.st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/badgeGistId.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/badgeGistId.st diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/gistToken.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/gistToken.st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/gistToken.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/gistToken.st diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/githubRefName.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/githubRefName.st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/githubRefName.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/githubRefName.st diff --git a/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/latestTimeStampsGistId.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/latestTimeStampsGistId.st new file mode 100644 index 00000000..c44ffaae --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/latestTimeStampsGistId.st @@ -0,0 +1,4 @@ +time stamps +latestTimeStampsGistId + + ^ '36dd3c4a155eed5aa7e874415cd60eea' \ No newline at end of file diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/testFlagsBadge.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testFlagsBadge.st similarity index 98% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/testFlagsBadge.st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testFlagsBadge.st index cefa1acb..eaafca06 100644 --- a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/testFlagsBadge.st +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testFlagsBadge.st @@ -1,4 +1,4 @@ -tests +jobs testFlagsBadge | flags flagsCount | diff --git a/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testLatestTimeStamps.st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testLatestTimeStamps.st new file mode 100644 index 00000000..4a344179 --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/testLatestTimeStamps.st @@ -0,0 +1,19 @@ +jobs +testLatestTimeStamps + + | timeStamps | + self flag: #todo. "all pipeline jobs must run in separate ci job with all packages loaded!" + + timeStamps := TalkInboxBrowser latestPackageTimeStamps associations + collect: [:packageInfoAndTimeStamp | + packageInfoAndTimeStamp key name -> packageInfoAndTimeStamp value asDateAndTime asUTC asString] + as: Dictionary. + Transcript + showln: 'latest time stamps: '; + show: timeStamps printString. + + self + updateLatestTimeStampsFor: ('latestTimeStamps/{1}' format: {self githubRefName}) + data: timeStamps. + + Transcript showln: 'Updated latest time stamps.'. \ No newline at end of file diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/updateBadgeNamed.label.value.color..st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/updateBadgeNamed.label.value.color..st similarity index 100% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/updateBadgeNamed.label.value.color..st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/updateBadgeNamed.label.value.color..st diff --git a/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/updateLatestTimeStampsFor.data..st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/updateLatestTimeStampsFor.data..st new file mode 100644 index 00000000..406f6e01 --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/updateLatestTimeStampsFor.data..st @@ -0,0 +1,10 @@ +time stamps +updateLatestTimeStampsFor: name data: timeStamps + + | content filename | + filename := ('{1}.json' format: {name}) asFileName. + content := JsonObject new + timeStamps: timeStamps; + yourself. + + self uploadGist: self latestTimeStampsGistId filename: filename content: content asJsonString. \ No newline at end of file diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/uploadGist.filename.content..st b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/uploadGist.filename.content..st similarity index 98% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/uploadGist.filename.content..st rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/uploadGist.filename.content..st index 99ff07a1..efa14ee9 100644 --- a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/instance/uploadGist.filename.content..st +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/instance/uploadGist.filename.content..st @@ -1,4 +1,4 @@ -badges +gists uploadGist: gistId filename: filename content: aString | client request result | diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/methodProperties.json b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/methodProperties.json similarity index 73% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/methodProperties.json rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/methodProperties.json index 3af80db7..5101a715 100644 --- a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/methodProperties.json +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/methodProperties.json @@ -7,6 +7,9 @@ "badgeGistId" : "ct 5/18/2021 17:58", "gistToken" : "ct 5/18/2021 18:26", "githubRefName" : "ct 5/18/2021 18:26", + "latestTimeStampsGistId" : "ct 11/18/2024 02:32", "testFlagsBadge" : "ct 5/19/2021 22:15", + "testLatestTimeStamps" : "ct 11/18/2024 02:47", "updateBadgeNamed:label:value:color:" : "ct 5/18/2021 18:06", + "updateLatestTimeStampsFor:data:" : "ct 11/18/2024 02:32", "uploadGist:filename:content:" : "ct 5/18/2021 18:45" } } diff --git a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/properties.json b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/properties.json similarity index 81% rename from packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/properties.json rename to packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/properties.json index 13ee3652..00ffc366 100644 --- a/packages/SqueakInboxTalkTests.package/TalkPipelineJobs.class/properties.json +++ b/packages/SqueakInboxTalkJobs.package/TalkPipelineJobs.class/properties.json @@ -1,5 +1,5 @@ { - "category" : "SqueakInboxTalkTests-Abstract", + "category" : "SqueakInboxTalkJobs", "classinstvars" : [ ], "classvars" : [ diff --git a/packages/SqueakInboxTalkJobs.package/monticello.meta/categories.st b/packages/SqueakInboxTalkJobs.package/monticello.meta/categories.st new file mode 100644 index 00000000..55e222d9 --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/monticello.meta/categories.st @@ -0,0 +1 @@ +SystemOrganization addCategory: #SqueakInboxTalkJobs! diff --git a/packages/SqueakInboxTalkJobs.package/monticello.meta/initializers.st b/packages/SqueakInboxTalkJobs.package/monticello.meta/initializers.st new file mode 100644 index 00000000..e69de29b diff --git a/packages/SqueakInboxTalkJobs.package/properties.json b/packages/SqueakInboxTalkJobs.package/properties.json new file mode 100644 index 00000000..f037444a --- /dev/null +++ b/packages/SqueakInboxTalkJobs.package/properties.json @@ -0,0 +1,2 @@ +{ + } diff --git a/tests.smalltalk.ston b/tests.smalltalk.ston new file mode 100644 index 00000000..c6d507b6 --- /dev/null +++ b/tests.smalltalk.ston @@ -0,0 +1,18 @@ +SmalltalkCISpec { + #loading : [ + SCIMetacelloLoadSpec { + #baseline : 'SqueakInboxTalk', + #directory : 'packages', + #platforms : [ #squeak ], + #load : [ 'tests' ] + } + ], + #testing : { + #packages : [ 'SqueakInboxTalkTests' ], + #coverage : { + #packages : [ 'SqueakInboxTalk' ], + #categories : [ 'SqueakInboxTalk-Base', 'SqueakInboxTalk-Core', 'SqueakInboxTalk-MailingLists' ], + #format : #coveralls + } + } +}