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

Running with dotspacemacs-configuration-layers 'all [Collecting bugs] #6167

Closed JAremko closed 8 years ago

JAremko commented 8 years ago

I'm trying to run Spacemacs with dotspacemacs-configuration-layers 'all and dotspacemacs-enable-lazy-installation 'unused and this is what makes my life hard:


ranger spc a r throws error:

Description :octocat:

Error (probably due to missing fasd) executable + some other obscure stuff.

Reproduction guide :beetle:

(rebox floobits spacemacs-editing spacemacs-editing-visual spacemacs-completion spacemacs-ui-visual spacemacs-org spacemacs-evil spacemacs-ui spacemacs-language spacemacs-misc spacemacs-layouts syntax-checking spell-checking nixos osx gtags cscope react django ruby-on-rails bepo nlinum spacemacs spacemacs-bootstrap spacemacs-base erc jabber rcirc dockerfile systemd salt ansible nginx terraform puppet cfengine smex ibuffer typography better-defaults semantic org vim-powerline evil-snipe vinegar vim-empty-lines evil-cleverparens evil-commentary selectric games emoji xkcd themes-megapack colors theming perforce github version-control git chinese latex clojure typescript vimscript emacs-lisp haskell windows-scripts java faust nim sql asciidoc shell-scripts ess scheme go ipython-notebook plantuml bibtex common-lisp javascript html lua racket yaml ruby elm sml extra-langs csharp rust fsharp csv d purescript graphviz python idris agda erlang markdown swift php scala autohotkey c-c++ elixir octave ocaml asm elfeed evernote spotify twitter search-engine wakatime mu4e gnus helm ivy auto-completion ranger finance dash fasd pdf-tools speed-reading deft command-log vagrant restclient chrome imenu-list prodigy shell pandoc ycmd tmux geolocation)

Message :paw_prints:

Fasd executable cannot be found. It is required by `fasd.el'. Cannot add file/directory to the fasd db
Eval error in the `c-lang-defconst' for `c-mode-menu' in php-mode:
byte-code: Cannot open load file: No such file or directory, init

For some reason emacs --debug-init doesn't create backtrace buffer.


Warnings from ocaml agda nixos and pandoc about missing executable files (nixos misses config file) In the case with the dotspacemacs-configuration-layers 'all + dotspacemacs-enable-lazy-installation 'unused when someone just wants to try Spacemacs in all its power and all its glory - I think it will be better to postpone those warnings.


WakaTime decided to ask me for an API key in the seemingly random moment.


WakaTime hangs Spacemacs with Error running timer: wakatime-turn-on: (wrong-type-argument: arrayp nil) probably because I didn't give it the key.


Spacemacs key buffer takes half a screen

http://i.imgur.com/l5QbMrV.png

d12frosted commented 8 years ago

dotspacemacs-configuration-layers 'all

Didn't know about it. How does it behave with some conflicting layers like helm vs ivy?

JAremko commented 8 years ago

@d12frosted so far everything goes :boom: :cry:

StreakyCobra commented 8 years ago

I'm not sure you'll like having the bepo layer enabled :flushed:

JAremko commented 8 years ago

@StreakyCobra Im trying to figure out if dotspacemacs-configuration-layers 'all is a viable option or if it's completely broken and shouldn't be documented. :wink:

d12frosted commented 8 years ago

I honestly don't understand why 'all even exists :D I mean, it sounds terrible :D

JAremko commented 8 years ago

@d12frosted for Travis tests probably. But not sure why it is exposed for users. I'll try to disable stuff until it start to work :smile:

d12frosted commented 8 years ago

@JAremko ah, good point. CI!

JAremko commented 8 years ago

It probably should say that this is a terrible idea https://github.com/syl20bnr/spacemacs/blob/master/core/templates/.spacemacs.template#L17

JAremko commented 8 years ago

@d12frosted

