I install org-plus-contrib the usual way you describe in the readme. However it seems that if another package depends on org straight will try to install that package. This crashes my emacs for some reason (at least the last thing I see is building org... in the minibuffer).
Can I convince straight that org-plus-contrib really is a superset of org dependency and thus should satisfy it?
OK, so when I put this at the beginning of my init file it doesn't crash
So basically I'm building both as the first thing in my setup.
(my-with-elapsed-timer "setup org-plus-contrib"
(require 'subr-x)
(straight-use-package 'git)
(defun org-git-version ()
"The Git version of org-mode.
Inserted by installing org-mode or when a release is made."
(require 'git)
(let ((git-repo (expand-file-name
"straight/repos/org/" user-emacs-directory)))
(string-trim
(git-run "describe"
"--match=release\*"
"--abbrev=6"
"HEAD"))))
(defun org-release ()
"The release version of org-mode.
Inserted by installing org-mode or when a release is made."
(require 'git)
(let ((git-repo (expand-file-name
"straight/repos/org/" user-emacs-directory)))
(string-trim
(string-remove-prefix
"release_"
(git-run "describe"
"--match=release\*"
"--abbrev=0"
"HEAD")))))
(provide 'org-version)
(straight-use-package 'org-plus-contrib)
(straight-use-package 'org)
)
I'm afraid I can't say much on the crash without more debugging information, like for example a minimal init-file which demonstrates the behavior :/ (you may want to open a separate issue for that, so it doesn't get lost in the org/org-plus-contrib discussion)
As for making sure org-plus-contrib satisfies org, unfortunately the reason that package.el doesn't encounter this problem is quite dirty: it simply fails to do any sort of dependency resolution at all on org since it considers Org to be "built-in".
So I think the correct solution is
(straight-use-package 'org-plus-contrib)
(straight-use-package '(org :local-repo nil))
Or:
(straight-use-package 'org-plus-contrib)
(straight-use-package '(org :type built-in))
But perhaps we should add some functionality so that the dependency information is preserved:
(straight-use-package 'org-plus-contrib)
(straight-use-package '(org :type provided :by org-plus-contrib))
Or perhaps alternately, and even better:
(straight-use-package
'(org-plus-contrib
:repo "https://code.orgmode.org/bzg/org-mode.git"
:local-repo "org"
:files (:defaults "contrib/lisp/*.el")
:includes (org)))
See also #116 on making that last one prettier:
(straight-use-package '(org-plus-contrib :includes (org)))
(straight-use-package '(org-plus-contrib :includes (org)))
Should work as of #675
Most helpful comment
I'm afraid I can't say much on the crash without more debugging information, like for example a minimal init-file which demonstrates the behavior :/ (you may want to open a separate issue for that, so it doesn't get lost in the
org/org-plus-contribdiscussion)As for making sure
org-plus-contribsatisfiesorg, unfortunately the reason thatpackage.eldoesn't encounter this problem is quite dirty: it simply fails to do any sort of dependency resolution at all onorgsince it considers Org to be "built-in".So I think the correct solution is
Or:
But perhaps we should add some functionality so that the dependency information is preserved:
Or perhaps alternately, and even better:
See also #116 on making that last one prettier: