anchor.diff:      "DotnetRestore" ?=>! "UpdateChangelog"
       "UpdateChangelog" ?=>! "GenerateAssemblyInfo"
   
  +
       // "BuildDocs" ==>! "ReleaseDocs"
       // "BuildDocs" ?=>! "PublishToNuget"
       // "DotnetPack" ?=>! "BuildDocs"
  
positive.code: //         |> failOnBadExitAndPrint
  
  let allReleaseChecks () =
      isOnCI ()
      Changelog.isChangelogEmpty ()
  
  
negative.code:                 retryIfInCI (times - 1) fn
          else
              fn ()
      else
          fn ()
  
  let isOnCI () =
      if not isCI.Value then
          failwith "Not on CI. If you want to publish, please use CI."
  
  let isReleaseBranchCheck () =
      if Git.Information.getBranchName "" <> releaseBranch then
          failwithf "Not on %s.  If you want to release please switch to this branch." releaseBranch
  
  module Changelog =
  
      let isEmptyChange =
  