Skip to content

Commit

Permalink
Merge pull request #1903 from fsharp/rc_11
Browse files Browse the repository at this point in the history
Release Candidate 11
  • Loading branch information
matthid authored May 6, 2018
2 parents 83f7989 + 9748035 commit 38b77b8
Show file tree
Hide file tree
Showing 41 changed files with 967 additions and 399 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
command: |
apt-get update
apt-get install -y libunwind8 libicu52 unzip wget git
wget https://github.com/fsharp/FAKE/releases/download/5.0.0-rc001/fake-dotnetcore-ubuntu.14.04-x64.zip -O /tmp/fake-dotnetcore-ubuntu.14.04-x64.zip
wget https://github.com/fsharp/FAKE/releases/download/5.0.0-rc010/fake-dotnetcore-ubuntu.14.04-x64.zip -O /tmp/fake-dotnetcore-ubuntu.14.04-x64.zip
mkdir fake-dotnetcore
unzip /tmp/fake-dotnetcore-ubuntu.14.04-x64.zip -d fake-dotnetcore || echo unzip returned $?
chmod +x $PWD/fake-dotnetcore/fake
Expand Down
62 changes: 31 additions & 31 deletions .fake/build.fsx/intellisense.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,44 +60,44 @@
#r "C:\\Users\\matth\\.nuget\\packages\\system.runtime\\4.3.0\\lib\\net462\\System.Runtime.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\system.security.principal.windows\\4.4.1\\lib\\net461\\System.Security.Principal.Windows.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\system.security.cryptography.protecteddata\\4.4.0\\lib\\net461\\System.Security.Cryptography.ProtectedData.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.xml\\5.0.0-rc008\\lib\\net46\\Fake.Core.Xml.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.semver\\5.0.0-rc008\\lib\\net46\\Fake.Core.SemVer.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.xml\\5.0.0-rc010\\lib\\net46\\Fake.Core.Xml.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.semver\\5.0.0-rc010\\lib\\net46\\Fake.Core.SemVer.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\paket.core\\5.157.0-alpha003\\lib\\net45\\Paket.Core.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.api.github\\5.0.0-rc008\\lib\\net46\\Fake.Api.GitHub.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.context\\5.0.0-rc008\\lib\\net46\\Fake.Core.Context.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.environment\\5.0.0-rc008\\lib\\net46\\Fake.Core.Environment.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.string\\5.0.0-rc008\\lib\\net46\\Fake.Core.String.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.api.github\\5.0.0-rc010\\lib\\net46\\Fake.Api.GitHub.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.context\\5.0.0-rc010\\lib\\net46\\Fake.Core.Context.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.environment\\5.0.0-rc010\\lib\\net46\\Fake.Core.Environment.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.string\\5.0.0-rc010\\lib\\net46\\Fake.Core.String.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fparsec\\1.0.3\\lib\\net40-client\\FParsec.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\suave\\2.4.0\\lib\\net461\\Suave.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\system.reflection.metadata\\1.5.0\\lib\\netstandard2.0\\System.Reflection.Metadata.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\mono.cecil\\0.10.0\\lib\\net40\\Mono.Cecil.Rocks.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\mono.cecil\\0.10.0\\lib\\net40\\Mono.Cecil.Pdb.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\mono.cecil\\0.10.0\\lib\\net40\\Mono.Cecil.Mdb.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.releasenotes\\5.0.0-rc008\\lib\\net46\\Fake.Core.ReleaseNotes.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.io.filesystem\\5.0.0-rc008\\lib\\net46\\Fake.IO.FileSystem.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.commandlineparsing\\5.0.0-rc008\\lib\\net46\\Fake.Core.CommandLineParsing.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.trace\\5.0.0-rc008\\lib\\net46\\Fake.Core.Trace.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.teamfoundation\\5.0.0-rc008\\lib\\net46\\Fake.BuildServer.TeamFoundation.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.travis\\5.0.0-rc008\\lib\\net46\\Fake.BuildServer.Travis.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.tasks\\5.0.0-rc008\\lib\\net46\\Fake.Core.Tasks.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.testing.common\\5.0.0-rc008\\lib\\net46\\Fake.Testing.Common.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.process\\5.0.0-rc008\\lib\\net46\\Fake.Core.Process.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.assemblyinfofile\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.AssemblyInfoFile.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.io.zip\\5.0.0-rc008\\lib\\net46\\Fake.IO.Zip.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.target\\5.0.0-rc008\\lib\\net46\\Fake.Core.Target.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.net.http\\5.0.0-rc008\\lib\\net46\\Fake.Net.Http.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.appveyor\\5.0.0-rc008\\lib\\net46\\Fake.BuildServer.AppVeyor.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.teamcity\\5.0.0-rc008\\lib\\net46\\Fake.BuildServer.TeamCity.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.nuget\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.NuGet.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.testing.mspec\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.Testing.MSpec.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.testing.nunit\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.Testing.NUnit.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.testing.xunit2\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.Testing.XUnit2.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.cli\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.Cli.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.fsformatting\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.FSFormatting.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.msbuild\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.MSBuild.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.paket\\5.0.0-rc008\\lib\\net46\\Fake.DotNet.Paket.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.tools.git\\5.0.0-rc008\\lib\\net46\\Fake.Tools.Git.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.windows.chocolatey\\5.0.0-rc008\\lib\\net46\\Fake.Windows.Chocolatey.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.releasenotes\\5.0.0-rc010\\lib\\net46\\Fake.Core.ReleaseNotes.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.io.filesystem\\5.0.0-rc010\\lib\\net46\\Fake.IO.FileSystem.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.commandlineparsing\\5.0.0-rc010\\lib\\net46\\Fake.Core.CommandLineParsing.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.trace\\5.0.0-rc010\\lib\\net46\\Fake.Core.Trace.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.teamfoundation\\5.0.0-rc010\\lib\\net46\\Fake.BuildServer.TeamFoundation.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.travis\\5.0.0-rc010\\lib\\net46\\Fake.BuildServer.Travis.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.tasks\\5.0.0-rc010\\lib\\net46\\Fake.Core.Tasks.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.testing.common\\5.0.0-rc010\\lib\\net46\\Fake.Testing.Common.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.process\\5.0.0-rc010\\lib\\net46\\Fake.Core.Process.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.assemblyinfofile\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.AssemblyInfoFile.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.io.zip\\5.0.0-rc010\\lib\\net46\\Fake.IO.Zip.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.core.target\\5.0.0-rc010\\lib\\net46\\Fake.Core.Target.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.net.http\\5.0.0-rc010\\lib\\net46\\Fake.Net.Http.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.appveyor\\5.0.0-rc010\\lib\\net46\\Fake.BuildServer.AppVeyor.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.buildserver.teamcity\\5.0.0-rc010\\lib\\net46\\Fake.BuildServer.TeamCity.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.nuget\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.NuGet.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.testing.mspec\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.Testing.MSpec.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.testing.nunit\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.Testing.NUnit.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.testing.xunit2\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.Testing.XUnit2.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.cli\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.Cli.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.fsformatting\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.FSFormatting.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.msbuild\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.MSBuild.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.dotnet.paket\\5.0.0-rc010\\lib\\net46\\Fake.DotNet.Paket.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.tools.git\\5.0.0-rc010\\lib\\net46\\Fake.Tools.Git.dll"
#r "C:\\Users\\matth\\.nuget\\packages\\fake.windows.chocolatey\\5.0.0-rc010\\lib\\net46\\Fake.Windows.Chocolatey.dll"
#r "System"
#r "System.Core"
#r "System.Security"
Expand Down
13 changes: 12 additions & 1 deletion RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
# Release Notes

## 5.0.0-rc011 - 2018-05-06

* ENHANCEMENT: Add Verbosity setting for NuGet restore - https://github.com/fsharp/FAKE/pull/1904
* BUGFIX: Fix msbuild helper OutputPath with trailing `\` - https://github.com/fsharp/FAKE/pull/1905
* BUGFIX: Make `Fake.Tools.Pickles` run on unix (with mono) - https://github.com/fsharp/FAKE/pull/1901
* DOCS: Add docs on how to test modules locally - https://github.com/fsharp/FAKE/pull/1906
* DOCS: Added some links to the documentation of SpecFlow, Pickles and ReportGenerator - https://github.com/fsharp/FAKE/pull/1907
* BUGFIX: API-Reference documentation showing invalid tool-tips - https://github.com/fsharp/FAKE/pull/1912
* BUGFIX: Fake being unable to compile when `intellisense.fsx` doesn't exist - https://github.com/fsharp/FAKE/issues/1908
* ENHANCEMENT: Some improvements to the target build order algorithm - https://github.com/fsharp/FAKE/pull/1903

## 5.0.0-rc010 - 2018-05-01

* BUGFIX: Some minor issues after last performance release - https://github.com/fsharp/FAKE/pull/1902

## 5.0.0-rc009 - 2018-05-01

* FAKE5: New module `Fake.Installer.InnoSetu` - https://github.com/fsharp/FAKE/pull/1890
* FAKE5: New module `Fake.Installer.InnoSetup` - https://github.com/fsharp/FAKE/pull/1890
* DOCS: Order module-namespaces alphabetically - https://github.com/fsharp/FAKE/pull/1891
* BUGFIX: Make sure ReportGenerator is run with mono on unix - https://github.com/fsharp/FAKE/pull/1894
* DOCS: Make sure API docs for new modules and FAKE 4 is available - https://github.com/fsharp/FAKE/pull/1893
Expand Down
47 changes: 36 additions & 11 deletions build.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ open System.Reflection
//let execContext = Fake.Core.Context.FakeExecutionContext.Create false "build.fsx" []
//Fake.Core.Context.setExecutionContext (Fake.Core.Context.RuntimeContext.Fake execContext)
//#endif
#load "src/app/Fake.DotNet.FSFormatting/FSFormatting.fs"
// #load "src/app/Fake.DotNet.FSFormatting/FSFormatting.fs"
open System.IO
open Fake.Api
open Fake.Core
Expand Down Expand Up @@ -132,6 +132,9 @@ BuildServer.install [
TeamFoundation.Installer
]

let current = CoreTracing.getListeners()
if current |> Seq.contains CoreTracing.defaultConsoleTraceListener |> not then
CoreTracing.setTraceListeners (CoreTracing.defaultConsoleTraceListener :: current)
let dotnetSdk = lazy DotNet.install DotNet.Release_2_1_4
let inline dtntWorkDir wd =
DotNet.Options.lift dotnetSdk.Value
Expand Down Expand Up @@ -419,17 +422,31 @@ Target.create "GenerateDocs" (fun _ ->

Directory.ensure apidocsDir

let dllsAndLibDirs (dllPattern:IGlobbingPattern) =
let dlls =
dllPattern
|> Seq.distinctBy Path.GetFileName
|> List.ofSeq
let libDirs =
dlls
|> Seq.map Path.GetDirectoryName
|> Seq.distinct
|> List.ofSeq
(dlls,libDirs)
// FAKE 5 module documentation
let fake5ApidocsDir = apidocsDir @@ "v5"
Directory.ensure fake5ApidocsDir
let fake5Dlls =
!! "./src/app/Fake.*/bin/Release/**/Fake.*.dll"
|> Seq.distinctBy Path.GetFileName

let fake5Dlls, fake5LibDirs =
!! "./src/app/Fake.*/bin/Release/**/Fake.*.dll"
|> dllsAndLibDirs

fake5Dlls
|> FSFormatting.createDocsForDlls (fun s ->
{ s with
OutputDirectory = fake5ApidocsDir
LayoutRoots = fake5LayoutRoots
LibDirs = fake5LibDirs
// TODO: CurrentPage shouldn't be required as it's written in the template, but it is -> investigate
ProjectParameters = ("api-docs-prefix", "/apidocs/v5/") :: ("CurrentPage", "APIReference") :: projInfo
SourceRepository = githubLink + "/blob/master" })
Expand Down Expand Up @@ -465,7 +482,7 @@ Target.create "GenerateDocs" (fun _ ->
// FAKE 5 legacy documentation
let fake5LegacyApidocsDir = apidocsDir @@ "v5/legacy"
Directory.ensure fake5LegacyApidocsDir
let fake5LegacyDlls =
let fake5LegacyDlls, fake5LegacyLibDirs =
!! "./build/**/Fake.*.dll"
++ "./build/FakeLib.dll"
-- "./build/**/Fake.Experimental.dll"
Expand All @@ -474,37 +491,37 @@ Target.create "GenerateDocs" (fun _ ->
-- "./build/**/FAKE.FSharp.Compiler.Service.dll"
-- "./build/**/Fake.IIS.dll"
-- "./build/**/Fake.Deploy.Lib.dll"
|> Seq.distinctBy Path.GetFileName
|> dllsAndLibDirs

fake5LegacyDlls
|> FSFormatting.createDocsForDlls (fun s ->
{ s with
OutputDirectory = fake5LegacyApidocsDir
LayoutRoots = legacyLayoutRoots
LibDirs = [ "./build" ]
LibDirs = fake5LegacyLibDirs
// TODO: CurrentPage shouldn't be required as it's written in the template, but it is -> investigate
ProjectParameters = ("api-docs-prefix", "/apidocs/v5/legacy/") :: ("CurrentPage", "APIReference") :: projInfo
SourceRepository = githubLink + "/blob/master" })

// FAKE 4 legacy documentation
let fake4LegacyApidocsDir = apidocsDir @@ "v4"
Directory.ensure fake4LegacyApidocsDir
let fake4LegacyDlls =
let fake4LegacyDlls, fake4LegacyLibDirs =
!! "./packages/docs/FAKE/tools/Fake.*.dll"
++ "./packages/docs/FAKE/tools/FakeLib.dll"
-- "./packages/docs/FAKE/tools/Fake.Experimental.dll"
-- "./packages/docs/FAKE/tools/FSharp.Compiler.Service.dll"
-- "./packages/docs/FAKE/tools/FAKE.FSharp.Compiler.Service.dll"
-- "./packages/docs/FAKE/tools/Fake.IIS.dll"
-- "./packages/docs/FAKE/tools/Fake.Deploy.Lib.dll"
|> Seq.distinctBy Path.GetFileName
|> dllsAndLibDirs

fake4LegacyDlls
|> FSFormatting.createDocsForDlls (fun s ->
{ s with
OutputDirectory = fake4LegacyApidocsDir
LayoutRoots = fake4LayoutRoots
LibDirs = [ "./packages/docs/FAKE/tools" ]
LibDirs = fake4LegacyLibDirs
// TODO: CurrentPage shouldn't be required as it's written in the template, but it is -> investigate
ProjectParameters = ("api-docs-prefix", "/apidocs/v4/") ::("CurrentPage", "APIReference") :: projInfo
SourceRepository = githubLink + "/blob/hotfix_fake4" })
Expand Down Expand Up @@ -1158,6 +1175,7 @@ open Fake.Core.TargetOperators
"_DotNetPackage"
==> "DotNetPackage"

let mutable prev = None
for runtime in "current" :: "portable" :: runtimes do
let rawTargetName = sprintf "_DotNetPublish_%s" runtime
let targetName = sprintf "DotNetPublish_%s" runtime
Expand All @@ -1179,7 +1197,14 @@ for runtime in "current" :: "portable" :: runtimes do
targetName
==> "DotNetPublish"
|> ignore


// Make sure we order then (when building parallel!)
match prev with
| Some prev -> prev ?=> rawTargetName |> ignore
| None -> "_DotNetPackage" ?=> rawTargetName |> ignore
prev <- Some rawTargetName


// Full framework build
"Clean"
?=> "RenameFSharpCompilerService"
Expand Down
3 changes: 2 additions & 1 deletion build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@
<RepoRootDir>$([System.IO.Path]::GetFullPath("$(MSBuildThisFileDirectory)"))</RepoRootDir>
<BuildDependsOn></BuildDependsOn>
<CoreBuildDependsOn></CoreBuildDependsOn>
<FakeParallel Condition="'$(Parallel)' == 'true'">--parallel 5</FakeParallel>
</PropertyGroup>

<Target Name="Build">
<Exec IgnoreStandardErrorWarningFormat="true" Command='dotnet fake build' WorkingDirectory="$(RepoRootDir)" />
<Exec IgnoreStandardErrorWarningFormat="true" Command='dotnet fake build $(FakeParallel)' WorkingDirectory="$(RepoRootDir)" />
</Target>

<Target Name="Pack">
Expand Down
11 changes: 8 additions & 3 deletions help/markdown/404.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@

The new FAKE 5 website is still a work in progress.

[PLEASE HELP](fake-fake5-learn-more.html)
and [CONTRIBUTE](contributing.html)
[PLEASE HELP](/fake-fake5-learn-more.html)
and [CONTRIBUTE](/contributing.html)

## The Information is not lost!

You might find the information you are searching in the menu via Modules -> Legacy
You might find the information you are searching

* (legacy) in the menu via Modules -> Legacy
* Searching the API-Reference and the modules menu
* [opening an issue and tell us how you got here](https://github.com/fsharp/FAKE/issues/new)
* (legacy) Fake 4 -> Where is XYZ
3 changes: 3 additions & 0 deletions help/markdown/buildserver.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ BuildServer.install [
TeamFoundation.Installer
]
// If you additionally want output in the console, even on the build-server (otherwise remove this line).
CoreTracing.ensureConsoleListener ()
Target.create "Test" (fun _ ->
File.WriteAllText("myfile.txt", "some content")
Expand Down
20 changes: 20 additions & 0 deletions help/markdown/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,26 @@ It turns `*.md` (Markdown with embedded code snippets) and `*.fsx` files (F# scr

* The pull request will be updated automatically.

### A note on module testing

* If you make a change to a module and would like to test it in a fake script, the easiest way to do this is to create a local nuget package and reference it in your script. To do this, follow the steps below

1. Create a local nuget package for the module you've changed.
e.g: Using dotnet cli

cd path/to/project
dotnet pack

2. Dotnet pack will create a default nuget package with version of 1.0.0 in the `bin/Debug` of your project. Set an additional paket source in your build script to this directory, and require this exact version in your paket references

e.g: If you wanted to test a local build of Fake.DotNet.NuGet

#r "paket:
source path/to/Fake.DotNet.NuGet/bin/Debug/
source https://api.nuget.org/v3/index.json
...Other Dependencies...
nuget Fake.DotNet.NuGet == 1.0.0 //" //Require version 1.0.0, which is the local build

## General considerations

* Fake 4 (FakeLib) is 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).
Expand Down
4 changes: 4 additions & 0 deletions help/markdown/fake-dotnet-testing-specflow.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# Make BDD with Gherkin and SpecFlow

**Note: This documentation is for FAKE version 5.0 or later. The old documentation can be found [here](apidocs/v4/fake-specflowhelper.html)**

Use [SpecFlow] to define, manage and automatically execute human-readable acceptance tests in .NET projects. Writing easily understandable tests is a cornerstone of the BDD paradigm and also helps build up a living documentation of your system.

SpecFlow is open source and provided under a BSD license. As part of the Cucumber family, SpecFlow uses the official Gherkin parser and supports the .NET framework, Xamarin and Mono.

The package Fake.DotNet.Testing.SpecFlow is a bridge to the [SpecFlow] CLI (specflow.exe).

[API-Reference](https://fake.build/apidocs/v5/fake-dotnet-testing-specflow.html)

## Minimal working example

```fsharp
Expand Down
Loading

0 comments on commit 38b77b8

Please sign in to comment.