Add typed GitHub Issue wire values - #15
Conversation
coenttb
left a comment
There was a problem hiding this comment.
BLOCKED at e057c4385d74d6926fb00eca55ef1f3609155b74 (base de450191cafb3462519a9fdc82c5dc91f7f269ab).
GitHub.Issue.State.Reason declares Codable but has no single-value init(from:) or encode(to:). Swift therefore synthesizes a keyed { "rawValue": ... } representation, unlike GitHub.Issue.State's plain string wire representation. GitHub state-reason values are plain strings, so both known and forward-compatible unknown reason values cannot decode and round-trip as the required wire format.
Smallest fix: give State.Reason the same single-value Codable implementation as State, and add tests that decode and re-encode both known and unknown reason strings. The fix belongs in this PR's owning issue, #14. The unrelated orphaned client trees tracked by #13 remain out of scope.
The current SwiftLint failure is limited to the #13 orphaned-client paths and is not this finding; terminal full-tier branch CI remains a landing prerequisite after this blocker is fixed.
coenttb
left a comment
There was a problem hiding this comment.
BLOCKED at dfc72b808cc24b2dac0d6f5cc5d0558efe07fed0 (base de450191cafb3462519a9fdc82c5dc91f7f269ab).
The previous source/API blocker is resolved: GitHub.Issue.State.Reason now decodes and encodes through a single-value string container, and direct tests prove known (completed, not_planned, reopened) and forward-compatible unknown (migrated) strings decode and re-encode unchanged. I found no remaining changed-surface source or API defect.
Landing is still blocked at this exact head: the required CI aggregate and Ubuntu 6.4 nightly release check are in progress, while SwiftLint is failing only in the pre-existing orphaned repository/traffic client paths tracked by #13, outside this PR's diff. That unrelated failure is not a fix request for #14, but terminal required CI and the applicable gate disposition remain prerequisites for a clean, landable verdict.
Next owner: #14's assignee should wait for terminal CI and route the #13-owned SwiftLint gate separately; no source change is requested from this PR by this review.
coenttb
left a comment
There was a problem hiding this comment.
BLOCKED at exact head bc5b21067838ae60d9a160260411f1ae007de9de (base de450191cafb3462519a9fdc82c5dc91f7f269ab).
A fresh capped workspace package test --fresh --jobs 4 exited 1 while compiling GitHub Standard Tests. All six newly added test methods use a backticked declaration name identical to the explicit @Test("…") display name. Swift Testing rejects each as a redundant display name, so this head does not compile.
Smallest fix: remove the explicit display-name argument from each of the six @Test attributes; the descriptive backticked declaration names already supply the same implicit test names. The existing Issue-value source surface, including the single-value Codable handling for State.Reason, resolves the prior wire-format blocker; no separate production-source defect was found in this review.
No CI was dispatched and no lifecycle action was taken. Task #14 remains deferred on the known compiler gate tracked by swift-institute/Issues#94.
coenttb
left a comment
There was a problem hiding this comment.
Reviewed at exact head 9a4dd36deb78f828415a283f233a7c5364718ed6 (base de450191cafb3462519a9fdc82c5dc91f7f269ab).
The prior compile blocker is resolved: the six test declarations now rely on their descriptive backticked names and no longer redundantly repeat them as explicit @Test display names. The existing Issue value surface, including State.Reason single-value Codable behavior and known/unknown round trips, remains sound. I found no remaining changed-surface source defect.
Fresh capped workspace package test --fresh --jobs 4 passed: 23 tests across 22 suites. No CI or lifecycle action was taken: Task #14 remains separately deferred on the known compiler gate tracked by swift-institute/Issues#94.
|
Diagnosis lane of coordinator session 09363bfe: outcome for PR #15 (head Windows (Swift 6.3, debug) — confirmed 400-flake, now green. Original run 30742912862 job 91483507004 failed with no compiler/build diagnostic — the log shows normal dependency-resolution ( SwiftLint — real finding, NOT covered by the #219 exemption. 10 unique violation sites across Ubuntu (Swift main nightly, release) — real, but a toolchain defect, not our code. Job 91483507008 (and identically job 91486920717 on #17) crashes Net: both PRs are green except SwiftLint (pre-existing main drift, needs the fleet leaf-error redesign) and Ubuntu main-nightly (Swift 6.5-dev compiler crash in a dependency). Windows is confirmed flake and now passes. |
|
Triage: substantive PR (typed GitHub Issue wire values). CI at head 9a4dd36 has real failures — — peer task bookkeeping-pr-triage (coordinator session e04b89ef) |
Implements #14.
Adds the compiled
GitHub.Issuenamespace with a positiveNumber, repository-scopedKey, and forward-compatible string-backedStateandState.Reasonvalues. Focused tests cover positive validation, identity composition, known wire values, and unknown-value preservation.Verification:
workspace package test --package-path <swift-github-standard> --fresh --jobs 4completed successfully.