I honestly don't understand why 'all even exists :D I mean, it sounds terrible :D

I think it would be great to have something like 'almost-all for beginners, to discover things. But it should disable conflicting stuff

StreakyCobra commented 8 years ago

I think it would be great to have something like 'almost-all for beginners, to discover things. But it should disable conflicting stuff

This concept is called a distribution :-)

Sounds a nice idea, go ahead and create a "spacemacs-complete" distribution with all non-conflicting layers :-)

IMHO 'all should be removed in documentation

d12frosted commented 8 years ago

Agree about removing from documentation.

P. S. indeed nice idea about distributions :D

On Mon, May 30, 2016 at 3:27 PM Fabien Dubosson notifications@github.com wrote:

I think it would be great to have something like 'almost-all for beginners, to discover things. But it should disable conflicting stuff

This concept is called a distribution https://github.com/syl20bnr/spacemacs/tree/develop/layers/%2Bdistribution :-)

Sounds a nice idea, go ahead and create a "spacemacs-complete" distribution with all non-conflicting layers :-)

IMHO 'all should be removed in documentation

โ€” You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/syl20bnr/spacemacs/issues/6167#issuecomment-222481790, or mute the thread https://github.com/notifications/unsubscribe/AGNNiT4tSXk98tChrgYx628icggfKe9Eks5qGtefgaJpZM4IpvBi .

JAremko commented 8 years ago

In like half a hour of pure pain I have found some stuff that I didn't notice before in Spacemacs that I would like to use. :D

d12frosted commented 8 years ago

Masochism is almost always rewarding :D

TheBB commented 8 years ago

I don't think it's particularly useful for testing either. My vote is to remove this feature altogether.

JAremko commented 8 years ago

Welp. Disabling stuff doesn't go well. Too many glitches :confused:

@syl20bnr do we need spacemacs-complete ? Should it include stuff like bepo?

TheBB commented 8 years ago

https://github.com/syl20bnr/spacemacs/pull/6168

StreakyCobra commented 8 years ago

@JAremko For sure no, bepo shouldn't be part of spacemacs-complete.

Edit: Otherwise there will be only me (and 2 or 3 otherย users) of spacemacs-complete :joy:

JAremko commented 8 years ago

We'll need to fix the warnings for spacemacs-complete I think. If the user will need to install all the executables or sit throughout all the warnings it will defeat the whole purpose :confused:

JAremko commented 8 years ago

Actually it shouldn't be too hard if I check for the executables in the distribution files and silently disable the packages. Sure it should be documented.

syl20bnr commented 8 years ago

Spacemacs grew a lot since the addition of all. The use case for all is in some corporate environments where there is not internet connection, some users wanted to put Spacemacs on an USB stick.

I'm for replacing all by a distribution, but this distribution should be defined smartly without needing us to always keep it up to date. We can do the same thing as in core-configuration-layer.el [1] in its config.el but find a good way to flag the layers we want to exclude from this distribution. It should also not conflict with the wizard which asks the user for helm or ivy, etc....

[1] https://github.com/syl20bnr/spacemacs/blob/develop/core/core-configuration-layer.el#L888-890

d12frosted commented 8 years ago

So... the main point of 'all is to download all packages upfront, isn't it? It's not about layers actually. Why not just add new option called dotspacemacs-download-all-packages or something similar. When it's t we could just loop through all layers and collect huge list of packages which are forcibly installed.

When dotspacemacs-download-all-packages is t orphan packages are not removed.

On Mon, May 30, 2016 at 6:43 PM Sylvain Benner notifications@github.com wrote:

Spacemacs grew a lot since the addition of all. The use case for all is in some corporate environments where there is not internet connection, some users wanted to put Spacemacs on an USB stick.

I'm for replacing all by a distribution, but this distribution should be defined smartly without needing us to always keep it up to date. We can do the same thing as in core-configuration-layer.el [1] in its config.el but find a good way to flag the layers we want to exclude from this distribution. It should also not conflict with the wizard which asks the user for helm or ivy, etc....

