anchor.diff:  let configuration (targets : Target list) =
       let defaultVal = if isRelease targets then "Release" else "Debug"
       match Environment.environVarOrDefault "CONFIGURATION" defaultVal with
  -     | "Debug" -> DotNet.BuildConfiguration.Debug
  -     | "Release" -> DotNet.BuildConfiguration.Release
  -     | config -> DotNet.BuildConfiguration.Custom config
  -
  +    | "Debug" -> DotNet.BuildConfiguration.Debug
  +    | "Release" -> DotNet.BuildConfiguration.Release
  +    | config -> DotNet.BuildConfiguration.Custom config
   
   let failOnBadExitAndPrint (p : ProcessResult) =
       if p.ExitCode <> 0 then
           p.Errors |> Seq.iter Trace.traceError
           failwithf "failed with exitcode %d" p.ExitCode
   
  -Target.create "Clean" <| fun _ ->
  +
  +let dispose (disposable : #IDisposable) = disposable.Dispose()
  +[<AllowNullLiteral>]
  +type DisposableDirectory (directory : string) =
  +    do
  +        Trace.tracefn "Created disposable directory %s" directory
  +    static member Create() =
  +        let tempPath = IO.Path.Combine(IO.Path.GetTempPath(), Guid.NewGuid().ToString("n"))
  +        IO.Directory.CreateDirectory tempPath |> ignore
  +
  +        new DisposableDirectory(tempPath)
  +    member x.Directory = directory
  +    member x.DirectoryInfo = IO.DirectoryInfo(directory)
  +
  +    interface IDisposable with
  +        member x.Dispose() =
  +            Trace.tracefn "Deleting directory %s" directory
  +            IO.Directory.Delete(x.Directory,true)
  +
  +type DisposeablePushd (directory : string) =
  +    do Shell.pushd directory
  +    member x.Directory = directory
  +    member x.DirectoryInfo = IO.DirectoryInfo(directory)
  +    interface IDisposable with
  +        member x.Dispose() =
  +            Shell.popd()
  +
  +let isReleaseBranchCheck () =
  +    let releaseBranch = "master"
  +    if Git.Information.getBranchName "" <> releaseBranch then failwithf "Not on %s.  If you want to release please switch to this branch." releaseBranch
  +
  +//-----------------------------------------------------------------------------
  +// Target Implementations
  +//-----------------------------------------------------------------------------
  +
  +let clean _ =
       [ "obj" ;"dist"]
       |> Shell.cleanDirs
   
       Git.CommandHelper.directRunGitCommandAndFail contentDir "clean -xfd"
   
  -
  -Target.create "DotnetRestore" <| fun _ ->
  +let ``dotnet restore`` _ =
       !! srcGlob
       |> Seq.iter(fun dir ->
           let args =
  
positive.code: open Fake.Api
  open Fake.BuildServer
  
  BuildServer.install [
      AppVeyor.Installer
      Travis.Installer
  
negative.code:                         (Some(args))
                  }) proj)
  
  let publish _ =
      Paket.push(fun c ->
          { c with
              ToolType = ToolType.CreateLocalTool()
  