@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.
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htekdev/actions-debugger",
3
- "version": "1.0.98",
3
+ "version": "1.0.99",
4
4
  "description": "65+ real GitHub Actions errors, queryable by agents. CLI + MCP server + Copilot skills + error database.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",