Skip to content

Latest commit

 

History

History
46 lines (34 loc) · 3.09 KB

DEV_GUIDE.md

File metadata and controls

46 lines (34 loc) · 3.09 KB

Notes about development in this repository

Please contribute any notes that made your contributions easier here.

Note that historically, the bulk of the development occured on Windows before dotnet got cross platform. Since Paket 12 only the .NET SDK is required, on every OS.

Notes about the build script

build.cmd and build.sh run build.fsx with dotnet fsi. FAKE is used as a library only: there is no FAKE runner to install, and its version no longer has to match the .NET SDK. The FAKE modules come from the BuildScript group of paket.dependencies and are loaded through the scripts that the paket generate-load-scripts call in build.cmd / build.sh writes to .paket/load/net10.0/BuildScript/, so running dotnet fsi build.fsx directly assumes one of those entry points has been run at least once.

Targets and parameters are unchanged, so ./build.sh <Target> [key=value ...] keeps working as before: the script turns the key=value arguments into environment variables itself, which is what the FAKE runner used to do, and passes the target name to FAKE as --target through the execution context it creates. Only one target name is accepted.

The build no longer needs Mono: Paket 12 runs as a .NET tool only, and the paket.exe stub of src/Paket.LegacyStub builds against the .NET Framework reference assemblies package.

Notes about the Paket F# Interactive extension

Some pointers to help efforts to foster the F# Interactive extension ecosystem:

Updates to support new major SDK releases

This is overall a stress free process, you can take example on previous PRs: