anchor.diff:  // Read release notes document
   let release = ReleaseNotes.load "RELEASE_NOTES.md"
   
  -let gitHome = "https://github.com/fsprojects"
  -let projectRepo = gitHome + "/FSharp.Formatting"
  +let projectRepo = "https://github.com/fsprojects/FSharp.Formatting"
   
   // --------------------------------------------------------------------------------------
   // Generate assembly info files with the right version & up-to-date information
  
positive.code:         }) solutionFile
  )
  
  
  // Generate the documentation
  // --------------------------------------------------------------------------------------
  
  let toolPath = "temp"
  
  let docsToolPath = toolPath </> "fsdocs" + (if Environment.isWindows then ".exe" else "")
  let docsToolStartInfo workingDirectory args =
      (fun (info:ProcStartInfo) ->
          { info with
              FileName = Path.GetFullPath docsToolPath
              Arguments = args
              WorkingDirectory = workingDirectory
          }
          |> Process.withFramework
          // |> Process.setEnvironmentVariable "MSBuild" MSBuild.msBuildExe
          |> Process.setEnvironmentVariable "GIT" Git.CommandHelper.gitPath
      )
  
  
  /// Run the given buildscript with FAKE.exe
  let executeWithOutput configStartInfo =
      let exitCode =
          Process.execRaw
              configStartInfo
              TimeSpan.MaxValue false ignore ignore
      Threading.Thread.Sleep 1000
      exitCode
  
  let executeWithRedirect errorF messageF configStartInfo =
      let exitCode =
          Process.execRaw
              configStartInfo
              TimeSpan.MaxValue true errorF messageF
      Threading.Thread.Sleep 1000
      exitCode
  
  let executeHelper executer traceMsg failMessage configStartInfo =
      Trace.trace traceMsg
      let exit = executer configStartInfo
      if exit <> 0 then
          failwith failMessage
      ()
  
  let execute traceMsg failMessage configStartInfo = executeHelper executeWithOutput traceMsg failMessage configStartInfo
  
  // Documentation
  let docTool args =
    execute
      "Building documentation (CommandTool), this could take some time, please wait..."
      "generating documentation failed"
      (docsToolStartInfo __SOURCE_DIRECTORY__ args)
  
  
  let createArg argName arguments =
      (arguments : string seq)
      |> String.concat "\" \""
      |> fun e -> if String.IsNullOrWhiteSpace e then ""
                  else sprintf "--%s \"%s\"" argName e
  
  Target.create "GenerateDocs" (fun _ ->
      Shell.cleanDir "temp"
      Shell.cleanDir ".fsdocs"
      let result =
          DotNet.exec
              (fun p -> { p with WorkingDirectory = __SOURCE_DIRECTORY__ })
              "tool" ("install --add-source " + artifactsDir + " --tool-path " + toolPath + " --version " + release.NugetVersion + " FSharp.Formatting.CommandTool")
  
      if not result.OK then failwith "failed to install fsdocs as dotnet tool"
  
      docTool (sprintf "build docs --clean --mdcomments"))
  
  // --------------------------------------------------------------------------------------
  // Release Scripts
  
  Target.create "ReleaseDocs" (fun _ ->
      Git.Repository.clone "" projectRepo "temp/gh-pages"
      Git.Branches.checkoutBranch "temp/gh-pages" "gh-pages"
      Shell.copyRecursive "output" "temp/gh-pages" true |> printfn "%A"
  
negative.code: 
  "All"
    ==> "CreateTag"
    ==> "PublishNuget"
    ==> "Release"
  
  Target.runOrDefault "All"
  