Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hi, recently I rewrote a bit my ugly spacemacs_pkg script [spacemacs_pkg] to get a list of Spacemacs packages and mark those that are maintained by Debian Emacsen team in Debian as done. Switched to parsing use-package declarations, which made it possible to get a list of packages not just in Spacemacs [spacemacs], but also in Doom Emacs [doomemacs]. Also, added some jinja2 templating, so now it outputs an HTML rather then DSV (as was required for the team's old wiki). You may look at the output at my page [my-page]. [spacemacs_pkg] https://salsa.debian.org/dogsleg/spacemacs-pkgs [spacemacs] https://github.com/syl20bnr/spacemacs [doomemacs] https://github.com/hlissner/doom-emacs [my-page] https://pimentola.ru/spacemacs/ Later I'll switch to marking as done those packages that have elpa- prefix, so statistics will be a bit better (say, agda2-mode is marked as todo because it is maintained not by the Debian Emacsen team). But I first need to find a better way to get a list of packages in unstable, which will not require changing /etc/apt/source.list and will be able to work automatically. Unfortunately, Spacemacs and Doom Emacs use use-package declarations also for loading built-in packages. Currently, I'm not quite sure what is the best way of excluding the built-in packages from the output of spacemacs_pkgs. Probably, fetching GNU Emacs source code and getting all the filenames in its lisp directory. So, need to figure out what to do. After resolving these difficulties I plan to automatically run the script on one of my server machines, so we'll have a more of less up-to-date todo list concerning packaging Spacemacs and Doom Emacs. Honestly, I don't think it's a good idea to package them as whole, but such a list still can be used as a source of interesting packages which may be added to Debian. If you have any suggestions, please let me know. Comments and patches are welcome. Cheers! Lev
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
27.01.2017 04:24, Sean Whitton пишет: > On Fri, Jan 27, 2017 at 01:10:51AM +0500, Lev Lamberov wrote: >> With up-to-date Spacemacs source it produces a list of 558 packages. >> Please, find the output attached. So, it is ready to put to the team's >> wiki. ;-) > > Done! Cool! Thank you! Probably at some point we will need a script to mark packages already in Debian as DONE. Otherwise task of selecting package from that table to prepare Debian package will be time-consuming. Cheers! Lev signature.asc Description: OpenPGP digital signature
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hello Lev, On Fri, Jan 27, 2017 at 01:10:51AM +0500, Lev Lamberov wrote: > With up-to-date Spacemacs source it produces a list of 558 packages. > Please, find the output attached. So, it is ready to put to the team's > wiki. ;-) Done! -- Sean Whitton signature.asc Description: PGP signature
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hi, 26.01.2017 01:23, Sean Whitton пишет: > We don't need the list of packages to be machine-readable. We just need > it to generate a "to-do list" for pkg-emacsen team members. So how > about outputting it in ikiwiki's table format?[1] Then we can add it to > our team wiki[2] (after enabling the table plug-in). OK, now it outputs (alphabetically ordered) data in ikiwiki's table format, using "|" as separators. The output has the following form: package_name|built-in_status|layers_list With up-to-date Spacemacs source it produces a list of 558 packages. Please, find the output attached. So, it is ready to put to the team's wiki. ;-) >> By the way, I think I've spotted that possibly not all packages are >> declared in the mentioned declarations. So, I also plan to write >> functions to "parse" (use-package `pkg-name' [...]) declarations in >> Spacemacs source code. > > Good. It sounds we need to add those to our list. Next I'll check my hypothesis about it. Cheers! Lev [[!table data=""" Package|Built-in|Layers 2048-game|False|+fun/games abbrev|True|+distributions/spacemacs-base ac-ispell|False|+completion/auto-completion ace-jump-helm-line|False|+completion/helm ace-pinyin|False|+intl/chinese ace-window|False|+distributions/spacemacs-base adaptive-wrap|False|+spacemacs/spacemacs-editing-visual adoc-mode|False|+lang/asciidoc afternoon-theme|False|+themes/themes-megapack alchemist|False|+lang/elixir alect-themes|False|+themes/themes-megapack ample-theme|False|+themes/themes-megapack ample-zen-theme|False|+themes/themes-megapack anaconda-mode|False|+lang/python ansi-colors|True|+spacemacs/spacemacs-ui-visual ansible-doc|False|+tools/ansible anti-zenburn-theme|False|+themes/themes-megapack apropospriate-theme|False|+themes/themes-megapack archive-mode|True|+distributions/spacemacs-base arduino-mode|False|+lang/extra-langs asm-mode|False|+lang/asm async|False|+distributions/spacemacs-bootstrap auctex|False|+lang/latex auctex-latexmk|False|+lang/latex auto-compile|False|+lang/emacs-lisp auto-complete|False|+completion/auto-completion auto-dictionary|False|+checkers/spell-checking auto-highlight-symbol|False|+spacemacs/spacemacs-editing-visual, +completion/ivy, +completion/helm auto-yasnippet|False|+completion/auto-completion avy|False|+spacemacs/spacemacs-editing badwolf-theme|False|+themes/themes-megapack bind-key|False|+distributions/spacemacs-bootstrap bind-map|False|+distributions/spacemacs-bootstrap birds-of-paradise-plus-theme|False|+themes/themes-megapack bookmark|True|+distributions/spacemacs-base, +completion/helm bracketed-paste|False|+spacemacs/spacemacs-editing bubbleberry-theme|False|+themes/themes-megapack bundler|False|+lang/ruby busybee-theme|False|+themes/themes-megapack cargo|False|+lang/rust centered-buffer-mode|False|+distributions/spacemacs-base centered-cursor|False|+spacemacs/spacemacs-ui cherry-blossom-theme|False|+themes/themes-megapack chinese-pyim|False|+intl/chinese chinese-wbim|False|+intl/chinese chruby|False|+lang/ruby cider|False|+lang/clojure cider-eval-sexp-fu|False|+lang/clojure clean-aindent-mode|False|+spacemacs/spacemacs-editing clj-refactor|False|+lang/clojure clojure-mode|False|+lang/clojure clojure-snippets|False|+lang/clojure clues-theme|False|+themes/themes-megapack cmm-mode|False|+lang/haskell coffee-mode|False|+lang/javascript color-identifiers-mode|False|+themes/colors color-theme-sanityinc-solarized|False|+themes/themes-megapack color-theme-sanityinc-tomorrow|False|+themes/themes-megapack column-enforce-mode|False|+spacemacs/spacemacs-editing-visual comint|True|+tools/shell common-lisp-snippets|False|+lang/common-lisp company|False|+os/nixos, +completion/auto-completion, +tools/shell, +tools/puppet, +tools/finance, +tools/ansible, +emacs/org, +lang/racket, +lang/ocaml, +lang/clojure, +lang/haskell, +lang/java, +lang/html, +lang/ruby, +lang/lua, +lang/latex, +lang/agda, +lang/csharp, +lang/erlang, +lang/shell-scripts, +lang/scheme, +lang/javascript, +lang/emacs-lisp, +lang/php, +lang/d, +lang/go, +lang/typescript, +lang/rust, +lang/markdown, +lang/python, +lang/elixir, +lang/elm, +chat/erc, +chat/rcirc, +frameworks/react company-anaconda|False|+lang/python company-auctex|False|+lang/latex company-cabal|False|+lang/haskell company-dcd|False|+lang/d company-emacs-eclim|False|+lang/java company-emoji|False|+emacs/org, +fun/emoji, +lang/markdown, +chat/erc, +chat/rcirc company-ghc|False|+lang/haskell company-ghci|False|+lang/haskell company-go|False|+lang/go company-nixos-options|False|+os/nixos company-quickhelp|False|+completion/auto-completion, +lang/racket company-shell|False|+lang/shell-scripts company-statistics|False|+completion/auto-completion company-tern|False|+lang/javascript, +frameworks/react company-web|False|+lang/html company-ycmd|False|+tools/ycmd conf-mode|True|+distributions/spacemacs-base counsel|False|+completion/ivy counsel-dash|False|+tools/dash counsel-projectile|False|+completion/ivy csharp-mode|False|+lang/csharp css-mode|Fal
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Dear Lev, On Wed, Jan 25, 2017 at 11:49:23PM +0500, Lev Lamberov wrote: > I've wrote a small and ugly Python script which somewhat "parses" (setq > *-packages [...]) declarations from Spacemacs source code and > (currently) creates a list of dictionaries with package names as keys > and booleans (representing built-in status of a given package as defined > in Spacemacs source code) as values. You can find it in my repository [0]. > > If you find the script somehow useful, feel free to contribute and/or > comment on it. For example, I'm not sure about the format of output. And > should it be the output for the whole Spacemacs source code without > duplicates, or a bunch of separate outputs for each packages.el file? Thank you for working on this. We don't need the list of packages to be machine-readable. We just need it to generate a "to-do list" for pkg-emacsen team members. So how about outputting it in ikiwiki's table format?[1] Then we can add it to our team wiki[2] (after enabling the table plug-in). > By the way, I think I've spotted that possibly not all packages are > declared in the mentioned declarations. So, I also plan to write > functions to "parse" (use-package `pkg-name' [...]) declarations in > Spacemacs source code. Good. It sounds we need to add those to our list. [1] https://ikiwiki.info/ikiwiki/directive/table/ [2] http://pkg-emacsen.alioth.debian.org/spacemacs/ -- Sean Whitton signature.asc Description: PGP signature
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hi Axel and Sean, I've wrote a small and ugly Python script which somewhat "parses" (setq *-packages [...]) declarations from Spacemacs source code and (currently) creates a list of dictionaries with package names as keys and booleans (representing built-in status of a given package as defined in Spacemacs source code) as values. You can find it in my repository [0]. If you find the script somehow useful, feel free to contribute and/or comment on it. For example, I'm not sure about the format of output. And should it be the output for the whole Spacemacs source code without duplicates, or a bunch of separate outputs for each packages.el file? By the way, I think I've spotted that possibly not all packages are declared in the mentioned declarations. So, I also plan to write functions to "parse" (use-package `pkg-name' [...]) declarations in Spacemacs source code. Cheers! Lev [0] https://github.com/dogsleg/spacemacs-pkgs signature.asc Description: OpenPGP digital signature
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hello, On Sun, Jun 26, 2016 at 12:02:43PM +0200, Axel Beckert wrote: > The command as on the wiki didn't work as it misses the trailing ";" > for the command and if that's added, only lists tons of "TODO". The 'TODO' meant that I hadn't finished figuring out the command :P Some `packages.el' files specify more than one package to be downloaded from MELPA. For example, in layers/+lang/elm/package.el: (setq elm-packages '( company elm-mode flycheck flycheck-elm popwin smartparens )) I'd started writing lots of regexps to get the list of packages out but I think it might be better just to invoke Emacs to, you know, parse the lisp.. > According to "wc -l" this are 111 packages. From the logs of my first > spacemacs run, it only seems to have downloaded 69 of them. And I > don't have all available *-el and elpa-* packages installed on that > system. So I also checked .emacs.d/elpa where it seems to store the > downloaded packages: I'm not sure whether this is a viable alternative to my approach or not -- I don't think Spacemacs downloads all the packages on a first run. I think that some layers are considered 'optional'. If there was some way to know that we had activated every single layer, and we did it in a clean sid chroot, it would give the correct list. We could make a team decision to package spacemacs once all the compulsory dependencies are packaged, or we could wait until we have the packages that every single layer requires. -- Sean Whitton signature.asc Description: PGP signature
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hi Sean, Sean Whitton wrote: > First we have to package all the MELPA packages it pulls in, as you > point out. I started a wiki page to list them all to keep track of > that: > > http://pkg-emacsen.alioth.debian.org/spacemacs/ I don't seem to have write permissions there, so I put the list here. The command as on the wiki didn't work as it misses the trailing ";" for the command and if that's added, only lists tons of "TODO". So I used that one: $ find layers -name "packages.el" -print layers/osx/packages.el layers/jabber/packages.el layers/finance/packages.el layers/+email/mu4e/packages.el layers/+email/gnus/packages.el layers/speed-reading/packages.el layers/spotify/packages.el layers/+tools/vagrant/packages.el layers/+tools/command-log/packages.el layers/+tools/ranger/packages.el layers/+tools/fasd/packages.el layers/+tools/pandoc/packages.el layers/+tools/wakatime/packages.el layers/+tools/ycmd/packages.el layers/+tools/tmux/packages.el layers/+tools/evernote/packages.el layers/+tools/dash/packages.el layers/+tools/elfeed/packages.el layers/colors/packages.el layers/auto-completion/packages.el layers/spell-checking/packages.el layers/+vim/vim-powerline/packages.el layers/+vim/vinegar/packages.el layers/+vim/evil-commentary/packages.el layers/+vim/evil-snipe/packages.el layers/+vim/evil-cleverparens/packages.el layers/+vim/vim-empty-lines/packages.el layers/ibuffer/packages.el layers/+source-control/version-control/packages.el layers/+source-control/git/packages.el layers/+source-control/github/packages.el layers/+source-control/perforce/packages.el layers/+window-management/eyebrowse/packages.el layers/+window-management/spacemacs-layouts/packages.el layers/+config-files/puppet/packages.el layers/+config-files/terraform/packages.el layers/+config-files/ansible/packages.el layers/+config-files/salt/packages.el layers/+config-files/dockerfile/packages.el layers/+lang/java/packages.el layers/+lang/erlang/packages.el layers/+lang/ipython-notebook/packages.el layers/+lang/rust/packages.el layers/+lang/yaml/packages.el layers/+lang/haskell/packages.el layers/+lang/markdown/packages.el layers/+lang/purescript/packages.el layers/+lang/ess/packages.el layers/+lang/lua/packages.el layers/+lang/javascript/packages.el layers/+lang/octave/packages.el layers/+lang/php/packages.el layers/+lang/elixir/packages.el layers/+lang/clojure/packages.el layers/+lang/d/packages.el layers/+lang/windows-scripts/packages.el layers/+lang/asciidoc/packages.el layers/+lang/extra-langs/packages.el layers/+lang/emacs-lisp/packages.el layers/+lang/c-c++/packages.el layers/+lang/sql/packages.el layers/+lang/fsharp/packages.el layers/+lang/ocaml/packages.el layers/+lang/vimscript/packages.el layers/+lang/shell-scripts/packages.el layers/+lang/idris/packages.el layers/+lang/sml/packages.el layers/+lang/typescript/packages.el layers/+lang/common-lisp/packages.el layers/+lang/latex/packages.el layers/+lang/go/packages.el layers/+lang/scala/packages.el layers/+lang/swift/packages.el layers/+lang/ruby/packages.el layers/+lang/elm/packages.el layers/+lang/csharp/packages.el layers/+lang/racket/packages.el layers/+lang/autohotkey/packages.el layers/+lang/python/packages.el layers/+lang/html/packages.el layers/+lang/nim/packages.el layers/+lang/scheme/packages.el layers/+frameworks/react/packages.el layers/+frameworks/ruby-on-rails/packages.el layers/+frameworks/django/packages.el layers/restclient/packages.el layers/nixos/packages.el layers/+fun/xkcd/packages.el layers/+fun/games/packages.el layers/+fun/selectric/packages.el layers/+fun/emoji/packages.el layers/syntax-checking/packages.el layers/cscope/packages.el layers/typography/packages.el layers/prodigy/packages.el layers/chinese/packages.el layers/search-engine/packages.el layers/geolocation/packages.el layers/org/packages.el layers/semantic/packages.el layers/chrome/packages.el layers/+distribution/spacemacs-base/packages.el layers/+distribution/spacemacs/packages.el layers/smex/packages.el layers/themes-megapack/packages.el layers/gtags/packages.el layers/shell/packages.el layers/deft/packages.el layers/floobits/packages.el layers/+irc/erc/packages.el layers/+irc/rcirc/packages.el According to "wc -l" this are 111 packages. From the logs of my first spacemacs run, it only seems to have downloaded 69 of them. And I don't have all available *-el and elpa-* packages installed on that system. So I also checked .emacs.d/elpa where it seems to store the downloaded packages: …/.emacs.d/elpa $ ls -1d *-*/ ace-jump-helm-line-20160329.1218/ ace-link-20160529.2350/ ace-window-20160225.819/ adaptive-wrap-0.5/ aggressive-indent-20160608.1625/ anzu-20160617.730/ auto-compile-20160424.418/ auto-highlight-symbol-20130313.243/ avy-20160620.1240/ bind-key-20160227.48/ bind-map-20160606.1343/ bracketed-paste-20160407.1648/ buffer-move-20160615.1103/ clean-aindent-mode-20150816.2029/ dash-20160619.611/ define-word-20150709.1223/ diminish-20151215.915/ elisp-slime-nav-20160128.1109/ eval-sexp-fu-201
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hello, First we have to package all the MELPA packages it pulls in, as you point out. I started a wiki page to list them all to keep track of that: http://pkg-emacsen.alioth.debian.org/spacemacs/ -- Sean Whitton signature.asc Description: PGP signature
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Hi, Axel Beckert wrote: > David Bremner wrote in > https://lists.debian.org/debian-emacsen/2015/12/msg3.html: > > What about a script called spacemacs that runs something like > > > > emacs --no-init-file --load /usr/share/emacs/.../spacemacs-init.el > > This sounds like the right approach to me, btw. But there's much more to do if someone wants to get this into Debian: Upon start, spacemacs contacts tons of websites to download additional modules and stuff: >From the *Messages* buffer: […] Loading /home/abe/tmp/spacemacs/.emacs.d/core/core-load-paths.el (source)...done Contacting host: melpa.org:443 Importing package-keyring.gpg...done Contacting host: melpa.org:443 Contacting host: orgmode.org:80 Importing package-keyring.gpg...done Contacting host: orgmode.org:80 Importing package-keyring.gpg...done Contacting host: elpa.gnu.org:443 [2 times] Contacting host: melpa.org:443 Parsing tar file...done […] Done (Total of 2 files compiled, 1 skipped) Contacting host: melpa.org:443 gnutls.c: [0] (Emacs) fatal error: The TLS connection was non-properly terminated. […] For a package, this clearly needs to be disabled (by default at least) and replaced by package dependencies. > There is already something similar in the FAQ at > https://github.com/syl20bnr/spacemacs/blob/master/doc/FAQ.org#try-spacemacs-without-modifying-my-existing-emacs-configuration > but unfortunately it works by modifying $HOME which is definitely the > wrong way for a package. That's the way I tried it out. Regards, Axel -- ,''`. | Axel Beckert , http://people.debian.org/~abe/ : :' : | Debian Developer, ftp.ch.debian.org Admin `. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5 `-| 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE
Bug#828154: RFP: spacemacs -- Emacs configuration to get best of Emacs and Vim
Package: wnpp Severity: wishlist Hi, spacemacs was mentioned on the debian-emacsen list (https://lists.debian.org/debian-emacsen/) multiple times, hence let's make an RFP out of it as that's where people look for it first: * Package name: spacemacs Version : 0.105.21 Upstream Author : Sylvain Benner * URL : http://spacemacs.org/ * License : GPLv3 Programming Lang: Emacs Lisp Description : Emacs configuration to get the best of Emacs and Vim Spacemacs is a new way to experience Emacs -- a sophisticated and polished set-up focused on ergonomics, mnemonics and consistency. Just install it, launch it then press the space bar to explore the interactive list of carefully-chosen key bindings. You can also press the home buffer's [?] button for some great first key bindings to try. Spacemacs can be used naturally by both Emacs and Vim users -- you can even mix the two editing styles. Switching easily between input styles makes Spacemacs a great tool for pair-programming. -- So far for the RFP and potential package description. Here are a few citiations from the debian-emacsen list which show that there is indeed some demand for this package including ideas how it could be formed into a Debian package: Thomas Koch wrote in https://lists.debian.org/debian-emacsen/2015/08/msg2.html: > Has anybody tried spacemacs? > https://github.com/syl20bnr/spacemacs > > Is it good? Would it make sense to try to package it? > > Actually it's a collection of the best emacs modes with an > opinionated config, isn't it? Vincent Bernat wrote in https://lists.debian.org/debian-emacsen/2015/08/msg5.html: > It doesn't seem a fork. Just a bunch of regular Emacs Lisp configuration > files. The installation instructions only say to clone in ~/.emacs.d. David Bremner wrote in https://lists.debian.org/debian-emacsen/2015/12/msg3.html: > Sean Whitton writes: > > Then the question is what to do about init.el. The file is quite short > > [3]. My ideas: > > > > 1. add the (patched) init.el to /usr/share/emacs24/site-lisp and suggest > > in Readme.Debian that the user replace their ~/.emacs.d/init.el with a > > `load-file' call to the Debian spacemacs-init.el. > > > > 2. put the whole (patched) init.el in Readme.Debian and suggest the user > > put it in their home directory > > > > 3. provide a shell script spacemacs-activate which does (1) or (2), > > perhaps backing up/restoring an existing ~/.emacs.d/init.el > > > > Since I'm new to Debian packaging I'd like to get feedback on these > > alternatives before proceeding. > > What about a script called spacemacs that runs something like > > emacs --no-init-file --load /usr/share/emacs/.../spacemacs-init.el This sounds like the right approach to me, btw. > If that worked, then people could switch easily between emacs and > spacemacs, which feels kindof important to me. Yep. There is already something similar in the FAQ at https://github.com/syl20bnr/spacemacs/blob/master/doc/FAQ.org#try-spacemacs-without-modifying-my-existing-emacs-configuration but unfortunately it works by modifying $HOME which is definitely the wrong way for a package. > Again assuming it works, we could also try to upstream such a script, to > reduce the clash between debian and other systems Good idea! Regards, Axel -- ,''`. | Axel Beckert , http://people.debian.org/~abe/ : :' : | Debian Developer, ftp.ch.debian.org Admin `. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5 `-| 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE