emacs-orgmode
[Top][All Lists]
Advanced

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

RE: org-assert-version considered harmful


From: Cook, Malcolm
Subject: RE: org-assert-version considered harmful
Date: Wed, 2 Nov 2022 20:42:15 +0000

> > 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!

reply via email to

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