8000 `forge-post-edit-action` is nil in hooks executing after `forge-create-pullreq-show-diff` when creating a new pull request · Issue #790 · magit/forge · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forge-post-edit-action is nil in hooks executing after forge-create-pullreq-show-diff when creating a new pull request #790
Closed
@pkryger

Description

@pkryger

The documentation for forge-edit-post-hook stipulates that forge-post-edit-action should be set to, for example new-pullreq. However the value of forge-post-edit-action when a hook is executed after forge-create-pullreq-show-diff when creating a new pull request. I expected the value of forge-post-edit-action to be new-pullreq in such a case.

To reproduce, M-x toggle-debug-on-error RET, then evaluate the following snippet

(defun my-hook ()
  (unless (eq forge-edit-post-action 'new-pullreq)
    (error (format "forge-edit-post-action %s current-buffer %s"
                   forge-edit-post-action (current-buffer)))))

(add-hook 'forge-edit-post-hook #'my-hook 99)

and then start creating of a new pull request. The following backtrace is produced:

Debugger entered--Lisp error: (error "forge-edit-post-action nil current-buffer magit-diff(emacs-exordium/master...pkryger/master): .emacs.d")
  transient--exit-and-debug(error (error "forge-edit-post-action nil current-buffer magit-diff(emacs-exordium/master...pkryger/master): .emacs.d"))
  error("forge-edit-post-action nil current-buffer magit-diff(emacs-exordium/master...pkryger/master): .emacs.d")
(if (eq forge-edit-post-action 'new-pullreq) nil (error (format "forge-edit-post-action %s" forge-edit-post-action)))
  my-hook()
  forge--setup-post-buffer(new-pullreq forge--submit-create-pullreq "new-pullreq" "Create new pull-request on %p" ((forge--buffer-base-branch "emacs-exordium/master") (forge--buffer-head-branch "pkryger/master") (forge--buffer-template ((type . forge-pullreq)))))
  #<subr forge-create-pullreq>("pkryger/master" "emacs-exordium/master")
  apply(#<subr forge-create-pullreq> ("pkryger/master" "emacs-exordium/master"))
  #f(compiled-function (fn &rest args) (interactive nil) #<bytecode 0x97e024592f3b852>)(#<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master")
  funcall-interactively(#f(compiled-function (fn &rest args) (interactive nil) #<bytecode 0x97e024592f3b852>) #<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master")
  apply(funcall-interactively #f(compiled-function (fn &rest args) (interactive nil) #<bytecode 0x97e024592f3b852>) (#<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master"))
  #[128 "\302\303\304!\203\13\0\305\202\f\0\306\300\3#\207" [#[385 "\305\306\300\301\303$\216\307\34\302\205\21\0\310\302\311\"\211\205.\0\310\302\312\"\206.\0\310\302\313\"\206.\0\310\1\312\"\206.\0\310\1\313\"\211\203:\0\314\1\5\5#\202>\0\314\4\4\"*\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil #[0 "\300\301!\203\10\0\302\207\303\207" [derived-mode-p forge-repository-list-mode transient-inapt-suffix forge-suffix-active] 2] #[0 "\301\302!\206\f\0\303\10\304\"\305=\207" [transient--prefix derived-mode-p forge-repository-list-mode eieio-oref command forge-topic-menu] 3] nil nil nil nil nil nil nil nil nil "m s" forge-topic-menu transient--do-replace " %k %d" "edit" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil (forge-notifications-mode forge-repository-list-mode) nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-topics-menu] 3] nil nil nil nil nil nil nil nil nil "m f" forge-topics-menu transient--do-replace " %k %d" "filter" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil t forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-dispatch] 3] nil nil nil nil nil nil nil nil nil "m d" forge-dispatch transient--do-replace " %k %d" "dispatch" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-configure] 3] nil nil nil nil nil nil nil nil nil "m c" forge-configure transient--do-replace " %k %d" "configure" nil nil nil) "" "") nil "Menu" nil nil eieio--unbound) #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f f" forge-pull eieio--unbound " %k %d" "all topics" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil #[0 "\300\301!\205\10\0\302 \207" [forge-get-repository :tracked? forge--get-github-repository] 2] nil nil nil nil nil nil nil nil "f t" forge-pull-topic eieio--unbound " %k %d" "one topic" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f n" forge-pull-notifications eieio--unbound " %k %d" "notifications" nil nil nil)) nil "Fetch" nil nil eieio--unbound) #5 #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "/a" forge-add-repository eieio--unbound " %k %d" #[0 "\300\301!\211\203\20\0\302\1\303\"\304=\203\22\0\305\207\306\207" [forge-get-repository :stub? eieio-oref condition :tracked "track some repo" "track this repository"] 4] nil nil nil)) nil #[0 "\300\301!\203\10\0\302\207\303 \204\22\0\304 \203\24\0\305\207\306\207" [forge-get-repository :tracked? "Actions" magit-gitdir forge-repository-at-point "Forge does not yet track this repository" "Not inside a Git repository"] 2] nil nil eieio--unbound)) nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger make-closure #[0 "\303\301\304\"\211\203\20\0\305\306!\210\211\302!\210\210\3029\203(\0\307\302K\300\242\"\211\302K=\204'\0\302\1M\210\210\310\301\304\311#\207" [V0 V1 V2 eieio-oref unwind-suffix transient--debug unwind-command advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice advice* apply] 8 "\n\n(fn FN &rest ARGS)" nil] '#[257 "\305C\306\307\2\300\301\303%\216\310\34\302\205\24\0\311\302\312\"\211\205#\0\311\302\313\"\206#\0\311\1\313\"\211\203.\0\211\314\5\"\2021\0\314\4!)\266\202\1\315\240)\210\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil #[0 "\300\301!\203\10\0\302\207\303\207" [derived-mode-p forge-repository-list-mode transient-inapt-suffix forge-suffix-active] 2] #[0 "\301\302!\206\f\0\303\10\304\"\305=\207" [transient--prefix derived-mode-p forge-repository-list-mode eieio-oref command forge-topic-menu] 3] nil nil nil nil nil nil nil nil nil "m s" forge-topic-menu transient--do-replace " %k %d" "edit" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil (forge-notifications-mode forge-repository-list-mode) nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-topics-menu] 3] nil nil nil nil nil nil nil nil nil "m f" forge-topics-menu transient--do-replace " %k %d" "filter" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil t forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-dispatch] 3] nil nil nil nil nil nil nil nil nil "m d" forge-dispatch transient--do-replace " %k %d" "dispatch" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil forge-suffix-active #[0 "\301\10\302\"\303=\207" [transient--prefix eieio-oref command forge-configure] 3] nil nil nil nil nil nil nil nil nil "m c" forge-configure transient--do-replace " %k %d" "configure" nil nil nil) "" "") nil "Menu" nil nil eieio--unbound) #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f f" forge-pull eieio--unbound " %k %d" "all topics" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil #[0 "\300\301!\205\10\0\302 \207" [forge-get-repository :tracked? forge--get-github-repository] 2] nil nil nil nil nil nil nil nil "f t" forge-pull-topic eieio--unbound " %k %d" "one topic" nil nil nil) #s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "f n" forge-pull-notifications eieio--unbound " %k %d" "notifications" nil nil nil)) nil "Fetch" nil nil eieio--unbound) #5 #s(transient-column #6 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #8 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "/a" forge-add-repository eieio--unbound " %k %d" #[0 "\300\301!\211\203\20\0\302\1\303\"\304=\203\22\0\305\207\306\207" [forge-get-repository :stub? eieio-oref condition :tracked "track some repo" "track this repository"] 4] nil nil nil)) nil #[0 "\300\301!\203\10\0\302\207\303 \204\22\0\304 \203\24\0\305\207\306\207" [forge-get-repository :tracked? "Actions" magit-gitdir forge-repository-at-point "Forge does not yet track this repository" "Not inside a Git repository"] 2] nil nil eieio--unbound)) nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger t make-closure #[0 "\300\242\2052\0\304\302\305\"\211\203\25\0\306\307!\210\211\303!\210\210\3039\203-\0\310\303K\301\242\"\211\303K=\204,\0\303\1M\210\210\311\302\305\312#\207" [V0 V1 V2 V3 eieio-oref unwind-suffix transient--debug unwind-interactive advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice* advice-eval-interactive-spec nil] 8 "\n\n(fn SPEC)"] apply called-interactively-p any funcall-interactively funcall] 5 cconv--interactive-helper](#<subr forge-create-pullreq> "pkryger/master" "emacs-exordium/master")
  apply(#[128 "\302\303\304!\203\13\0\305\202\f\0\306\300\3#\207" [#[385 "\305\306\300\301\303$\216\307\34\302\205\21\0\310\302\311\"\211\205.\0\310\302\312\"\206.\0\310\302\313\"\206.\0\310\1\312\"\206.\0\310\1\313\"\211\203:\0\314\1\5\5#\202>\0\314\4\4\"*\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil ... nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger make-closure #[0 "\303\301\304\"\211\203\20\0\305\306!\210\211\302!\210\210\3029\203(\0\307\302K\300\242\"\211\302K=\204'\0\302\1M\210\210\310\301\304\311#\207" [V0 V1 V2 eieio-oref unwind-suffix transient--debug unwind-command advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice advice* apply] 8 "\n\n(fn FN &rest ARGS)" nil] '#[257 "\305C\306\307\2\300\301\303%\216\310\34\302\205\24\0\311\302\312\"\211\205#\0\311\302\313\"\206#\0\311\1\313\"\211\203.\0\211\314\5\"\2021\0\314\4!)\266\202\1\315\240)\210\207" [(#0) #s(transient-prefix #s(transient-prefix eieio--unbound forge-dispatch eieio--unbound eieio--unbound eieio--unbound eieio--unbound nil nil nil 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) nil) forge-dispatch 4 eieio--unbound nil eieio--unbound nil nil (nil) 0 nil nil nil nil nil transient--do-call eieio--unbound t forge--menu-environment nil eieio--unbound nil eieio--unbound nil (21 21 21 21) transient--post-exit) #s(transient-suffix #s(transient-column #s(transient-columns nil 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil ... nil nil nil nil eieio--unbound) 1 #[0 "\300\301!\207" [forge-get-repository :tracked?] 2] nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil (#s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c d" forge-create-discussion eieio--unbound " %k %d" "discussion" nil nil nil) #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c i" forge-create-issue eieio--unbound " %k %d" "issue" nil nil nil) #4 #s(transient-suffix #5 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c f" forge-fork eieio--unbound " %k %d" "fork or remote" nil nil nil)) nil "Create" nil nil eieio--unbound) 1 nil nil nil nil nil nil nil nil nil transient-inapt-suffix nil nil nil nil nil nil nil nil nil nil "c p" forge-create-pullreq eieio--unbound " %k %d" "pull-request" nil nil nil) forge-create-pullreq debugger t make-closure #[0 "\300\242\2052\0\304\302\305\"\211\203\25\0\306\307!\210\211\303!\210\210\3039\203-\0\310\303K\301\242\"\211\303K=\204,\0\303\1M\210\210\311\302\305\312#\207" [V0 V1 V2 V3 eieio-oref unwind-suffix transient--debug unwind-interactive advice--remove-function eieio-oset nil] 4] transient--exit-and-debug eieio-oref parent advice* advice-eval-interactive-spec nil] 8 "\n\n(fn SPEC)"] apply called-interactively-p any funcall-interactively funcall] 5 cconv--interactive-helper] #<subr forge-create-pullreq> ("pkryger/master" "emacs-exordium/master"))
  forge-create-pullreq("pkryger/master" "emacs-exordium/master")
  funcall-interactively(forge-create-pullreq "pkryger/master" "emacs-exordium/master")
  command-execute(forge-create-pullreq)

The output of M-x magit-version RET

Magit 20250605.1750 [>= 20250605.1750], Transient 20250609.1609, Forge 20250609.1016, Git 2.49.0, Emacs 30.1.90, darwin

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0