Skip to content

Commit

Permalink
Add release notes for Farkle 6.4.0.
Browse files Browse the repository at this point in the history
And update the precompiler documentation.
  • Loading branch information
teo-tsirpanis committed Mar 9, 2022
1 parent 29f876a commit 73d8d6c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 8 deletions.
8 changes: 8 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
#### 6.4.0
* __Breaking change:__ `Farkle.Tools.MSBuild` require MSBuild 17, which comes with Visual Studio 2022 and the .NET 6 SDK.
* Farkle supports precompiling .NET 6 assemblies from Visual Studio.
* Fixed random compiler errors when using the F# production builder operators `.>>` and `.>>.`.
* The precompiler supports writing both a conflict report and detailed MSBuild errors via the `FarklePrecompilerErrorMode` property. Its allowed values are `ReportOnly` (default), `ErrorsOnly` and `Both`.
* String regexes support specifying predefined sets by their property name as well. For example, until now you could match all characters in the `Greek Extended` character set by specifying `\p{Greek Extended}`. From now on, `\p{GreekExtended}` will work too.
* Various bug fixes, particularly in the precompiler.

#### 6.3.2 - 31-10-2021
* Fixed a bug where the precompiler would not work on .NET Framework editions of MSBuild, like in Visual Studio for Windows.

Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 6.3.2.{build}
version: 6.4.0.{build}
image:
- Visual Studio 2022
- Ubuntu2004
Expand Down
10 changes: 3 additions & 7 deletions docs/the-precompiler.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ With your designtime Farkles being ready to be precompiled, it's time to prepare
</ItemGroup>
```
> __Important:__ The packages `Farkle` and `Farkle.Tools.MSBuild` must be at the same version.
> __Important:__ The packages `Farkle` and `Farkle.Tools.MSBuild` must be at the same version. You will get a warning since Farkle 6.4.0 if they are not.
If you build your program now, you should get a message that your designtime Farkles' grammars got precompiled. Hooray! Your app's startup time will be now much faster.
Expand Down Expand Up @@ -188,13 +188,9 @@ And last but not least, until version 6.3.0, the precompiler would not work when
dotnet tool install Farkle.Tools
```
The version of `Farkle.Tools` must be the same with the packages `Farkle` and `Farkle.Tools.MSBuild` you use in your project. Otherwise errors are very likely to occur.
The version of `Farkle.Tools` must be the same with the packages `Farkle` and `Farkle.Tools.MSBuild` you use in your project. Otherwise errors are very likely to occur. The tool must also be installed _locally_, otherwise Farkle will not see it.
The following limitations apply when using the precompiler worker:
* The project must target a framework compatible with .NET Core 3.1. For example building a .NET 5 project that uses the precompiler worker is not supported.
* The .NET Core 3.1 SDK must be installed, even if a newer version of the SDK is used for the rest of the project.
* `Farkle.Tools` must be installed as a .NET _local tool_. Farkle will not see it if it is installed as a .NET global tool.
Due to limitations arising from the precompiler worker's out-of-process execution model, it can only precompile assemblies compatible with `Farkle.Tools.MSBuild`'s supported framework. This framework is generally the latest LTS version of .NET (.NET 6 since Farkle 6.4.0, .NET Core 3.1 prior to that). For example, when .NET 7 gets released, the precompiler worker will not be able to precompile assemblies targeting it, until the release of .NET 8. In addition, the corresponding .NET SDK version must be installed, even if a newer version of the SDK is used for the rest of the project.
The recommended way to build an app that uses the precompiler is through .NET SDK commands like `dotnet build`, `dotnet run` and `dotnet msbuild`. It is faster, more stable and more supported. Visual Studio for Windows cannot run MSBuild on .NET. [A suggestion on Visual Studio Developer Community][vs-suggestion] has been filed but Microsoft responded that it won't be implemented anytime soon. Readers of this guide that are affected are encouraged to upvote the above suggestion. When not using Visual Studio for Windows, Farkle will raise a warning suggesting you to move to the .NET SDK.
Expand Down

0 comments on commit 73d8d6c

Please sign in to comment.