Subject: bug#44893: `guix deploy` doesn't recognize option --dry-run

From: zimoun <[email-masked]>
Date: Sat, 28 Nov 2020 11:48:44 +0100

Dear,

Thank you for the report.

On Thu, 26 Nov 2020 at 13:11, Jesse Gibbons <[email-masked]> wrote:
> --dry-run is an option listed in `guix deploy --help` but when I try it, 
> it isn't recognized:
>
> $ guix deploy --dry-run deploy.scm
> guix deploy: error: dry-run: unrecognized option

Yeah, it is because ’show-build-options-help’ is used.  I am not using
“guix deploy” and the question is: are all the build options working?

The build options of ’show-build-options-help’ are:

  -L, --load-path=DIR    prepend DIR to the package module search path
  -K, --keep-failed      keep build tree of failed builds
  -k, --keep-going       keep going when some of the derivations fail
  -n, --dry-run          do not build the derivations
      --fallback         fall back to building when the substituter fails
      --no-substitutes   build instead of resorting to pre-built substitutes
      --substitute-urls=URLS
                         fetch substitute from URLS if they are authorized
      --no-grafts        do not graft packages
      --no-offload       do not attempt to offload builds
      --max-silent-time=SECONDS
                         mark the build as failed after SECONDS of silence
      --timeout=SECONDS  mark the build as failed after SECONDS of activity
      --rounds=N         build N times in a row to detect non-determinism
  -c, --cores=N          allow the use of up to N CPU cores for the build
  -M, --max-jobs=N       allow at most N build jobs
      --debug=LEVEL      produce debugging output at LEVEL

The relevant piece of code is:

--8<---------------cut here---------------start------------->8---
      (with-status-verbosity (assoc-ref opts 'verbosity)
        (with-store store
          (set-build-options-from-command-line store opts)
          (with-build-handler (build-notifier #:use-substitutes?
                                              (assoc-ref opts 'substitutes?)
                                              #:verbosity
                                              (assoc-ref opts 'verbosity))
            (parameterize ((%graft? (assq-ref opts 'graft?)))
              (map/accumulate-builds store
                                     (cut deploy-machine* store <>)
                                     machines))))))))
--8<---------------cut here---------------end--------------->8---

So most of them should work, could you confirm?

What --dry-run should do in the case of “guix deploy”?

All the best,
simon