[1] https://github.com/syl20bnr/spacemacs/blob/develop/core/core-configuration-layer.el#L888-890

โ€” You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/syl20bnr/spacemacs/issues/6167#issuecomment-222517624, or mute the thread https://github.com/notifications/unsubscribe/AGNNiav8WXSVpvYw5CfM-yDbqS6q7BzIks5qGwW1gaJpZM4IpvBi .

syl20bnr commented 8 years ago

@d12frosted nice analysis :100:

JAremko commented 8 years ago

@syl20bnr We'll need to maintain both documentation and code for spacemacs-complete (to make it as awesome as possible) and it will get outdated anyway. But how about generating spacemacs-complete from a template? We can gather code,settings,docs of all the layers and output it with the templates. For docs we can extract keybindings and descriptions, add space-doc links to the original README.org files. And for the code we can grab all the layers and filter them with the "known conflicts filter" that will choose one layer over another.

On a side note, Can we generate keybinding section in all README.org files form layers definitions? How about configs? They have docstring.

syl20bnr commented 8 years ago

@JAremko I think @d12frosted spotted what we need to do:

syl20bnr commented 8 years ago

There is also the lazy installation of layers now in develop so we don't really need a complete distribution.

JAremko commented 8 years ago

@syl20bnr so it will prompt to install ranger when I press spc a r ? What about things that change look like powerline or the thing that makes buffer list look better? Not sure how it will get loaded also if the user will be constantly prompted to install something :confused: I was thinking about a distribution that can showcase Spacemacs as extensive as possible.

d12frosted commented 8 years ago

Honestly, I can't see how spacemacs-complete can be helpful as a showcase.

I mean, spacemacs-complete would anyway contain layers like haskell or c# (or any other language). So we tell users - if you wish to see Spacemacs in full power - just try using spacemacs-complete. And user is like 'oh well, let's try it'. So user opens C# file. And completion doesn't work. Checking doesn't work. Why? Because user has to install omnisharp server or omnisharp roslyn (which has some dependencies that must be installed manually) and properly set it's path for csharp layer. 'Ok' - user says, 'Let's try it on Haskell'. So user open Haskell source file and... and the experience is far from being perfect. User now needs to install either Haskell Platform, build ghc from sources and install cabal, use stack to install everything or probably Haskell for Mac. Then user salvages that by default haskell layers uses ghc-mod and some other tools that must be also install either by cabal or stack. Total mess.

So user concludes - nothing works. Why should I even bother myself with that thing.

So aside of questionable usefulness there is a question of support. I believe that it would be much harder than supporting enabled layers - user is responsible for what he or she enables. And at least knows how to temporarily disable broken stuff.

@syl20bnr thanks :) I would like to give it a try implementing that way of downloading all the packages. Because actually sometimes I feel the need of it (especially when I am somewhere without i/c).

syl20bnr commented 8 years ago

@JAremko There is a prompt only for file extensions. Any distribution will be opinionated so it is hard to come up with something really useful. Maybe a distribution focused on Vim users and another focused on Emacs users, but still I don't want to overwhelm users with lots of options when starting.

syl20bnr commented 8 years ago

@d12frosted maybe we can merge the option dotspacemacs-delete-orphan-packages, something like: dotspacemacs-download-packages 'used-only|used-and-orphans|all

d12frosted commented 8 years ago

@syl20bnr yeah I like it. Less variables is better. And since dotspacemacs-delete-orphan-packages would be dependent on value of new variable - I think having something like dotspacemacs-download-packages 'used-only|used-and-orphans|all would be better for user experience. Nice idea ๐Ÿ˜ธ

P. S. In any case this feature doesn't clash with discussed distributions.

JAremko commented 8 years ago

@d12frosted Yeah. I think you are right :disappointed: But I have some crazy idea. Really crazy. Like even for me :wink: Not sure if I'll go for it. Not enough time lately.

syl20bnr commented 8 years ago

@JAremko we love your crazy ideas :purple_heart:

@d12frosted to be more specific used-and-keep-orphans is a better variable choice.

d12frosted commented 8 years ago

@JAremko https://github.com/JAremko I don't want you to get wrong impression. I don't want to convince you not do to anything crazy. As Sylvain said - we love your crazy ideas. And when they work as you expect - everyone wins :D So don't stop :D

@Sylvain well, I was always bad at finding names for things. I'll use used-and-keep-orphans as it describes the purpose much better. :D

On Mon, May 30, 2016 at 9:07 PM Sylvain Benner notifications@github.com wrote:

@JAremko https://github.com/JAremko we love your crazy ideas ๐Ÿ’œ

@d12frosted https://github.com/d12frosted to be more specific used-and-keep-orphans is a better variable choice.

โ€” You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/syl20bnr/spacemacs/issues/6167#issuecomment-222535804, or mute the thread https://github.com/notifications/unsubscribe/AGNNiYMLYVc4Zprz0OpkX59j4BzhMMBVks5qGydKgaJpZM4IpvBi .

syl20bnr commented 8 years ago

I implemented the new variable dotspacemacs-download-packages, it replaces dotspacemacs-delete-orphan-packages and all.

Related commit: https://github.com/syl20bnr/spacemacs/commit/60f5a3a

Let me know if it fixes this issue.

syl20bnr commented 8 years ago

Note that all should not be always set in your dotfile because it adds up time to the loading of Emacs (we need to load all the packages.el files of all layers).

So all should be set once to download everything and then you should set it to used-but-keep-unused.

๐Ÿ‘‰ PR welcome to add a command line parameter to set it to all only for the current invokation of Emacs :-)

d12frosted commented 8 years ago

That's nice. So far it's working. Thanks for implementing it.

P. S. installing packages from themes-megapack looks funny.

JAremko commented 8 years ago

@syl20bnr

Note that all should not be always set in your dotfile because it adds up time to the loading of Emacs > (we need to load all the packages.el files of all layers).

Never understood why people care so much about Emacs'es startup time. Normally you will need to start it only once a day. :confused:

I implemented the new variable dotspacemacs-download-packages, it replaces dotspacemacs-delete-orphan-packages and all.

Thanks. Now I can download all the stuff to my docker images to make proper backups.

Let me know if it fixes this issue.

I think it was solved in https://github.com/syl20bnr/spacemacs/commit/d51987f49769fb8c19216d03045492354c3ed06e#diff-411a2969fe619b3c95df8066ba35fe4aL31 :wink:

d12frosted commented 8 years ago

Never understood why people care so much about Emacs'es startup time. Normally you will need to start it only once a day. ๐Ÿ˜•

Or once per month ๐Ÿ’ƒ

But sometimes it's useful to have fast startup. For example, when you change your Emacs configs and you want to check that they work properly on fresh start. And if you mess - you have to start new instance several times until you fix the problem. And this is when I find fast startup so useful.

JAremko commented 8 years ago

@d12frosted nut sure how it is important for end users, but it's a valid point. Btw you can perform testing in parallel with dockerized Emacs.

d12frosted commented 8 years ago

Never used docker :) But if it helps to check such things then I am all for it.

On Tue, May 31, 2016 at 11:55 AM Eugene Yaremenko notifications@github.com wrote:

@d12frosted https://github.com/d12frosted nut sure how it is important for end users, but it's a valid point. Btw you can perform testing in parallel with dockerized Emacs.

โ€” You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/syl20bnr/spacemacs/issues/6167#issuecomment-222630178, or mute the thread https://github.com/notifications/unsubscribe/AGNNiUxq78oY30bPKFQbgLBdWWvaROcuks5qG_eTgaJpZM4IpvBi .