syl20bnr / spacemacs

A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
http://spacemacs.org
GNU General Public License v3.0
23.64k stars 4.89k forks source link

I cannot use helm after updating to b071baf25 #13654

Closed v2okimochi closed 4 years ago

v2okimochi commented 4 years ago

Description :octocat:

I cannot use helm after updating to b071baf25

Reproduction guide :beetle:

on b071baf25 (https://github.com/syl20bnr/spacemacs/pull/13645)

Observed behaviour: :eyes: :broken_heart: Not working and following error:

let: Symbol’s value as variable is void: helm-buffer-list-reorder-fn

Expected behaviour: :heart: :smile: I can see files or buffers using helm.

System Info :computer:

Backtrace :paw_prints:

let: Symbol’s value as variable is void: helm-buffer-list-reorder-fn
emacs18 commented 4 years ago

https://github.com/emacs-helm/helm/commit/68b02788214a6dc9c177ef5858dea0667b1aabac introduced the symbol in question 8 days ago. Perhaps you should update helm package to pick up this new code.

v2okimochi commented 4 years ago

I tried update packages (SPC f e U) and it worked on the latest develop branch. Thanks for your advice, and this is not bug. I would like to close issue.

nertpinx commented 4 years ago

Sorry for hijacking this issue, but shouldn't updating the packages (at least those affected by spacemacs update) be part of the initial setup/install? Even if it means listing minimal supported versions for packages somewhere. Or is there a consensus against this?

emacs18 commented 4 years ago

If the following sequence of events occurred, then I don't see how spacemacs can prevent the problem:

How is spacemacs to know to update helm at this point? Remember that MELPA uses universal time of the latest checked in version as the package version string. For example my own package archive has helm-20200612.1437.entry. (I have my own MELPA-like package archive.) The version of helm is the date/time string. However helm-ag-20200601.933.entry (note helm-ag, not helm) file says that helm-ag depends on helm version 2.0! Is 20200612.1437 greater than 2.0? Has the dependency been met?

One side effect of the way MELPA assigns time stamp (the universal time of the latest checked in file) as the package version means that package dependency information may not be exactly correct. First the authors of dependent packages may not have updated dependency information in their own files. Second even if dependency information is correct, that may not matter given how MELPA assigns version numbers.

Should spacemacs simply reinstall all dependent packages when installing any package even if it is not sure that such update is needed? I think that will lead to many unnecessary updating of packages.

nertpinx commented 4 years ago

@emacs18 Sorry, you're right. I haven't thought of the more complex interactions. Updating or reinstalling everything all the time is definitely not something I want spacemacs to do. I'm also not in a position to suggest how to help other users to notice that they might try upgrading the packages as I now know to also update that. If that existed, however, I think it might help in the future so that the user-base happy and staying with spacemacs :wink: Thanks for the insights.

taquangtrung commented 4 years ago

Somehow, I couldn't use (SPC f e U) to update packages since there were some errors that occurred during this update.

My workaround is to delete all helm-* packages in elpa and run Emacs again to install their latest versions.

cd ~/.emacs.d/elpa/26.3/develop
rm -rf helm-*

Then run Emacs again.

ezmiller commented 4 years ago

I also saw this problem and was able to fix it by using @taquangtrung 's solution: https://github.com/syl20bnr/spacemacs/issues/13654#issuecomment-650981724. I could not reinstall helm packages inside emacs because if I tried to do M-x, I go the same error let: Symbol’s value as variable is void: helm-buffer-list-reorder-fn.