emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Autoload `org-assert-version' and remove org-loaddefs.el


From: Kyle Meyer
Subject: Re: [PATCH] Autoload `org-assert-version' and remove org-loaddefs.el
Date: Thu, 01 Dec 2022 22:38:03 -0500

Bastien writes:

> Some users reported an (invalid-function org-assert-version) error
> when installing Org from ELPA:
>
> https://lists.sr.ht/~bzg/emacsfr/%3Cd091463e1615422eb00070727d6a094ec0ae3c73.camel%40adocentyn.io%3E
> https://www.reddit.com/r/emacs/comments/z7qulo/comment/iyd9vam/?context=3
>
> This patch autoloads `org-assert-version'.

I don't understand the rationale behind this.  Every spot that calls
org-assert-version is preceded by a line that requires org-macs, so
isn't this error likely due to a mixed installation/load-path issue
where the wrong/older org-macs is taking precedence?

> It also removes the ;; generated-autoload-file: "org-loaddefs.el"
> footer in all files and let Make create org-autoloads.el instead.

I'm worried with how this will play with the Org bundled with Emacs.
The autoloads that are now written to lisp/org/org-loaddefs.el will
instead pollute the top-level lisp/loaddefs.el.

When I tested this out in the Emacs repo, running `make` shows many
lines of

    WARNING: No org-autoloads.el file could be found from where org.el
    is loaded.

and

    You need to run "make" or "make autoloads" from Org lisp directory

during the build.  And loading/using Org shows the same.

> Before the patch, installing from ELPA creates both org-loaddefs.el
> and org-autoloads.el, which is confusing.

Hmm, isn't this in line with the lisp/org-loaddefs.el and
lisp/loaddefs.el split that happens for the Emacs repo?

A similar split is used other packages in the Emacs repo as well:

    $ find lisp | grep '\-loaddefs.el' | head
    lisp/ps-print-loaddefs.elc
    lisp/org/org-loaddefs.el
    lisp/org/org-loaddefs.elc
    lisp/net/tramp-loaddefs.el
    lisp/net/tramp-loaddefs.elc
    lisp/calc/calc-loaddefs.el
    lisp/calc/calc-loaddefs.elc
    lisp/textmodes/reftex-loaddefs.el
    lisp/textmodes/reftex-loaddefs.elc
    lisp/textmodes/texinfo-loaddefs.elc

    $ find lisp | grep -c '\-loaddefs.el'
    29
    $ find lisp | grep -c '\-autoloads.el'
    0

And with the port of Emacs's 2682ea1b3 (Org commit 19c3969e7,
2022-10-04), there's also one spot that uses ;;;###org-autoload, which
tells loaddefs-gen.el to direct the autoload to org-loaddefs.el.

> Unless anyone objects, I'll install this patch in the bugfix branch
> tomorrow and release 9.6.1.

I think as is the patch would cause issues, and more generally I'm not
convinced we should be moving away from having an org-loaddefs.el file.
I'm also concerned about this sort of tree-wide change in a patch
release that will be synced to the emacs-29 branch.

Thanks for posting this for discussion, and please let me know if I'm
mistaken about the interaction with the Emacs repo.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]