Repository navigation
Upgrade Fable and fix validation compatibility - #66
Merged
Merged
Conversation
Upgrade Fable to 5.20.0 and Fable.Core to 5.3.0 while keeping optional runtime modules out of TypeScript root discovery. Continue checking imported runtime dependencies and first-party generated code without enabling unused Temporal support or weakening compiler checks. Restore generated AppMode factory signatures in test-only adapters, and test canonical defaults and per-entity state isolation instead of immutable union allocation. Preserve the production F# model and Koota bridge unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 742f838e-44a9-49ba-956e-f38dea314871
Delete the suppression script and its build invocation now that Fable emits correctly scoped generic interface methods. Update the pipeline self-test and development documentation while preserving compilation and bridge generation. Fresh output now passes TypeScript checking without any of the four previous file-wide suppressions. The upstream fix for fable-compiler/Fable#3586 shipped in Fable 5.5.0 through fable-compiler/Fable#4685 and fable-compiler/Fable#4686, and is included in the pinned compiler upgrade. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 742f838e-44a9-49ba-956e-f38dea314871
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Incorporates and supersedes the dependency changes in #61: Fable 5.1.0 to
5.20.0 and Fable.Core 5.0.0 to 5.3.0, together with fixes for all three validation
failure classes. This is one PR based on
main; #61 can be closed separately.Compatibility fixes
from root-file discovery. The new optional Temporal modules are unused by this
application but lack ambient types in the current TypeScript configuration.
First-party generated files remain roots, and imported runtime modules remain
type-checked. No Temporal enablement, polyfill, or TypeScript upgrade is needed.
factories' exact union-returning signatures. The
nullary union identity issue
led to the singleton implementation,
whose
any-typed static fields cause factory return-type inference to loseinformation. The helper comments link both references without claiming either
is a dedicated typing-regression issue.
than distinct immutable union identities. Exercise a real per-entity mode
update, preserve independent NodeLabel records, and verify both adapter cases
with independent boolean expectations.
The ordinary AppMode DU, production F# APIs, Koota bridge, ESLint rules, and
coverage baselines remain unchanged. Build documentation describes the current
runtime root-discovery policy.
Removing the obsolete codegen workaround
The follow-up commit removes
scripts/PatchFableModules.fsxand its pipeline andself-test references. The original
generic interface bug
is closed as completed; fixes
4685 and
4686 shipped in Fable 5.5.0.
Fresh Fable 5.20.0 output correctly scopes generic method parameters, and all
four former patch targets type-check without
@ts-nocheck. Compilation andruntime bridge generation remain in their original order.
Validation and review
default-identity test failure before the fixes.
then passed with the intended factories.
mode values, preserved first-party roots, and continued checking when an
otherwise excluded Temporal module is explicitly imported.
npm run validate "--" --cipassed on Windows/PowerShell: 231 TypeScript tests,765 .NET tests, formatting, infrastructure self-tests, lint, type-check, bundle,
and coverage ratchets. F# line/branch coverage is 98.6%/93.3%; TypeScript is
99.5%/98.9%. No baselines were changed.
Round one found one stale header comment, which was corrected; all three
reviewers returned a clean delta review in round two.
and portable ECS output. All four former patch targets contain no suppression
markers, and full CI-mode validation passed again. A separate three-model
review of that removal returned clean across all reviewers.
Ubuntu and Windows PR validation checks provide the native cross-platform gate.