SystemCrafters/crafted-emacs

Example config doesn't start

sthesing opened this issue · 5 comments

In its current state, a fresh install of rational emacs with the example config doesn't start. Not a good first contact for new users.

Two problems:

  1. the doom-snazzy theme loaded in example-config.el
  2. rational-evil - see #126

Both problems are due to loading out of date releases of emacs-evil and doom-themes respectively.

Possible fixes

1. Theme

The first problem is easily fixed: e.g. by #131

2. Evil

The second problem could be fixed by

  1. convincing the maintainers of the respective packages to issue new versioned releases of their packages
  2. changing the priorities of package repositories in early-config.el:
    • impacts rational-emacs' general policy of handling dependencies and requires a separate discussion.
  3. not loading rational-evil in the example-config
    • no real solution
  4. changing the current function calls in rational-evil to work with the out-of-date version of emacs-evil
    • requires work that no one really benefits from. It is already fixed in newer versions of emacs-evil after all.

Still, it's less than ideal when the first thing new users experience is a failing example config. Ideas?

convincing the maintainers of the respective packages to issue new versioned releases of their packages
probably be the best solution, but it's no quick fix. I opened Release - Version bump for MELPA Stable, NonGNU ELPA emacs-evil/evil#1610 over there.

Yes, this is the best solution, but also agree this is not a quick fix. Thanks for opening an issue over there!

changing the priorities of package repositories in early-config.el

Yes, this is probably sub-optimal. It is a possible solution a user could implement in their own config.

Another solution, probably a better quick-fix solution is to pin the package to a repo, at least until evil makes a release. This is done by (add-to-list 'package-pinned-packages '('evil . "melpa")) in a users early-config.el file or possibly we put it in the rational init files. This just needs to come before the call to package-initialize which is why the suggestion to put it in a users early-config.el file. Perhaps we should add a note about this in the README?

Related comments for this issue are also on #126.

ajxn commented

Actually, commenting out rational-evil would not be to bad solution, at least for me that doesn't use evil-mode.

I don't mind evil-mode added as an option, but I would prefer that the original key bindings would also be default for rational-emacs. And write a note in README about key bindings, that one can choose between default and vi key bindings in an easy way.
But this probably should be another issue?

Actually, commenting out rational-evil would not be to bad solution, at least for me that doesn't use evil-mode.

I agree. I think, at the time the example was originally written, all the modules listed in the example were the only modules we had, so it was showing all of them. Not sure. There are others there I would also drop, but it's just an example.

Another approach would be to put a comment out each require, with an additional "uncomment if you want X features" kind of thing just above it similar to other types of configuration files. I might leave rational-defaults uncommented though.

I don't mind evil-mode added as an option, but I would prefer that the original key bindings would also be default for rational-emacs. And write a note in README about key bindings, that one can choose between default and vi key bindings in an easy way.
But this probably should be another issue?

Perhaps, see also #128 which might be (another) good place to enhance the documentation around this concept.

Opening emacs-evil/evil#1610 worked. They issued a version bump, which has already been propagated to MELPA Stable, not yet to NonGNU ELPA. So, if the package source priorities of MELPA Stable and NonGNU ELPA would be set to equal values, example config would work.

EDIT/Update: It reached ELPA, too. So, as soon as both example configs are up to date with #138, (see #139), new users (hopefully) won't be up for bad surprises when they try rational-emacs with an example config.

With #126, emacs-evil/evil#1610 and #139, users encounter a working example config 🎈 and this can be closed.