Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the Project shall be under the terms and
conditions of the Apache 2.0 license. See License.txt for details.

Fake 4 (FakeLib) is basically in maintainance mode. Therefore new features need to be at least available as new FAKE 5 module (that might mean that the old module needs to be migrated as part of the PR).

As mentioned in the "Fake 5 learn more" section we have a large list to choose from to help the project. One of these things is porting modules to FAKE 5. To save you from some pitfalls this sections guides you in migrating modules with an (at least for me) working approach.

Tooling in netcore it not optimal yet so some things have to be done by hand, but with these steps you have pretty good IDE support:

Copy one of the existing netcore projects and edit the project file by hand (rename)

Copy the old implementation files from src/app/FakeLib to /src/app/Fake.<ModuleType>.<Name> (update project file again if required)

Reference the new files in FakeLib (again updating FakeLib.fsproj by hand to properly reference the stuff)

Open Fake.sln and go from there. Because in F# you can only reference stuff defines in files ABOVE, this is ALMOST perfect

Once stuff compiles in the (Fake.sln) solution the remaining changes to make the netcore project compile are usually straightforward (you basically only need to fix project references or add framework nuget packages if needed). Let us know if you struggle at this point (in the PR or a new issue).

Add the info about the new module to the dotnetAssemblyInfos variable in build.fsx. From this point on the build script will let you know if anything is missing. Again, if you have problems let us know.

Mark the old module with the Obsolete attribute.

Note that src/Fake-netcore.sln is currently not used (as IDEs don't support that yet). However it is used so speed up the build, fake run build.fsx will let you know what to do in the error message.

These steps will ensure:
- People using the NuGet package will get the warnings to update the new API
- The new API is part of FakeLib (deprecated)
- The new API is available as separate module