From ffedcb9dfcbec7326650da89fca0c452d7795f58 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 5 Oct 2026 17:33:01 -0500 Subject: [PATCH 1/8] Fix CircleCI config: declare version 2.1 and build with Xcode 27 CircleCI retired configuration version 2 at the end of September, so every pipeline since then has errored before running a single step. Declaring version 2.1 restores the builds. The image moves to Xcode 27 to match the browser build and local development. --- .circleci/config.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ef02ead944..74aa1be7c4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,9 @@ +version: 2.1 + jobs: build_and_test: macos: - xcode: 26.4 + xcode: "27.0" steps: - checkout - run: @@ -18,8 +20,8 @@ jobs: command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' test | xcbeautify --report junit --report-path test-results/results.xml - store_test_results: path: test-results + workflows: - version: 2 build_and_test: jobs: - build_and_test From f8205938e0d9f11cfc7cddfdcdac958e5fef56bb Mon Sep 17 00:00:00 2001 From: marionbarker Date: Tue, 6 Oct 2026 15:33:57 -0700 Subject: [PATCH 2/8] update LoopKit: Adopt the scene lifecycle in the LoopKit Example --- LoopKit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopKit b/LoopKit index d9f1437353..63a46dd6c3 160000 --- a/LoopKit +++ b/LoopKit @@ -1 +1 @@ -Subproject commit d9f1437353482690426bd981536f58c1e95ff535 +Subproject commit 63a46dd6c31774101b5b714ed0a278413efac167 From 9795d18110559486294498722982d18d85565c21 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Tue, 6 Oct 2026 20:28:19 -0500 Subject: [PATCH 3/8] CI: keep the raw xcodebuild logs as artifacts xcbeautify hides xcodebuild's own progress messages, so when the test step went silent for ten minutes after the last bundle finished there was nothing to say why. Tee the raw output to files and store them. --- .circleci/config.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 74aa1be7c4..766619e9ab 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,12 +14,16 @@ jobs: command: brew list xcbeautify >/dev/null 2>&1 || brew install xcbeautify - run: name: Build Loop - command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' build | xcbeautify + command: | + mkdir -p logs + set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' build 2>&1 | tee logs/build.log | xcbeautify - run: name: Run Tests - command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' test | xcbeautify --report junit --report-path test-results/results.xml + command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' test 2>&1 | tee logs/test.log | xcbeautify --report junit --report-path test-results/results.xml - store_test_results: path: test-results + - store_artifacts: + path: logs workflows: build_and_test: From 5553cd6c66087da156da95eddc4cf75d378826d3 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Tue, 6 Oct 2026 20:45:48 -0500 Subject: [PATCH 4/8] CI: skip simulator diagnostics collection after tests With every test passing, xcodebuild still spent 600 seconds trying to collect simulator diagnostics and timed out, and CircleCI's ten-minute no-output limit killed the step one second earlier. The raw log from the previous run shows it. Diagnostics are not useful on CI anyway; the junit report and the raw log are what we read. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 766619e9ab..f4ec1d3bf1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -19,7 +19,7 @@ jobs: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' build 2>&1 | tee logs/build.log | xcbeautify - run: name: Run Tests - command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' test 2>&1 | tee logs/test.log | xcbeautify --report junit --report-path test-results/results.xml + command: set -o pipefail && time xcodebuild -workspace LoopWorkspace.xcworkspace -scheme 'LoopWorkspace' -destination 'platform=iOS Simulator,name=iPhone 17' -collect-test-diagnostics never test 2>&1 | tee logs/test.log | xcbeautify --report junit --report-path test-results/results.xml - store_test_results: path: test-results - store_artifacts: From 84a7f1f533e21e6b4b1937ac366e525483e249c8 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Tue, 6 Oct 2026 20:42:41 -0700 Subject: [PATCH 5/8] update Loop: Give the dosing tests ten seconds to wait on the data queue --- Loop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loop b/Loop index c30b5c89b1..691afb313b 160000 --- a/Loop +++ b/Loop @@ -1 +1 @@ -Subproject commit c30b5c89b1dc4151628f33f1384dd4796eaeeec2 +Subproject commit 691afb313b34fa40bc13b2aff26db6cc3f9721c5 From 5e7fdde8daef394730a8fefbedb1084f823b57eb Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Wed, 7 Oct 2026 00:41:05 -0500 Subject: [PATCH 6/8] CI: keep simulator crash reports as artifacts A test host crashed with an index out of range on CI but not locally, and without the crash report there is no stack to read. --- .circleci/config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index f4ec1d3bf1..832673dc8e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,6 +24,9 @@ jobs: path: test-results - store_artifacts: path: logs + - store_artifacts: + path: /Users/distiller/Library/Logs/DiagnosticReports + destination: crashes workflows: build_and_test: From ace1f1e3ceb7ad5368fb83d977580dd4604b33ed Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sun, 11 Oct 2026 11:04:11 -0700 Subject: [PATCH 7/8] update LoopKit: LoopKit PR 633 prior to merge --- LoopKit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopKit b/LoopKit index 63a46dd6c3..55d2c1047f 160000 --- a/LoopKit +++ b/LoopKit @@ -1 +1 @@ -Subproject commit 63a46dd6c31774101b5b714ed0a278413efac167 +Subproject commit 55d2c1047fe4a250f2bd9d1b88278a9e1f8cabd8 From 1167c8033fa6da47b727e936736f43c23182c497 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Mon, 12 Oct 2026 10:19:38 -0700 Subject: [PATCH 8/8] update LoopKit: add changed from LoopKit 633 and 636 after merging --- LoopKit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopKit b/LoopKit index 55d2c1047f..29a8e0f0a4 160000 --- a/LoopKit +++ b/LoopKit @@ -1 +1 @@ -Subproject commit 55d2c1047fe4a250f2bd9d1b88278a9e1f8cabd8 +Subproject commit 29a8e0f0a4fb0104a2989f63bd4d61da520f3363