About | F# Compiler Guide Links License Release Notes Source Repository Compiler Internals Reusing typechecking results Overview Coding standards Diagnostics Debug emit Display names, logical names and compiled names Representations F# Interactive Emit Optimizations Large inputs Memory usage Startup Performance Changing the AST Running the documentation locally Language Service Internals Overview Project builds FSharpChecker caches Incrementality FSharp.Compiler.Service Tutorial: Tokenizing Tutorial: Expressions Tutorial: AST APIs Tutorial: Symbols Tutorial: Editor services Tutorial: Expressions Tutorial: Project analysis Tutorial: Hosted execution Tutorial: Hosting the compiler Notes on FSharp.Core IFileSystem FSharp.Core Guidance Release Notes About F# Language FSharp.Core FSharp.Compiler.Service Other F# LSP Compiling Equality Comparisons F# Compiler Regression Testing Breaking Changes in Query Expression Fixes Postmortems Regression: FS0229 B-Stream Misalignment in TypedTreePickle API Reference All Namespaces F# Compiler Guide Links License Release Notes Source Repository Compiler Internals Reusing typechecking results Overview Coding standards Diagnostics Debug emit Display names, logical names and compiled names Representations F# Interactive Emit Optimizations Large inputs Memory usage Startup Performance Changing the AST Running the documentation locally Language Service Internals Overview Project builds FSharpChecker caches Incrementality FSharp.Compiler.Service Tutorial: Tokenizing Tutorial: Expressions Tutorial: AST APIs Tutorial: Symbols Tutorial: Editor services Tutorial: Expressions Tutorial: Project analysis Tutorial: Hosted execution Tutorial: Hosting the compiler Notes on FSharp.Core IFileSystem FSharp.Core Guidance Release Notes About F# Language FSharp.Core FSharp.Compiler.Service Other F# LSP Compiling Equality Comparisons F# Compiler Regression Testing Breaking Changes in Query Expression Fixes Postmortems Regression: FS0229 B-Stream Misalignment in TypedTreePickle API Reference All Namespaces About The release notes for the F# language, FSharp.Core and FSharp.Compiler.Service are based on the Keep a Changelog format. The target audience of these release notes are the respective end-users. Writing a changelog entry In order to keep the change logs consistent the following format was proposed for each entry: * <Informative description>. ([PR #16106](https://github.com/dotnet/fsharp/pull/16106)) Some tips: Use valid Markdown. Use * as bullet point symbol. We don't want to mix * and -. Start your description with a capital and end the sentence with a dot. Always include a link to your pull request before the closing ), ([PR #16106](https://github.com/dotnet/fsharp/pull/16106)). Optionally, include a link to an issue on dotnet/fsharp use Issue #number before the link to the pull request. Example: * Correctly handle assembly imports with public key token of 0 length. ([Issue #16359](https://github.com/dotnet/fsharp/issues/16359), [PR #16363](https://github.com/dotnet/fsharp/pull/16363)) Optionally, include a link to a language suggestion from dotnet/fsharp use Language suggestion #number before the link to the pull request. Example: * `while!` ([Language suggestion #1038](https://github.com/fsharp/fslang-suggestions/issues/1038), [PR #14238](https://github.com/dotnet/fsharp/pull/14238)) Choose the right section for your type of change. (## Added, ## Changed, ## Deprecated, ## Removed, ## Fixed or ## Security). Ensure your description makes it clear what the change is about. The reader should be informed on a high level without needing to click through the pull request link and find out in the code what actually changed. Maintainers or other contributors might rewrite your changelog entry in the future. This might be done when multiple pull requests can be consolidated under the same umbrella. Related pull requests can be listed in the same entry when it makes sense. Example: * Miscellaneous fixes to parentheses analysis. ([PR #16262](https://github.com/dotnet/fsharp/pull/16262), [PR #16391](https://github.com/dotnet/fsharp/pull/16391), [PR #16370](https://github.com/dotnet/fsharp/pull/16370)) The release process General How does it work? Different stages/phases? FSharp.Compiler.Service Perhaps add some specific info if available? On this page About Writing a changelog entry The release process General FSharp.Compiler.Service Type something to start searching.