Skip to content

Bump Fable.Core from 4.5.0 to 5.0.0#20

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/examples/nextfs-elmish/src/multi-960c244533
Open

Bump Fable.Core from 4.5.0 to 5.0.0#20
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/examples/nextfs-elmish/src/multi-960c244533

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 23, 2026

Updated Fable.Core from 4.5.0 to 5.0.0.

Release notes

Sourced from Fable.Core's releases.

5.0.0

Fixed

  • [Python] Fix derived classes of generic abstract classes not being instantiable due to mismatched mangled method names between abstract stubs and overrides (by @​dbrattli)
  • [Dart/Rust] Fix ResizeArray reference equality (by @​ncave)
  • [JS/TS/Python/Beam] Fix ResizeArray (System.Collections.Generic.List) equality to use reference equality instead of structural equality (fixes #​3718)
  • [Beam] Fix List.Cons call replacement and test (by @​ncave)
  • [Beam/Dart/Python/TypeScript] Fix Array.Equals to use reference equality instead of structural equality (by @​ncave)
  • [Dart/Python/TypeScript/Rust] Fix Seq.foldBack2 for sequences with different lengths (by @​ncave)
  • [All] Fix missing HashSet implementations and tests (by @​ncave)
  • [Rust] Fix Array/HashMap/HashSet internal representation (by @​ncave)
  • [Rust] Fix F# classes reference equality semantics (by @​ncave)
  • [Python] Fix missing Array module implementations and tests (by @​ncave)
  • [Python] Fix object expressions implementing interfaces with [<CLIEvent>] members no longer produce unimplementable abstract Protocol members (fixes #​3039)
  • [Python] Fix DateTime.TryParse incorrectly assigning DateTimeKind.Local to naive datetime strings (should be DateTimeKind.Unspecified) (fixes #​3654)
  • [JS/TS] Fix String.Contains ignoring StringComparison argument (second argument was silently discarded)
  • [Python] Fix String.Contains ignoring StringComparison argument (second argument was silently discarded)
  • [All] Fix --noRestore not skipping MSBuildCracker restores (by @ randrag)

5.0.0-rc.7

Added

  • [Python/Beam] Add F# quotation support — construction, pattern matching, and evaluation via LeafExpressionConverter.EvaluateQuotation (by @​dbrattli)
  • [JS/TS] Add F# quotation support — construction, pattern matching, and evaluation (by @​OnurGumus)
  • [All] Add support for Guid.CreateVersion7() and Guid.CreateVersion7(DateTimeOffset) (by @​OnurGumus)
  • [All] Add missing Array, List, and Seq random choice/shuffle/sample members and tests (by @​ncave)
  • [Dart/Rust] Add missing System.Random implementations and tests (by @​ncave)
  • [Beam] Implement missing DateTimeOffset members, add DateOnly and TimeOnly support (by @​dbrattli)

Fixed

  • [All] Fix unnecessary object allocations during AST traversal when visiting Import expressions (by Repo Assist)
  • [Beam] Fix System.Random.Next(0) implementation (by @​ncave)
  • [Python] Fix System.Random seeded implementation (by @​ncave)
  • [Beam] Fix System.Random seeded implementation to use per-instance state (by @​dbrattli)
  • [Dart] Fix Array.compareWith comparing lengths before elements, producing wrong results for arrays with common prefixes (fixes #​2961)
  • [Python] Fix unsafe option unwrapping in DateTimeOffset.get_Offset and regex replacements (by @​dbrattli)
  • [All] Replace unsafe option .Value unwrapping with safe alternatives in Python/Replacements.fs and Rust/Fable2Rust.fs (code scanning alerts IONIDE-006)
  • [All] Add [<return: Struct>] to partial active patterns in Dart and Rust targets to reduce allocations (code scanning alerts IONIDE-009)
  • [JS/TS] Fix Guid to use cryptographically strong random values (by @​ncave)
  • [Python] Fix DateTimeOffset millisecond constructor and property (by @​ncave)
  • [Python] Implement missing DateTimeOffset members and fix equality/comparison to use UTC-normalized instants (by @​dbrattli)
  • [Python] Add DateOnly and TimeOnly support (by @​dbrattli)
  • [Python] Fix String.IndexOf/LastIndexOf with StringComparison argument emitting it as a start-index instead of a compile error (by @​repo-assist)
  • [Beam] Fix String.IndexOf/LastIndexOf with StringComparison argument incorrectly treating the enum value as a start index
  • [JS/TS/Python] Fix Async.StartChild with timeout always timing out even when the computation finishes before the deadline (fixes #​4481) (by @​MangelMaxime)

5.0.0-rc.6

Fixed

  • [Dart] Enable explicit variable typing for more data types (by @​ncave)
  • [Dart] Fix tests for round, sign, truncate, log, log2, log10, pow, DivRem, Min, Max, Clamp, MinMagnitude, MaxMagnitude, cosh, sinh, tanh, and float Parse (by @​ncave)
  • [Python] Add Math.DivRem support for int, int64, and bigint (by @​dbrattli)
  • [Python] Fix modulo with negative numbers using Python floored semantics instead of .NET truncated semantics for bigint (fixes #​4462) (by @​dbrattli)
  • [Beam] Fix System.String.Concat with 4+ arguments not being supported (by @​dbrattli)
  • [TS/Python] Fix thisArg type for overloads in structs (#​4453) (by @​ncave)
  • [TS/Python] Fix invalid this argument type in structs (#​4453) (by @​ncave)
  • [JS/TS] Fix N format specifier (ToString("N0"), String.Format("{0:N0}", ...)) producing a trailing dot when precision is 0 (fix #​2582) (by @​MangelMaxime)
  • [JS/TS] Fix C0 and P0 format specifiers producing trailing dot (e.g., "¤1,000.""¤1,000") (by @​MangelMaxime)
  • [All] Fix captured side-effect-free values (e.g. empty ResizeArray) being incorrectly inlined into object expression getters in release mode, causing a new instance to be created on each getter call (fixes #​3779) (by @​MangelMaxime)
  • [Python] Fix missing await on else branch of ternary expressions in async closures (by @​dbrattli)
  • [Beam] Fix |> ignore on cross-module Emit calls generating variable bindings that shadow Emit case-clause variables (by @​dbrattli)
  • [Beam] Fix containsIdentRef not checking Call ThisArg (by @​dbrattli)
  • [All] Fix CLI color not resetting after error messages (fixes #​3755) (by @​MangelMaxime)
  • [JS/TS] StringEnum now respect CompiledValue and CompiledName (by @​shayanhabibi)
  • [JS/TS] Fix invalid syntax emitted when negating negative literals (fix #​4251) (by @​MangelMaxime)
  • [Rust] Fix negative counting in CallInfo.GenericArgs (by @​ncave)
  • [Rust] Fix inline bindings and captured idents tracking (by @​ncave)
  • [Rust] Fix return! in async computation expressions so inner async workflows are returned and awaited correctly (by @​mizzle-mo)
  • [JS/TS] Improve Regex.Escape and Regex.Unescape handling (by @​MangelMaxime)
  • [All] Fix allow plugins to target .NET6 target framework (by @​MangelMaxime)
  • [Python] Fix function references passed as arguments inside tail-call optimised functions gaining unnecessary default parameters for outer TCO variables they don't reference (fix #​3877)
  • [TS] Fix abstract instance methods not emitted in TypeScript when class uses [<AttachMembers>] (fixes #​3506) (by @​MangelMaxime)
  • [JS/TS] Fix Unchecked.defaultof<'T> for struct types with fields returning undefined instead of zero-initialized values (by @​MangelMaxime)
  • [JS/TS] Fixed quotation for union string cases (by @​MangelMaxime)
  • [Python] Fix Unchecked.defaultof<'T> for struct types with fields returning incorrect values instead of zero-initialized instances (by @​MangelMaxime)
  • [Python] Fix Unchecked.defaultof<char> returning "" (empty string) instead of "\u0000" (null character) (by @​MangelMaxime)
  • [Python] Improve Unchecked.defaultof<_> for declared entities (by @​MangelMaxime)

5.0.0-rc.5

Added

[All] Add support for [<InlineIfLambda>] (by @​MangelMaxime)

5.0.0-rc.4

Fixed

  • [JS/TS] Fix Array.zeroCreate producing null for user-defined struct (value type) elements instead of a default-initialized instance (by @​MangelMaxime)
  • [All] Fix interpolated string holes missing format specifiers in State.fs and Python/Replacements.fs (code scanning alerts 1144, 1145, 1512)
  • [Rust] Replace unsafe .IsSome && .Value option pattern with Option.exists in Fable2Rust.fs (code scanning alert 1125)
  • [JS/TS] Fix Unchecked.defaultof<char> being emitted as null instead of '\0' (by @​MangelMaxime)
  • [JS/TS] Fix static val mutable fields declared with [<DefaultValue>] not being zero-initialized (fix #​2739) (by @​MangelMaxime)
  • [JS/TS/Python] Fix record/struct types augmented with static let or static member val generating extra constructor parameters for each static field, causing constructor arguments to be assigned to wrong slots (by @​MangelMaxime)
  • [TS] Annotate System.Collections.Generic.IList<T> as MutableArray<T> (by @​MangelMaxime)
  • [JS/TS] Fix ResizeArray index getter/setter not throwing IndexOutOfRangeException when index is out of bounds (fix #​3812) (by @​MangelMaxime)
  • [Beam] Fix unused term warning in try/catch when exception variable is not referenced (by @​dbrattli)
  • [Beam] Fix "no effect" warning for pure BIF calls (self/0, node/0) in non-final block positions (by @​dbrattli)
  • [Beam] Fix reraise() generating unbound MatchValue variable — use raw Erlang reason variable for re-throw (by @​dbrattli)
  • [Beam] Fix Erlang.receive<'T>() resolving to timeout overload due to F# unit argument (by @​dbrattli)
  • [JS/TS] Generate comments for members in class decorated with [<AttachMembers>] (by @​MangelMaxime)
  • [Beam] Fix [<ImportAll>] generating invalid module:*() Erlang code when binding is used as a value (by @​dbrattli)
  • [Beam] Fix string slicing and Substring with compound expressions producing wrong binary:part length due to missing parentheses in emitted Erlang (by @​dbrattli)
  • [Beam] Fix non-ASCII characters in string literals being truncated to single bytes — emit <<"..."/utf8>> instead of <<"...">> (by @​dbrattli)
  • [Beam] Fix Emit expressions with case leaking variables into surrounding scope — auto-wrap in IIFE for scope isolation (by @​dbrattli)

5.0.0-rc.3

Added

  • [Beam] Auto-generate rebar3 scaffold (rebar.config, .app.src) after compilation; .erl files now placed in src/ subdirectories (by @​dbrattli)
  • [Beam] Support [<ImportAll>] + [<Erase>] interface pattern for typed FFI bindings (by @​dbrattli)

Fixed

  • [Beam] Fix dropped top-level side effects — multiple ActionDeclaration main/0 functions are now merged (by @​dbrattli)
  • [Beam] Fix %% escape in string interpolation producing double % instead of single (by @​dbrattli)
  • [Beam] Fix double-quoted atoms for uppercase CompiledName on DU cases (e.g. ''EXIT'''EXIT') (by @​dbrattli)
  • [Beam] Fix cross-project imports producing self-recursive calls when source files share the same name (by @​dbrattli)
  • [Beam] Support Type.GetGenericArguments and Type.GetInterface for reflection (by @​dbrattli)
  • [TS] Correctly resolve type references for TypeScriptTaggedUnion (by @​MangelMaxime and @​jrwone0)
  • [TS] Expose optional stack property on Exception (by @​MangelMaxime)
  • [Python] Fix nonlocal/global declarations generated inside match/case bodies causing SyntaxError (by @​dbrattli)
  • [Python] Fix exception variable captured in deferred closures causing NameError (PEP 3110 scoping) (by @​dbrattli)
  • [JS/TS] Support format specifiers and single hole in JSX string templates (by @​MangelMaxime)
  • [All] Fix generic parameter resolution in inline functions with static member constraints (by @​Programmerino and @​MangelMaxime)

5.0.0-rc.2

Added

  • [Beam] Add arithmetic tests and support for DivRem, MinMagnitude, MaxMagnitude, Decimal rounding, BigInt.Log (by @​dbrattli)
  • [Beam] Add fable_random.erl and fix Random seeded/NextBytes tests (by @​dbrattli)

Fixed

  • [Python] Fix __hash__ to return native int instead of int32 for Python 3.14 compatibility (by @​dbrattli)
  • [Python] Fix PyPI publish workflow version pattern to support rc tags (by @​dbrattli)
  • [Beam] Bundle fable-library-beam in NuGet package so dotnet fable --lang beam works (by @​dbrattli)
  • [Beam] Fix optional arguments by unwrapping at call sites and padding missing trailing args (by @​dbrattli)
  • [Beam] Fix generic constraint interface dispatch (by @​dbrattli)
  • [Beam] Fix class constructor field invokes and explicit val fields (by @​dbrattli)
  • [Beam] Fix mutable record field mutation (by @​dbrattli)
  • [JS/TS] Allows compiling fable-library-ts for Browser environment (by @​goswinr)

5.0.0-rc.1

Added

  • [Beam] Add Erlang/BEAM target (--lang beam). Compiles F# to .erl source files. 2086 tests passing. (by @​dbrattli)

Fixed

  • [Python] Fix type var scoping for PEP 695 annotations: emit Any for type vars outside function scope and prevent non-repeated generic params from leaking into ScopedTypeParams (by @​dbrattli)
  • [JS/TS] Ignore extra args in FSharpType functions (by @​olivercoad)

5.0.0-alpha.24

Fixed

  • [Python] Fix Array.length, .Length, Array.isEmpty, and ResizeArray.Count to use len() instead of .length property for plain Python list interop (by @​dbrattli)
  • [Python] Fix Task<T> pass-through returns not being awaited in if/else and try/with branches (by @​dbrattli)
  • [Python] Fix :? T as x type test pattern in closures causing UnboundLocalError due to cast() shadowing outer variable (by @​dbrattli)
  • [All] Prevent Fable from freezing when running a sub-process via --run (fix #​3631) (by @​MangelMaxime)
  • [All] Improve console width detection when rewritting console output (by @​MangelMaxime)

5.0.0-alpha.23

Changed

  • [Python] Changed DU representation to use separate classes for each case (by @​dbrattli)
  • [Python] Fable will no longer auto-generate __str__ or __hash__ for custom types. Use the Py.Stringable and Py.Hashable marker interfaces to generate these methods (by @​dbrattli)

Added

  • [Python] Added ABC base classes for F# types and Py marker interfaces for Python interop (by @​dbrattli)
  • [Python] Add tuple pattern matching with guards and improve match statement generation (by @​dbrattli)
  • [Python] Add Python 3.10+ match statement support for pattern matching (by @​dbrattli)

Fixed

  • [Python] Fix curry/uncurry to handle arbitrary number of arguments (by @​dbrattli)
  • [Python] Fix type annotations for protocols, Option casting, and abstract classes (by @​dbrattli)
  • [Python] Fix type annotations for curried functions and numeric types (by @​dbrattli)
  • [Python] Fix type annotations for inref, IList, DateKind, and regex collections (by @​dbrattli)
  • [Python] Fix type annotations for protocols, ABCs, Atom, and Set module (by @​dbrattli)
  • [Python] Fix type annotations for async functions, date operations, and None handling (by @​dbrattli)
  • [Python] Fix type annotations for tuple indexing, generic defaults, and reflection (by @​dbrattli)
  • [All] Fix StringBuilder.Chars getter and setter (by @​MangelMaxime)

Removed

  • [All] Remove --legacyCracker flag, MSBuild cracker is now the default and the only cracker supported (by @​MangelMaxime)

5.0.0-alpha.22

Fixed

  • [Python] Use Fable AST for type parameter extraction instead of Python AST heuristics (by @​dbrattli)
  • [Python] Fix library type stubs for parse_int32/64 and from_integer (by @​dbrattli)
  • [Python] Fix missing type parameters on generic methods (by @​dbrattli)
  • [JS/TS] Fix #​4305 DateTimeOffset.Now returns wrong time (by @​ncave)

5.0.0-alpha.21

Added

  • [Python] Support catching Python BaseException subclasses (KeyboardInterrupt, SystemExit, GeneratorExit) for Python interop (by @​dbrattli)

Changed

  • [Python] F# task { } expressions now generate Python async def functions (by @​dbrattli)
  • [Python] Generate idiomatic except clauses for typed exception patterns (by @​dbrattli)

Fixed

  • [Python] Fix ResizeArray compatibility with Seq/Array functions (by @​dbrattli)
  • [Python] Fix FSharpList generic type parameter handling for IEnumerable_1 compatibility (by @​dbrattli)

5.0.0-alpha.20

Added

  • [Python] Add Array.skipWhile support (by @​dbrattli)
  • [Python] Add Array.takeWhile support (by @​dbrattli)
  • [Python] Allow IEnumerator_1 as base class to fix typing issues (by @​dbrattli)
  • [Python] Add Pythonic import path syntax for relative imports (.module, ..parent, ...grandparent) (by @​dbrattli)
  • [Python] Add [<Py.DecorateTemplate>] attribute for creating custom decorator attributes (by @​dbrattli)
  • [Python] Add [<Py.ClassAttributesTemplate>] attribute for creating custom class attribute shortcuts (by @​dbrattli)
  • [Python] Add [<Py.DataClass>] as a built-in shorthand for [<Py.ClassAttributes(style = Attributes, init = false)>] (by @​dbrattli)

Fixed

  • [Python] Fix String.Concat spread operator issue in Python transpilation (by @​dbrattli)
  • [Python] Fix regression [<Erase>] on class types not preventing them from being emitted to Python (by @​dbrattli)
  • [Python] Fix regression %A format specifier to output booleans as lowercase true/false (by @​dbrattli)
  • [Python] Fix various bugs in fable-library numeric types and string operations (by @​dbrattli)

Changed

  • [Python] [<Py.Decorate>] now emits decorator strings verbatim and adds importFrom parameter for explicit import control (by @​dbrattli)

5.0.0-alpha.19

Fixed

  • [Python] Fix printf.cont() not applying continuation function when currying (by @​dbrattli)

Added

  • [Python] Add support for [<Py.Decorate>] attribute on methods (previously only worked on classes)
  • [Python] Add new [<Py.ClassMethod>] attribute to emit @​classmethod instead of @​staticmethod
  • [Python] Added support for Pydantic serialization of core numeric and array types (by @​dbrattli)

5.0.0-alpha.18

Fixed

  • [Python] Fix record member method naming (by @​dbrattli)
  • [Python] Fix regression, named arguments not being converted to snake_case (by @​dbrattli)
  • [Python] Fix regression, erased interfaces should not generate code (#​4277) (by @​dbrattli)

Changed

  • [Rust] Update fable-library-rust dependencies (by @​ncave)
  • [All] Update TargetFramework to net10.0 (by @​ncave)
  • [All] Update FCS to latest (commit cfda5f6) (by @​ncave)

5.0.0-alpha.17

Changed

  • [Python] fable-library for Python is now distributed via PyPI instead of being bundled in the NuGet package (by @​dbrattli)

5.0.0-alpha.16

Fixed

  • [All] Fix --cwd with quoted paths (by @​MangelMaxime)
  • [All] Fix --legacyCracker flag logic (by @​MangelMaxime)
  • [All] Fix BuildalyzerCracker so it can work on .NET 10 (by @​MangelMaxime)

Changed

  • [All] Invoke MSBuild from Fable current working directory (by @​cr3wdayt5p)

5.0.0-alpha.15

Added

  • [TS] Added support for erasableSyntaxOnly in TypeScript (by @​ncave)
  • [All] Added some default System exception implementations (by @​ncave)
  • [All] Added ofOption/toOption/ofValueOption/toValueOption (by @​ncave)
  • [Python] Added Decorate attribute to add Python decorators to classes (by @​dbrattli)
  • [Python] Added ClassAttributes attribute to control Python class generation (@​dbrattli)
  • [Python] Added support for Python 3.14 (by @​dbrattli)

Changed

  • [JS/TS] Replace the deprecated substr method with slice (by @​Thorium)

Fixed

  • [TS] Fix ObjectExpr tests with multiple interfaces (by @​ncave)
  • [TS] Fix ObjectExpr abstract base constructor type (by @​ncave)
  • [JS/TS] Fix #​4240 Missing DateTime constructor (by @​ncave)
  • [PHP] Fix php import extensions (by @​MangelMaxime)
  • [TS] Fix #​3973 Typescript imports file extension (by @​ncave)
  • [TS] Fix support for abstract classes and members (by @​ncave)
  • [TS] Fix getters, setters, indexers in interfaces (by @​ncave)
  • [TS] Enable typedArrays flag usage for TypeScript (by @​ncave)
  • [All] Fix #​4221 Fable.Type union case arg names (by @​ncave)
  • [All] Erase Nullable Reference Types to inner type (by @​ncave)
  • [Python] Improve Python (e.g. Pydantic) interop (by @​dbrattli)
  • [JS/TS] Fix comparers for non-nullable types (by @​ncave)
  • [Rust] Fix curried object expression getters (by @​ncave)
  • [Rust] Fix compiler-generated generic args (by @​ncave)
  • [All] Fixed #​4041 missing unit argument (by @​ncave)
  • [JS/TS/Python] Fixed eq comparer mangling (by @​ncave)
  • [All] Fix all BitConverter return types (by @​ncave)
  • [TS] Don't cast union case types to any (by @​ncave)
  • [JS/TS] Fix Dictionary.ICollection.Remove (by @​ncave)
  • [TS/Dart] Fixed optional parameter types (by @​ncave)
  • [TS] Initialize un-initialized variables (by @​ncave)
  • [JS/TS] Replace Error with Exception (by @​ncave)
  • [All] Fix MSBuildResolver to include define when restoring the project (by @​MangelMaxime)

5.0.0-alpha.14

Added

  • [Python] Support for Nullable Reference Types (by @​dbrattli)
  • [JS/TS] Fix #​3533: Add directives prologues supports (by @​MangelMaxime)
  • [JS/TS] Support for Nullable Reference Types (by @​ncave and @​MangelMaxime)
  • [Rust] Initial support for Nullable Reference Types (by @​ncave)

Changed

  • [Python] Use Python 3.12 type parameter syntax. Deprecate Python 3.10 and 3.11 (by @​dbrattli)
  • [Python] Records now snake-cases all member fields (by @​dbrattli)
  • [Python] Anonymous records now preserves the casing of member fields (by @​dbrattli)
  • [Python] Option type is now Option[T] instead of T | None (by @​dbrattli)
  • [Python] Use uv instead of Poetry for package management (by @​dbrattli)
  • [Python] Fable Library for Python is now partially written in Rust (by @​dbrattli)
  • [All] Improve filewatcher error messages (by @​goswinr)

Fixed

  • [Python] Fixed static properties and are now translated as Python class attributes (by @​dbrattli)
  • [Python] Fixed DateTime with DateTimeKind generates proper enum reference (#​3689) (by @​dbrattli)
  • [Python] Fixed Dictionary KeyValuePair enumeration when casting to IEnumerable (#​3771) (by @​dbrattli)
  • [Python] Fixed createEmpty<T> for interfaces using SimpleNamespace with type casting (#​3604) (by @​dbrattli)
  • [Python] Fixed EmitMethod + ParamObject losing keyword arguments (#​3871) (by @​dbrattli)
  • [Python] Fixed EmitConstructor + ParamObject losing keyword arguments (#​3871) (by @​dbrattli)
  • [Python] Fixed DateTimeOffset.TryParse, ToString() and Offset property access (#​3854) (by @​dbrattli)
  • [Python] Fixed anonymous records in Maps causing comparison errors (#​3869) (by @​dbrattli)
  • [Python] Fixed handling of erased types for Python (#​3968) (by @​dbrattli)
  • [Python] Fixed unit function (zero arguments functions) are transpiled inconsistently (#​4126) (by @​dbrattli)
  • [Python] Fixed resource managers with empty body (#​3912) (by @​dbrattli)
  • [Python] Fixed Async.Sleepto handle TimeSpan correctly (#​4137) (by @​dbrattli)
  • [Python] Make sure snake-cased Record do not conflict (by @​dbrattli)
  • [Python] Do not return None | None for optional unit types (#​4127) (by @​dbrattli)
  • [JS/TS] JSX : Alias empty CEs list to null when encountered in the children list (by @​MangelMaxime)
  • [JS/TS] JSX : Allow usage of unbox when definining properties for JSX.create (by @​MangelMaxime)

5.0.0-alpha.13

Fixed

  • [Python] Fixed testing with interfaces leads to incorrect pattern match (#​3972) (by @​dbrattli)
  • [Python] Fixed error when type contains multiple generic type parameters (#​3986) (by @​dbrattli)
  • [Python] Fixed import path handling for libraries (#​4088) (by @​dbrattli)
  • [Python] Reenable type aliasing for imports with name "*" (by @​Freymaurer)
  • [JS/TS] Optimise JSX output in order to avoid F# list CEs to surface in it (by @​MangelMaxime)

Removed

  • [All] Remove unused Fable.Core copy types from internal module (by @​MangelMaxime)

5.0.0-alpha.12

Added

  • [Python] Add support for nullArgCheck(by @​MangelMaxime)
  • [All] Add support for F# nullness (by @​MangelMaxime)
  • [JS/TS] Add support for Unchecked.nonNull (by @​MangelMaxime)
  • [All] Add support for TreatWarningsAsErrors (by @​MangelMaxime)
  • [All] Print help message on unexpected arguments (by @​MangelMaxime)

Fixed

  • [JS/TS] Make nullArgCheck report the same error message as on .NET (by @​MangelMaxime)
  • [TS] Sanitize DUs case names when generating constructor function (by @​MangelMaxime)
  • [All] Don't print help message on failed compilation (by @​MangelMaxime)
  • [JS] Don't generate an import statement for pojos defined in another file (by @​shayanhabibi)

5.0.0-alpha.11

Added

  • [JS/TS] Add support for CaseRules.LowerAll on StringEnums (by @​shayanhabibi)
  • [Rust] Support Rust 2024 language edition (by @​ncave)
  • [JS/TS] Add C and c format for numeric types (by @​MangelMaxime)
  • [JS/TS] Add B and b format for numeric types (by @​MangelMaxime)
  • [JS/TS] Add n format for numeric types (by @​MangelMaxime)
  • [JS/TS] Generate compiler error when detecting an invalid/unsupported format specifier for numeric types (by @​MangelMaxime)

Fixed

  • [JS/TS] Fix #​4025: No reflection info for pojos (by @​alfonsogarciacaro)

  • [JS/TS] Fix #​4049: decimal/bigint to integer conversion checks (by @​ncave)

  • [JS/TS] Fix decimal to char conversion checks (by @​ManngelMaxime)

  • [JS/TS] Propagate non-captured exception when running Async.Start or Async.StartImmediate (by @​MangelMaxime)

  • [JS/TS] Report an error at compilation time when trying to use Async.RunSynchronously (by @​MangelMaxime)

  • [JS/TS] Fix short DateTime and DateTimeOffset short format strings (by @​MangelMaxime)

  • [All] Don't scan system packages for plugins (by @​MangelMaxime)

  • [JS/TS] Fix date formatting when repeating a format token more than the known format (example repeating 'd' more than 4 times) (by @​MangelMaxime)

  • [Python] Fix date formatting when repeating a format token more than the known format (example repeating 'd' more than 4 times) (by @​MangelMaxime)

  • [JS/TS] Fix #​4010: Supports direct nested types when using jsOptions (by @​MangelMaxime)

    let opts =
        jsOptions<Level1> (fun o ->
            o.level2.level3.valueA <- 10
            o.level2.level3.valueB <- 20
            o.topValueA <- 20
        )
  • [JS/TS] Fix numeric formats (by @​MangelMaxime)

Changed

  • [JS/TS] Throw an error is an invalid Numeric format is provided (mimic .NET behavior) (by @​MangelMaxime)

5.0.0-alpha.10

Added

  • [Python] - Print root module and module function comments (by @​alfonsogarciacaro)
  • [Rust] Add support for module comments (by @​ncave)
  • [Rust] Add support for null strings (by @​ncave)
  • [TS/JS] Pojo attribute support (by @​alfonsogarciacaro)

Fixed

  • [JS/TS] - Fix anonymous record printing (#​4029) (by @​alfonsogarciacaro)
  • [Python] - Fix #​3998: PhysicalEquality (by @​alfonsogarciacaro)
  • [Python] Resolve relative paths for non-qualified imports (#​3481) (by @​alfonsogarciacaro)
  • [Python] importSideEffects shouldn't generate identifier (#​3965) (by @​alfonsogarciacaro)
  • [JS/TS] Fix #​4031: Hoist vars locally in for and while loops (@​alfonsogarciacaro)

5.0.0-alpha.9

Fixed

  • [All] Add --realsig+ to fix Method not found: 'Boolean Fable.CompilerOptions.Equals (by @​nojaf)

5.0.0-alpha.8

Added

  • [TS] Include XML Doc comment on interface properties (by @​Freymaurer)
  • [TS] Generate interface type when using the "ParamObject" class pattern (by @​MangelMaxime)
  • [Rust] - Initial support for null values (by @​ncave)

5.0.0-alpha.7

Fixed

  • [All] Disable .NET Welcome message when cracking project (#​4014) (by @​MangelMaxime)

5.0.0-alpha.6

Added

  • [All] Add StringBuiler.Append(c: char, repeatCount: int) overload (by @​roboz0r)
  • [All] Added primitive types equality and comparison (by @​ncave)
  • [All] Updated FCS to latest F# 9.0 (by @​ncave)
  • [All] Updated Fable-FCS to latest F# 9.0 (by @​ncave)
  • [All] Updated metadata to latest .NET 9.0 (by @​ncave)
  • [All] Updated FCS type constraints (by @​ncave)

Fixed

  • [Py] Add missing unicode categories in python library (by @​joprice)
  • [All] Log JSON output if we fail to parse MSBuild result (by @​MangelMaxime)

5.0.0-alpha.5

Added

  • [JS/TS/Python] Add new TimeSpan overloads support coming from .NET 9.0 (by @​MangelMaxime)
  • [Rust] Add new TimeSpan overloads support coming from .NET 9.0 (by @​ncave)

Fixed

  • [JS/TS] Fix DateTimeOffset.ToLocalTime (by @​MangelMaxime)
  • [All] Don't fails silently if an unknown argument is provided, instead log the error and print the help message (by @​MangelMaxime)

5.0.0-alpha.4

Fixed

  • [TS] Make discriminated union .Is* properties works (@​MangelMaxime)
  • [JS/TS/Python] Fix h in DateTime.ToString (@​MangelMaxime)
  • [JS/TS] Fix hh in DateTime.ToString (@​MangelMaxime)
  • [JS/TS] Don't generate the setter code if a property is decorated with [<Erase>] (@​MangelMaxime)

5.0.0-alpha.3

Fixed

  • [Python] Fix type testing against uint8, uint32, uint64, decimal (@​MangelMaxime)
  • [JS/TS] Workaround source map generation bug (deteriorate them a little) (@​MangelMaxime)

5.0.0-alpha.2

Fixed

  • [All] Allow Fable 5 to be used with Fable 4 plugins (@​ncave)

5.0.0-alpha.1

Added

  • [All] Add --legacyCracker as a fallback

Changed

  • [All] Make MSBuildCracker the default
  • [All] Replace FABLE_COMPILER_4 with FABLE_COMPILER_5 as the compiler directive
  • [All] Move TargetFramework to net8.0

4.29.0

Fixed

  • [All] Prevent Fable from freezing when running a sub-process via --run (fix #​3631) (by @​MangelMaxime)
  • [All] Improve console width detection when rewritting console output (by @​MangelMaxime)

4.28.0

Fixed

  • [All] Fix BuildalyzerCracker so it can work on .NET 10 (by @​MangelMaxime)
  • [All] Fix --cwd with quoted paths (by @​MangelMaxime)

4.26.0

Changed

  • [All] Fix #​4176: Move TargetFramework to net8.0 (@​ncave)

4.25.0

Fixed

  • [JS/TS] Propagate non-captured exception when running Async.Start or Async.StartImmediate (by @​MangelMaxime)
  • [JS/TS] Report an error at compilation time when trying to use Async.RunSynchronously (by @​MangelMaxime)

4.24.0

Added

  • [JS/TS] Added missing ResizeArray.CopyTo replacements (by @​ncave)
  • [JS/TS] Added missing Dictionary constructors from enumerable (by @​ncave)

Fixed

  • [Rust] Fixed import path rewrite (by @​ncave)
  • [Rust] Updated derived interfaces (by @​ncave)
  • [Rust] Updated string comparisons (by @​ncave)
  • [Rust] Fixed derived traits mapping (by @​ncave)
  • [JS/TS] Added missing ICollection helpers (#​3914) (by @​ncave)
  • [JS/TS] Added missing IReadOnlyCollection helpers (by @​ncave)

4.23.0

Added

  • [Rust] Added basic class inheritance support (by @​ncave)
  • [Rust] Added String.Replace(char, char) and test (by @​ncave)
  • [Rust] Support type extensions for external types (by @​ncave)
  • [Rust] Support more System.Array methods and tests (by @​ncave)
  • [Rust] Added decision tree multiple target references (by @​ncave)
  • [Rust] Added Char surrogate tests for completeness (by @​ncave)
  • [JS] Add System.String.Normalize support (by @​DashieTM)
  • [JS] Allow [<Erase>] to work on members (by @​MangelMaxime)

Fixed

  • [Rust] Updated derived traits mapping (by @​ncave)
  • [Rust] Updated some collections equality (by @​ncave)
  • [Rust] Fixed try finally handler order of execution (by @​ncave)
  • [JS/TS/Python/Rust] Fixed String.StartsWith/EndsWith (#​3934) (by @​ncave)
  • [All/Rust] Removed Regex.Replace from hot paths (by @​ncave)
  • [JS] Fix regression, generate let variable when using import on a private mutable variable (by @​MangelMaxime)
  • [TS] Prevent generics to be duplicated (by @​MangelMaxime)
  • [TS] Fix interface generation when decorated with Mangle (by @​MangelMaxime)

4.22.0

Added

  • [Rust] Added support for Dictionary/HashSet comparers (by @​ncave)
  • [Rust] Updated support for interface object expressions (by @​ncave)
  • [Rust] Added missing ResizeArray methods and tests (by @​ncave)
  • [Rust] Added Async.Sleep and test (by @​ncave)

Fixed

  • GH-3900 [Python] Fix nuget packages with hypens in their names (by @​MangelMaxime)
  • [Rust] Uncurry field types for object expressions (by @​ncave)
  • [Rust] Fixed pattern matching on this argument (by @​ncave)
  • [All] Fixed Missing DU member with interface (#​3915) (by @​ncave)
  • [TS] Fixed missing Async type signature (#​3864) (by @​MangelMaxime)

4.21.0

Added

  • [JS/TS] Add support for OrdinalIgnoreCase overload for String.EndsWith (#​3892) (by @​goswinr)
  • [JS/TS] Add uri.Port, uri.IsDefaultPort (by @​MangelMaxime)

Changed

  • [Python] Remove $ sign when reporting an error from assert_equal and assert_not_equal (#​3878) (by @​joprice)
  • [All] Don't hide original error when failing to scan an assembly for plugin (#​3896) (by @​MangelMaxime)

Fixed

  • [JS/TS] Fix escaping of { and } in FormattableString (#​3890) (by @​roboz0r)
  • [JS/TS] Fix uri.Host to return the host name without the port (by @​MangelMaxime)
  • [JS/TS] Fix TypeScript compilation by resolving type of jsOptions (#​3894) (by @​ManngelMaxime)

4.20.0

Added

  • [Rust] Added support for static interface calls (by @​ncave)

Fixed

  • [All] Fixed passing delegates with unit args (#​3862) (by @​ncave)
  • [JS/TS] Fixed Decimal comparisons (#​3884) (by @​ncave)
  • [Rust] Fixed return type for byref body (by @​ncave)

4.19.3

Fixed

  • [JS/TS] Fixed unwrapping optional arguments (#​3847) (by @​ncave)

4.19.2

Fixed

  • [JS/TS] Fixed BigInt.ToDecimal with negative values (#​3500) (by @​ncave)

4.19.1

Fixed

  • [All] Ignore testers for erased union cases (#​3658) (by @​ncave)
  • [All] Fixed Fable compiler hanging on some errors (#​3842) (by @​ncave)
  • [JS/TS] Fixed DateTime.MinValue, DateTime.MaxValue (#​3836) (by @​ncave)
  • [JS/TS] Fixed missing field using TypeScriptTaggedUnion (#​3837) (by @​ncave)

4.19.0

Fixed

  • [TS] Fixed interface indexers (#​3830) (by @​ncave)
  • GH-3835 [All] Use case insensitive comparison when searching for dependencies between fable packages (by @​ThisFunctionalTom)

4.18.0

Fixed

  • GH-3817 [All] Fix broken --precompiledLib switch (#​3818) (by @​DunetsNM)
  • [JS/TS] Fixed TimeSpan.FromMilliseconds (#​3815) (by @​ncave)
  • [Python] Fixed quotation for union string cases (by @​dbrattli)
  • [Python] Fixed casing issues with identifiers and reflection info (#​3811) (by @​dbrattli)
  • [JS/TS/Python] Fixed interface static members (#​3566) (by @​ncave)

4.17.0

Added

  • [Rust] Added support for XmlDoc comments (by @​ncave)
  • [Rust] Support captures in object expressions (by @​ncave)
  • [Rust] Added type extensions support (by @​ncave)
  • [Rust] Added Char implementation module (by @​ncave)

Fixed

  • [Python] Fixes for custom hash values (#​3796) (by @​dbrattli)
  • [Python] Fix for import of camelCased class (#​3808) (by @​dbrattli)
  • [JS/TS] Fixed optional args for reflection (by @​ncave)
  • [JS/TS] Fixed type visibility when parent is namespace (by @​ncave)
  • [JS/TS] Fixed DateTimeOffset.ToString with custom format (by @​ncave)
  • [Rust] Fixed property get on constrained generic types (by @​ncave)
  • [Rust] Fixed module member imports (by @​ncave)

4.16.0

Added

  • [JS/TS] Add ConditionalWeakTable (by @​chkn)

4.15.0

Fixed

  • [JS/TS] Fixed DateTime.Add for DateTimeKind.Unspecified (by @​ncave)
  • [Rust] Fixed deprecated NaiveDateTime usage in DateTime (by @​ncave)
  • [Rust] Fixed generic interface implementation types (by @​ncave)
  • [Rust] Fixed Dictionary constructor from IEnumerable (by @​ncave)
  • [Rust] Fixed Seq.cast support for arrays and lists (by @​ncave)
  • [JS/TS] Boolean.tryParse should not crash on null string (@​goswinr)

Added

  • [Rust] Added some boxing support (by @​ncave)

4.14.0

Changed

  • GH-3772 [JS/TS] Split replacement for DateTime and DateTimeOffset (by @​MangelMaxime)

Fixed

  • GH-3769 [All] Local plugin build does not run indefinably. (by @​nojaf)
  • GH-3769 [JS/TS] Types hidden by signature files should not be exported. (by @​nojaf)
  • GH-3772 [JS/TS] Re-implement DateTime.ToString custom format handling (by @​MangelMaxime)
    It now supports all custom format specifiers, and behave as if CultureInfo.InvariantCulture was used (Fable does not support Globalization).
  • GH-3772 [JS/TS] Make compilation fails if calling DateTime constructor with microseconds (by @​MangelMaxime)
    JavaScript Date does not support microseconds, we need to wait for Temporal to be widely supported before reconsidering this.
  • GH-3773 [Python] Fix DateTime custom format fffffff and FFFFFFF (by @​MangelMaxime)

4.13.0

Added

JavaScript

  • GH-3759 Add StringBuilder.Chars (by @​MangelMaxime)
  • Added range overload for String.ToCharArray (by @​ncave)

Rust

  • GH-3761 Added StringBuilder.Chars, StringBuilder.Remove and tests. (by @​ncave)

Dart

  • GH-3761 Added StringBuilder support and tests. (by @​ncave)

Changed

JavaScript

  • GH-3761 Updated StringBuilder to remove allocations where possible. (by @​ncave)

Python

  • GH-3761 Updated StringBuilder to remove allocations where possible. (by @​ncave)

Fixed

JavaScript

  • GH-3748 Accessing an array out of bounds should emit an exception (by @​MangelMaxime)
  • GH-3748 Setting an array out of bounds should emit an exception (by @​MangelMaxime)
  • GH-3761 Fixed incorrect StringBuilder.Remove implementation. (by @​ncave)

Python

  • GH-3761 Fixed incorrect StringBuilder.Remove implementation. (by @​ncave)

4.12.2

Changed

  • Update to Fable.AST 4.4.0

4.12.1

Fixed

JavaScript

  • Embed fable-library-js in Fable DLL (by @​MangelMaxime)

4.12.0

Added

All

  • GH-3733 GH-3727 Add support for more Result API (by @​zprobinson)
    • Result.isOk
    • Result.isError
    • Result.Contains
    • Result.Count
    • Result.DefaultValue
    • Result.DefaultWith
    • Result.Exists
    • Result.Fold
    • Result.FoldBack
    • Result.ForAll
    • Result.Iterate
    • Result.ToArray
    • Result.ToList
    • Result.ToOption
  • GH-3721 Add --test:MSBuildCracker flag allowing to use the experimental MSBuildCracker (by @​nojaf)

JavaScript

  • GH-3745 Add support for ListCollector (by @​nojaf)
    • instance.Add
    • instance.AddMany
    • instance.AddManyAndClose
    • instance.Close

Changed

JavaScript

  • GH-3749 Rename fable-library to fable-library-js (by @​MangelMaxime)

Removed

JavaScript

  • Remove Choice.d.ts from source code of fable-library (by @​MangelMaxime)

TypeScript

  • Remove Choice.d.ts from source code of fable-library (by @​MangelMaxime)

Fixed

... (truncated)

4.11.0

Changed

All

  • GH-3719 Restore dependencies against the .fsproj after evaluating the fable-temp.csproj file (Improves IDE supports) (by @​MangelMaxime)
  • Don't delete fable_modules when re-evaluating the project file after a changes has been detected (Improves HMR experience) (by @​MangelMaxime)

Fixed

All

  • GH-3723 Fix logger initialisation to allow --version to work (by @​MangelMaxime)

JavaScript

  • GH-3716 System.Array.Resize: also handle the case where the array is null (by @​chkn)

4.10.0

Added

Python

  • GH-3663 Complete rewrite of DateTime supports (by @​MangelMaxime)
    Special thanks to @​dbrattli and @​ncave for their help

    • Constructors
      • From (year, month, day) up to (year, month, day, hour, minute, second, millisecond, microsecond) (with and without DateTimeKind)
      • From ticks (with and without DateTimeKind)
    • Instance methods:
      • dt.Year
      • dt.Month
      • dt.Day
      • dt.Hour
      • dt.Minute
      • dt.Second
      • dt.Millisecond
      • dt.Microsecond
      • dt.ToUniversalTime
      • dt.DayOfWeek
      • dt.DayOfYear
      • dt.ToShortDateString
      • dt.ToShortTimeString
      • dt.ToLongDateString
      • dt.ToLongTimeString
      • dt.ToString
      • dt.ToLocalTime
      • dt.Date
      • dt.AddYears
      • dt.AddMonths
      • dt.AddDays
      • dt.AddHours
      • dt.AddMinutes
      • dt.AddSeconds
      • dt.AddMilliseconds
      • dt.AddMicroseconds
      • dt.Kind
    • Static methods:
      • DateTime.Today
      • DateTime.Now
      • DateTime.Now
      • DateTime.UtcNow
      • DateTime.MinValue
      • DateTime.MaxValue
      • DateTime.Parse
      • DateTime.TryParse
      • DateTime.SpecifyKind

... (truncated)

4.9.0

Fixed

Python

  • GH-3655 Fix for Python output file names (by @​dbrattli)
  • GH-3660 Fix for decimal to string with culture (by @​dbrattli)

4.8.1

Fixed

All

  • Fix the version reported by Fable (@​MangelMaxime)

4.8.0

Added

Python

  • GH-3645 Add TimeSpan.Parse and TimeSpan.TryParse support to Python (by @​MangelMaxime)
  • GH-3649 Fixes for List.sortBy (by @​dbrattli)
  • GH-3638 Fixes for Array.sort and Array.sortDescending (by @​dbrattli)

Fixed

JavaScript

  • GH-3465 Fix string.IndexOfAny (by @​pkese)

Python

  • GH-3465 Fix string.IndexOfAny (by @​pkese)

Changed

All

4.7.0

Added

All

  • Overall performance improvements
    • GH-3620 Removed double-dictionary lookups (by @​Thorium)
    • GH-3624 Add G-Research analyzers and fix reported issues (by @​nojaf)

Fixed

All

  • GH-3603 Missing .gitignore file in the generated `fable_modules/`` folder (by @​MangelMaxime)

Python

  • GH-3617: Fix comparaison between list option when one is None (by @​mangelmaxime)
  • GH-3615: Fix remove from dictionary with tuple as key (by @​dbrattli)
  • GH-3598: Using obj () now generated an empty dict instead of None (by @​dbrattli)
  • GH-3597: Do not translate .toString methods to str (by @​dbrattli)
  • GH-3610: Cleanup Python regex handling (by @​dbrattli)
  • GH-3628: System.DateTime.Substract not correctly transpiled (by @​dbrattli)
  • GH-3640: All union cases return the same hash code (by @​dbrattli)

4.6.0

Added

All

  • Fix #​3584: Unit type compiles to undeclared variable (by @​ncave)

Python

  • Support DateTime(..., DateTimeKind.Utc).ToString("O") (by @​MangelMaxime)

Rust

  • Added Guid.TryParse, Guid.ToByteArray (by @​ncave)

Changed

All

  • Updated .NET metadata to 8.0.100 (by @​ncave)

Fixed

Python

  • Fixed char to string type regression with binary operator (by @​dbrattli)
  • Fix DateTime(..., DateTimeKind.Local).ToString("O") (by @​MangelMaxime)
  • Fix calling value.ToString(CultureInfo.InvariantCulture) (by @​MangelMaxime)
  • Fix #​3605: Fix record equality comparison to works with optional fields (by @​MangelMaxime and @​dbrattli)
  • PR #​3608: Rewrite time_span.py allowing for better precision by using a number representation intead of native timedelta. (by @​MangelMaxime)

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: Fable.Core
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Fable.Core
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Fable.Core
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Fable.Core
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Fable.Core
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants