> > Then, when I occasionally wished to update org, I would > > > > `cd ~/.emacs.d/org-mode && git pull && make autoloads && make` > > > > Recently I started getting errors invalid-function "org-assert-version". > > > > Upon cursory reading of this thread I guessed that I could fix them by > > adding a `make clean` to my update mantra. > > It should not be necessary and it does not happen on my side (as you can > imagine, I re-compile very often).
Perhap's my issue stems from the particular versions of org I was upgrading between and/or (earlier) poor management of multiple contending org versions (e.g. git head v. melpa v. system). > > Could you provide more details? At this point, I am not seeking to reproduce the issue, but rather to ensure that my current practice is "best" practice, given my aim of staying current with head (understanding and accepting that this may bring its own instabilities). So the details I can provide are probably around how I protect against multiple contending org versions obtain and build org sources load/require/use the built org sources The very first thing in my init.el is intended to help protect against contending org versions: ``` (require 'cl-seq) (delete (car (cl-member "lisp/org" load-path :test #'string-match)) ;; "as extra level of precaution against getting the built-in ;; org-mode, I ensure it never gets loaded" - kudos: ;; https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00130.html load-path) ``` If I want to install the latest org from melpa, I never do this from within an active emacs session but rather from the (linux) command line as: ``` emacs -Q -batch -eval "(progn (require 'package) (package-initialize) (package-refresh-contents) (package-install 'org))" ``` But more often, I strive to stay abreast of developments, and when I see an issue I care about discussed as being addressed with a source code change, I go get it ``` cd ~/.emacs.d/org-mode && git pull && make clean && make autoloads && make PERL5LIB= ``` And then relaunch emacs, where it gets picked up due to: ``` (use-package org ;org-plus-contrib ; instead of org-mode :pin manual :load-path "~/.emacs.d/org-mode/lisp" ... ) ``` ... which occurs very early in my init file (just after bootstrapping package system and latest use-package). So, I've got (again) a working strategy. I'm really wondering if all this is needlessly complex. Anyway, thanks for chiming in!