Skip to content

fix: support Fable.Beam rc.37 - #42

Merged
dbrattli merged 1 commit into
mainfrom
chore/fable-beam-rc-37
Aug 23, 2026
Merged

dbrattli merged 1 commit into
mainfrom
chore/fable-beam-rc-37

Conversation

@dbrattli

@dbrattli dbrattli commented Aug 23, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • update Fable.Beam to 5.0.0-rc.37 in the main and test Paket groups
  • migrate the BEAM logger to Fable.Beam's public curried Logger API
  • avoid FSharp.Core's unsupported dynamic subtraction path when parsing named placeholders

Validation

  • dotnet build test -m:1

  • dotnet run --project test --no-build (51/51 passed)

  • git diff --check

    Determining projects to restore...
    Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
    Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
    Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
    The last full restore is still up to date. Nothing left to do.
    The last full restore is still up to date. Nothing left to do.
    Total time taken: 0 milliseconds
    Total time taken: 0 milliseconds
    The last full restore is still up to date. Nothing left to do.
    Total time taken: 0 milliseconds
    Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
    The last full restore is still up to date. Nothing left to do.
    Total time taken: 0 milliseconds
    All projects are up-to-date for restore.
    Fable.Logging -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging/bin/Debug/netstandard2.0/Fable.Logging.dll
    Fable.Logging.Beam -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Beam/bin/Debug/netstandard2.0/Fable.Logging.Beam.dll
    Fable.Logging.Structlog -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Structlog/bin/Debug/netstandard2.0/Fable.Logging.Structlog.dll
    Fable.Logging.Test -> /home/dbrattli/developer/Fable.Logging/test/bin/Debug/net10.0/Fable.Logging.Test.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:04.74
�[37mFable 5.13.0: F# to Beam compiler (status: alpha)
�[39m�[22m�[37m
Thanks to the contributor! @mexx
�[39m�[22m�[37mStand with Ukraine! https://standwithukraine.com.ua/

�[39m�[22m�[37mParsing test/Fable.Logging.Test.fsproj...
�[39m�[22m�[37m Determining projects to restore...
Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
The last full restore is still up to date. Nothing left to do.
Total time taken: 0 milliseconds
Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
The last full restore is still up to date. Nothing left to do.
Total time taken: 0 milliseconds
Restored /home/dbrattli/developer/Fable.Logging/src/Fable.Logging/Fable.Logging.fsproj (in 128 ms).
Restored /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Structlog/Fable.Logging.Structlog.fsproj (in 128 ms).
Fable.Logging -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging/bin/Release/netstandard2.0/Fable.Logging.dll
Fable.Logging.Structlog -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Structlog/bin/Release/netstandard2.0/Fable.Logging.Structlog.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:03.10

�[39m�[22m�[37mProject and references (45 source files) parsed in 8702ms

�[39m�[22m�[37mStarted Fable compilation...
�[39m�[22m�[37m
Fable compilation finished in 1773ms

�[39m�[22m�[33m./test/TestBeamLogger.fs(18,20): (18,36) warning FSHARP: It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value (code 760)
�[39m�[22m�[33m./test/TestBeamLogger.fs(28,20): (28,36) warning FSHARP: It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value (code 760)
�[39m�[22m�[33m./test/TestBeamLogger.fs(39,20): (39,36) warning FSHARP: It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value (code 760)
�[39m�[22m�[33m./test/TestBeamLogger.fs(54,20): (54,36) warning FSHARP: It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value (code 760)
�[39m�[22m�[33m./test/TestBeamLogger.fs(65,20): (65,36) warning FSHARP: It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value (code 760)
�[39m�[22m�[33m./test/TestBeamLogger.fs(85,20): (85,36) warning FSHARP: It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value (code 760)
�[39m�[22m===> Verifying dependencies...
===> Analyzing applications...
===> Compiling fable_beam
===> Compiling fable_logging_test
src/src_fable_logging_beam_beam_logger.erl:111:154: Warning: a term is constructed, but never used
src/src_fable_logging_beam_beam_logger.erl:111:204: Warning: a term is constructed, but never used

===> Compiling fable_library_beam

Fable.Logging Tests

PASS: translateFormat with no args
PASS: translateFormat with named placeholder
PASS: translateFormat with multiple placeholders
PASS: translateFormat with category name
PASS: translateFormat empty category name
PASS: translateFormat sets category_name parameter
PASS: ConsoleLogger implements ILogger
PASS: ConsoleLogger is always enabled
test - hello
test - debug message
PASS: ConsoleLogger logs without error
test - hello World
PASS: ConsoleLogger logs with format args
PASS: LoggerFactory.Create returns factory
PASS: LoggerFactory with provider
PASS: LoggerFactory creates logger with correct name
PASS: LoggerFactory dispatches to provider
PASS: LoggerFactory dispatches to multiple providers
PASS: LoggerFactory with configure sets minimum level
PASS: LoggerFactory.Create empty constructor
PASS: LoggerFactory AddProvider affects only later loggers
PASS: LoggerFactory exposes minimum level
PASS: LoggerFactory ClearProviders
PASS: LoggerFactory Dispose clears providers
PASS: log levels have correct ordering
PASS: log level filtering with mock logger
PASS: LogState.Create defaults
PASS: LogState.Create with parameters
PASS: LogState.Create with exception
PASS: LogDebug dispatches with Debug level
PASS: LogInformation dispatches with Information level
PASS: LogWarning dispatches with Warning level
PASS: LogError dispatches with Error level
PASS: LogCritical dispatches with Critical level
PASS: Log with exception
PASS: extension methods respect IsEnabled
PASS: LogDebug with format args
PASS: Structlog ConsoleLoggerProvider creates logger
PASS: Structlog JsonLoggerProvider creates logger
PASS: Structlog logger logs info
PASS: Structlog logger logs with format args
PASS: Structlog logger respects minimum level
PASS: Structlog JsonLogger logs JSON
PASS: Beam LoggerProvider creates logger
PASS: Beam logger logs info
=INFO REPORT==== 23-Aug-2026::22:41:06.784974 ===
beam-test - hello from beam logger
=INFO REPORT==== 23-Aug-2026::22:41:06.795036 ===
beam-test - info message
=WARNING REPORT==== 23-Aug-2026::22:41:06.795068 ===
beam-test - warning message
=ERROR REPORT==== 23-Aug-2026::22:41:06.795098 ===
beam-test - error message
PASS: Beam logger logs all levels
=CRITICAL REPORT==== 23-Aug-2026::22:41:06.795168 ===
beam-test - critical message
PASS: Beam logger logs with format args
=INFO REPORT==== 23-Aug-2026::22:41:06.795212 ===
beam-test - hello World
=WARNING REPORT==== 23-Aug-2026::22:41:06.795337 ===
beam-test - passes through
PASS: Beam logger respects minimum level
=INFO REPORT==== 23-Aug-2026::22:41:06.795545 ===
cross-process - hello from a spawned process
PASS: Beam logger is usable from a spawned process
PASS: JS LoggerProvider creates logger
PASS: JS logger logs info
PASS: JS logger logs all levels
PASS: JS logger logs with format args
PASS: JS logger respects minimum level

51/51 tests passed remains blocked before transpilation by its parallel Determining projects to restore...
Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
The last full restore is still up to date. Nothing left to do.
Total time taken: 0 milliseconds
The last full restore is still up to date. Nothing left to do.
Total time taken: 0 milliseconds
The last full restore is still up to date. Nothing left to do.
Total time taken: 0 milliseconds
Paket version 10.3.1+bbc45f336c7f9bac95cf1d17267ab2383d029682
The last full restore is still up to date. Nothing left to do.
Total time taken: 0 milliseconds
Restored /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Beam/Fable.Logging.Beam.fsproj (in 138 ms).
Restored /home/dbrattli/developer/Fable.Logging/src/Fable.Logging/Fable.Logging.fsproj (in 138 ms).
Restored /home/dbrattli/developer/Fable.Logging/test/Fable.Logging.Test.fsproj (in 138 ms).
1 of 4 projects are up-to-date for restore.
Fable.Logging -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging/bin/Debug/netstandard2.0/Fable.Logging.dll
Fable.Logging.Beam -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Beam/bin/Debug/netstandard2.0/Fable.Logging.Beam.dll
Fable.Logging.Structlog -> /home/dbrattli/developer/Fable.Logging/src/Fable.Logging.Structlog/bin/Debug/netstandard2.0/Fable.Logging.Structlog.dll
Fable.Logging.Test -> /home/dbrattli/developer/Fable.Logging/test/bin/Debug/net10.0/Fable.Logging.Test.dll

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:04.64 invocation returning no compiler diagnostics; the serial build passes.

@dbrattli
dbrattli marked this pull request as ready for review August 23, 2026 20:35
@dbrattli dbrattli changed the title chore: update Fable.Beam to rc.37 fix: update Fable.Beam to rc.37 Aug 23, 2026
@dbrattli
dbrattli force-pushed the chore/fable-beam-rc-37 branch from b3c224a to 8a804f8 Compare August 23, 2026 20:40
@dbrattli dbrattli changed the title fix: update Fable.Beam to rc.37 fix: support Fable.Beam rc.37 Aug 23, 2026
@dbrattli
dbrattli marked this pull request as draft August 23, 2026 20:41
@dbrattli
dbrattli marked this pull request as ready for review August 23, 2026 20:41
@dbrattli
dbrattli merged commit 21812be into main Aug 23, 2026
3 checks passed
@dbrattli
dbrattli deleted the chore/fable-beam-rc-37 branch August 23, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant