@htekdev/actions-debugger 1.0.98 → 1.0.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/errors/runner-environment/macos-15-ios-simulator-runtimes-not-preinstalled.yml +75 -0
- package/errors/runner-environment/pip-install-externally-managed-environment-pep668.yml +69 -0
- package/errors/runner-environment/setup-dotnet-eol-net6-net7-version-not-found.yml +72 -0
- package/errors/silent-failures/macos-latest-upgraded-to-macos-15-xcode-16-swift-6.yml +71 -0
- package/package.json +1 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
id: runner-environment-167
|
|
2
|
+
title: "macOS 15 / Xcode 16: iOS Simulator Runtimes Not Pre-Installed — xcodebuild test Fails with No Matching Destination"
|
|
3
|
+
category: runner-environment
|
|
4
|
+
severity: error
|
|
5
|
+
tags:
|
|
6
|
+
- macos
|
|
7
|
+
- xcode
|
|
8
|
+
- ios
|
|
9
|
+
- simulator
|
|
10
|
+
- xcodebuild
|
|
11
|
+
- runner-image
|
|
12
|
+
patterns:
|
|
13
|
+
- regex: 'Unable to find a destination matching the provided destination specifier'
|
|
14
|
+
flags: i
|
|
15
|
+
- regex: 'No simulator runtime matching .* was found'
|
|
16
|
+
flags: i
|
|
17
|
+
- regex: 'Could not find a simulator destination'
|
|
18
|
+
flags: i
|
|
19
|
+
error_messages:
|
|
20
|
+
- "error: Unable to find a destination matching the provided destination specifier: { platform:iOS Simulator, name:iPhone 15 }"
|
|
21
|
+
- "error: No simulator runtime matching 'iOS 18.0' was found."
|
|
22
|
+
- "Testing failed: Could not find a destination that satisfied the requested destination specifier."
|
|
23
|
+
- "xcodebuild: error: 'xcodebuild test' requires a simulator, but no runtimes are installed."
|
|
24
|
+
root_cause: |
|
|
25
|
+
Starting with Xcode 16 on macOS 15 GitHub-hosted runners, Apple decoupled iOS/iPadOS simulator
|
|
26
|
+
runtimes from the Xcode installation to reduce download sizes. Unlike Xcode 15 where simulator
|
|
27
|
+
runtimes for iOS 17 were bundled, Xcode 16 ships without any pre-installed simulator runtimes.
|
|
28
|
+
Running `xcrun simctl list runtimes` on macos-15 returns an empty list. When `xcodebuild test`
|
|
29
|
+
is called with an iOS Simulator destination, it fails immediately because there are no runtimes
|
|
30
|
+
to match against. This affects all iOS, tvOS, and watchOS simulator-based tests.
|
|
31
|
+
fix: |
|
|
32
|
+
Option 1 — Download the required simulator runtime before testing (adds ~5-10 min):
|
|
33
|
+
Use `xcrun simctl runtime add <identifier>` to download the runtime.
|
|
34
|
+
|
|
35
|
+
Option 2 — Pin to macos-14 which ships with simulator runtimes pre-installed.
|
|
36
|
+
|
|
37
|
+
Option 3 — Use `xcode-install` or `xcodes` to select an older Xcode with bundled runtimes.
|
|
38
|
+
fix_code:
|
|
39
|
+
- language: yaml
|
|
40
|
+
label: "Install iOS simulator runtime before running xcodebuild test"
|
|
41
|
+
code: |
|
|
42
|
+
- name: Install iOS 18 Simulator Runtime
|
|
43
|
+
run: |
|
|
44
|
+
xcrun simctl runtime add "com.apple.CoreSimulator.SimRuntime.iOS-18-0"
|
|
45
|
+
timeout-minutes: 15
|
|
46
|
+
- name: Run iOS Tests
|
|
47
|
+
run: |
|
|
48
|
+
xcodebuild test \
|
|
49
|
+
-scheme MyApp \
|
|
50
|
+
-destination 'platform=iOS Simulator,name=iPhone 16,OS=18.0'
|
|
51
|
+
- language: yaml
|
|
52
|
+
label: "Pin to macos-14 to use pre-installed simulator runtimes"
|
|
53
|
+
code: |
|
|
54
|
+
jobs:
|
|
55
|
+
test:
|
|
56
|
+
runs-on: macos-14 # Simulator runtimes bundled with Xcode 15
|
|
57
|
+
steps:
|
|
58
|
+
- uses: actions/checkout@v4
|
|
59
|
+
- name: Run iOS Tests
|
|
60
|
+
run: |
|
|
61
|
+
xcodebuild test \
|
|
62
|
+
-scheme MyApp \
|
|
63
|
+
-destination 'platform=iOS Simulator,name=iPhone 15'
|
|
64
|
+
prevention:
|
|
65
|
+
- "Always pin to a specific macOS version rather than macos-latest for iOS CI workflows"
|
|
66
|
+
- "Add a `xcrun simctl list runtimes` step early in your workflow to detect missing runtimes fast"
|
|
67
|
+
- "Check GitHub Actions runner-images release notes when bumping macOS version"
|
|
68
|
+
- "Budget extra CI time (10-15 min) for simulator runtime download when using Xcode 16+"
|
|
69
|
+
docs:
|
|
70
|
+
- url: "https://github.com/actions/runner-images/issues/10337"
|
|
71
|
+
label: "runner-images: Simulator runtimes not pre-installed with Xcode 16"
|
|
72
|
+
- url: "https://developer.apple.com/documentation/xcode/installing-additional-simulator-runtimes"
|
|
73
|
+
label: "Apple: Installing Additional Simulator Runtimes"
|
|
74
|
+
- url: "https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md"
|
|
75
|
+
label: "macOS 15 Runner Image — Installed Software"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
id: runner-environment-168
|
|
2
|
+
title: "pip install Fails with 'externally-managed-environment' on Ubuntu 22.04/24.04 (PEP 668)"
|
|
3
|
+
category: runner-environment
|
|
4
|
+
severity: error
|
|
5
|
+
tags:
|
|
6
|
+
- python
|
|
7
|
+
- pip
|
|
8
|
+
- pep668
|
|
9
|
+
- ubuntu-22
|
|
10
|
+
- ubuntu-24
|
|
11
|
+
- externally-managed
|
|
12
|
+
patterns:
|
|
13
|
+
- regex: 'error: externally-managed-environment'
|
|
14
|
+
flags: i
|
|
15
|
+
- regex: 'This environment is externally managed'
|
|
16
|
+
flags: i
|
|
17
|
+
- regex: 'If you wish to install a non-Debian.*package.*--break-system-packages'
|
|
18
|
+
flags: i
|
|
19
|
+
error_messages:
|
|
20
|
+
- "error: externally-managed-environment"
|
|
21
|
+
- "× This environment is externally managed"
|
|
22
|
+
- "To install Python packages system-wide, try apt install python3-xyz"
|
|
23
|
+
- "If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv"
|
|
24
|
+
root_cause: |
|
|
25
|
+
PEP 668 (implemented in Python 3.11+) marks system Python installations as "externally managed"
|
|
26
|
+
to prevent pip from overwriting system packages managed by the OS package manager (apt, brew, etc.).
|
|
27
|
+
Ubuntu 22.04 adopted this restriction for its bundled Python 3.10+, and Ubuntu 24.04 enforces it
|
|
28
|
+
strictly. When a workflow uses the system Python (python3 without actions/setup-python) and runs
|
|
29
|
+
`pip install`, the installation fails immediately with the "externally-managed-environment" error.
|
|
30
|
+
This breaks workflows that previously ran pip install directly without a virtual environment.
|
|
31
|
+
fix: |
|
|
32
|
+
Option 1 (Recommended) — Use actions/setup-python to install an isolated Python:
|
|
33
|
+
The action installs Python in the tool cache, outside the system-managed environment.
|
|
34
|
+
|
|
35
|
+
Option 2 — Create a virtual environment before running pip:
|
|
36
|
+
python3 -m venv .venv && source .venv/bin/activate && pip install ...
|
|
37
|
+
|
|
38
|
+
Option 3 (Quick fix, not recommended for CI) — Pass --break-system-packages:
|
|
39
|
+
pip install --break-system-packages <package>
|
|
40
|
+
fix_code:
|
|
41
|
+
- language: yaml
|
|
42
|
+
label: "Use actions/setup-python to avoid externally-managed-environment error"
|
|
43
|
+
code: |
|
|
44
|
+
- uses: actions/setup-python@v5
|
|
45
|
+
with:
|
|
46
|
+
python-version: '3.12'
|
|
47
|
+
- name: Install dependencies
|
|
48
|
+
run: pip install -r requirements.txt # Uses tool-cache Python, not system Python
|
|
49
|
+
- language: yaml
|
|
50
|
+
label: "Use a virtual environment with system Python"
|
|
51
|
+
code: |
|
|
52
|
+
- name: Create venv and install
|
|
53
|
+
run: |
|
|
54
|
+
python3 -m venv .venv
|
|
55
|
+
.venv/bin/pip install -r requirements.txt
|
|
56
|
+
- name: Run tests
|
|
57
|
+
run: .venv/bin/pytest
|
|
58
|
+
prevention:
|
|
59
|
+
- "Always use actions/setup-python rather than relying on the runner's system Python"
|
|
60
|
+
- "If system Python must be used, wrap all pip calls in a virtual environment (python3 -m venv)"
|
|
61
|
+
- "Avoid pip install --break-system-packages in CI — it risks corrupting the runner environment"
|
|
62
|
+
- "Pin python-version in setup-python to avoid unexpected upgrades between runner image updates"
|
|
63
|
+
docs:
|
|
64
|
+
- url: "https://peps.python.org/pep-0668/"
|
|
65
|
+
label: "PEP 668 — Marking Python base environments as externally managed"
|
|
66
|
+
- url: "https://github.com/actions/setup-python"
|
|
67
|
+
label: "actions/setup-python — GitHub"
|
|
68
|
+
- url: "https://github.com/actions/runner-images/issues/6943"
|
|
69
|
+
label: "runner-images: PEP 668 externally-managed-environment on Ubuntu 22.04"
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
id: runner-environment-166
|
|
2
|
+
title: "actions/setup-dotnet Fails Installing EOL .NET 6 and .NET 7 — Version Not Found in Cache or CDN"
|
|
3
|
+
category: runner-environment
|
|
4
|
+
severity: error
|
|
5
|
+
tags:
|
|
6
|
+
- dotnet
|
|
7
|
+
- setup-dotnet
|
|
8
|
+
- eol
|
|
9
|
+
- version-not-found
|
|
10
|
+
- net6
|
|
11
|
+
- net7
|
|
12
|
+
patterns:
|
|
13
|
+
- regex: 'Error: Version \d+\.\d+\.[\dx]+ was not found in the local cache or download source'
|
|
14
|
+
flags: i
|
|
15
|
+
- regex: 'Error: Unable to find dotnet version.*satisf'
|
|
16
|
+
flags: i
|
|
17
|
+
- regex: 'Error: Could not find dotnet version matching'
|
|
18
|
+
flags: i
|
|
19
|
+
error_messages:
|
|
20
|
+
- "Error: Version 6.0.x was not found in the local cache or download source."
|
|
21
|
+
- "Error: Unable to find dotnet version that satisfies: 7.0"
|
|
22
|
+
- "Error: Could not find dotnet version matching '6.x'."
|
|
23
|
+
- "Failed to install dotnet from official website."
|
|
24
|
+
root_cause: |
|
|
25
|
+
.NET 6 reached end-of-life on November 12, 2024, and .NET 7 reached end-of-life on May 14, 2024.
|
|
26
|
+
After EOL, Microsoft removes these SDK builds from the official download CDN
|
|
27
|
+
(dotnetcli.azureedge.net). actions/setup-dotnet@v4+ will fail with "Version not found" when the
|
|
28
|
+
requested version is unavailable from Microsoft's servers and is absent from the GitHub-hosted
|
|
29
|
+
runner tool cache. Workflows pinned to dotnet-version: '6.x', '6.0.x', or '7.x' break silently
|
|
30
|
+
until CI runs after the removal date — no prior warning is given by the action.
|
|
31
|
+
fix: |
|
|
32
|
+
Upgrade to a supported .NET LTS version:
|
|
33
|
+
- .NET 8 (LTS, supported until November 10, 2026)
|
|
34
|
+
- .NET 9 (STS, supported until May 2026)
|
|
35
|
+
- .NET 10 (LTS, current preview)
|
|
36
|
+
|
|
37
|
+
Also update <TargetFramework> in .csproj files to match.
|
|
38
|
+
fix_code:
|
|
39
|
+
- language: yaml
|
|
40
|
+
label: "Upgrade from EOL .NET 6/7 to .NET 8 LTS"
|
|
41
|
+
code: |
|
|
42
|
+
- name: Setup .NET
|
|
43
|
+
uses: actions/setup-dotnet@v4
|
|
44
|
+
with:
|
|
45
|
+
dotnet-version: '8.x' # LTS — supported until November 2026
|
|
46
|
+
# dotnet-version: '6.x' # EOL November 12, 2024 — will fail
|
|
47
|
+
# dotnet-version: '7.x' # EOL May 14, 2024 — will fail
|
|
48
|
+
- name: Build
|
|
49
|
+
run: dotnet build
|
|
50
|
+
- language: yaml
|
|
51
|
+
label: "Matrix build across multiple supported .NET versions"
|
|
52
|
+
code: |
|
|
53
|
+
strategy:
|
|
54
|
+
matrix:
|
|
55
|
+
dotnet: ['8.x', '9.x']
|
|
56
|
+
steps:
|
|
57
|
+
- uses: actions/setup-dotnet@v4
|
|
58
|
+
with:
|
|
59
|
+
dotnet-version: ${{ matrix.dotnet }}
|
|
60
|
+
- run: dotnet test
|
|
61
|
+
prevention:
|
|
62
|
+
- "Use only LTS .NET versions in production CI (8.x, 10.x) for maximum support lifetime"
|
|
63
|
+
- "Track EOL dates at https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core"
|
|
64
|
+
- "Set a calendar reminder for EOL dates to migrate at least 3 months before end-of-life"
|
|
65
|
+
- "Enable Dependabot for dotnet-version in workflow files to surface upgrade recommendations"
|
|
66
|
+
docs:
|
|
67
|
+
- url: "https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core"
|
|
68
|
+
label: ".NET Support Lifecycle — Microsoft"
|
|
69
|
+
- url: "https://github.com/actions/setup-dotnet"
|
|
70
|
+
label: "actions/setup-dotnet — GitHub"
|
|
71
|
+
- url: "https://github.com/actions/setup-dotnet/issues/475"
|
|
72
|
+
label: "actions/setup-dotnet: EOL version download failures"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
id: silent-failures-089
|
|
2
|
+
title: "macos-latest Silently Upgraded to macOS 15 (Sequoia) — Xcode 16 and Swift 6 Strictness"
|
|
3
|
+
category: silent-failures
|
|
4
|
+
severity: silent-failure
|
|
5
|
+
tags:
|
|
6
|
+
- macos
|
|
7
|
+
- xcode
|
|
8
|
+
- swift
|
|
9
|
+
- runner-version
|
|
10
|
+
- label-change
|
|
11
|
+
patterns:
|
|
12
|
+
- regex: 'Sending .* risks causing data races'
|
|
13
|
+
flags: i
|
|
14
|
+
- regex: 'does not conform to protocol .Sendable.'
|
|
15
|
+
flags: i
|
|
16
|
+
- regex: 'error: Expression is not assignable'
|
|
17
|
+
flags: i
|
|
18
|
+
error_messages:
|
|
19
|
+
- "error: Sending 'self' risks causing data races"
|
|
20
|
+
- "error: Type 'X' does not conform to protocol 'Sendable'"
|
|
21
|
+
- "note: annotate with '@MainActor' if property should only be accessed from the main actor"
|
|
22
|
+
root_cause: |
|
|
23
|
+
GitHub changed macos-latest to point to macOS 15 (Sequoia) with Xcode 16 in December 2024.
|
|
24
|
+
Xcode 16 enables Swift strict concurrency checking (Swift 6 language mode prerequisites) by
|
|
25
|
+
default. Workflows written and tested on macOS 14 (Sonoma) with Xcode 15 silently receive
|
|
26
|
+
macOS 15 with Xcode 16, which promotes Swift concurrency warnings to errors and enforces
|
|
27
|
+
Sendable conformance. Unlike a build failure with a clear version mismatch message, workflows
|
|
28
|
+
appear to run normally until the Swift compiler raises concurrency errors on previously clean code.
|
|
29
|
+
This mirrors the ubuntu-latest → ubuntu-24.04 silent label change (see silent-failures-059).
|
|
30
|
+
fix: |
|
|
31
|
+
Option 1 — Pin to macos-14 until your codebase is Swift 6 ready:
|
|
32
|
+
runs-on: macos-14
|
|
33
|
+
|
|
34
|
+
Option 2 — Disable strict concurrency checking temporarily:
|
|
35
|
+
Add SWIFT_STRICT_CONCURRENCY=minimal to xcodebuild arguments.
|
|
36
|
+
|
|
37
|
+
Option 3 — Migrate to Swift 6 concurrency (recommended long term):
|
|
38
|
+
Annotate types with @MainActor, Sendable, or nonisolated as appropriate.
|
|
39
|
+
Use async/await and actors for shared mutable state.
|
|
40
|
+
fix_code:
|
|
41
|
+
- language: yaml
|
|
42
|
+
label: "Pin to macos-14 until Swift 6 migration is complete"
|
|
43
|
+
code: |
|
|
44
|
+
jobs:
|
|
45
|
+
build:
|
|
46
|
+
runs-on: macos-14 # Pinned — avoids Xcode 16 Swift 6 strictness
|
|
47
|
+
# Use macos-15 once concurrency issues are resolved
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v4
|
|
50
|
+
- name: Build and test
|
|
51
|
+
run: xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'
|
|
52
|
+
- language: yaml
|
|
53
|
+
label: "Disable Swift strict concurrency temporarily with SWIFT_STRICT_CONCURRENCY=minimal"
|
|
54
|
+
code: |
|
|
55
|
+
- name: Build with relaxed concurrency checking
|
|
56
|
+
run: |
|
|
57
|
+
xcodebuild build \
|
|
58
|
+
-scheme MyApp \
|
|
59
|
+
SWIFT_STRICT_CONCURRENCY=minimal
|
|
60
|
+
prevention:
|
|
61
|
+
- "Pin to a specific macOS version (macos-14, macos-15) instead of macos-latest for stability"
|
|
62
|
+
- "Follow GitHub Changelog for macos-latest label change announcements before they happen"
|
|
63
|
+
- "Run Xcode 16 locally with Swift strict concurrency enabled before CI failures surface"
|
|
64
|
+
- "Add a step printing runner OS version (sw_vers) to detect unexpected runner upgrades"
|
|
65
|
+
docs:
|
|
66
|
+
- url: "https://github.blog/changelog/2024-12-02-github-actions-macos-15-is-now-generally-available/"
|
|
67
|
+
label: "GitHub Changelog: macOS 15 Generally Available (Dec 2024)"
|
|
68
|
+
- url: "https://developer.apple.com/documentation/swift/updating-an-app-to-use-strict-concurrency"
|
|
69
|
+
label: "Apple: Updating an App to Use Strict Concurrency"
|
|
70
|
+
- url: "https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md"
|
|
71
|
+
label: "macOS 15 Runner Image — Installed Software"
|
package/package.json
CHANGED