README.org

January 22, 2024 ยท View on GitHub

#+author: conao #+date: <2018-12-14 Fri>

DEPRECATED: This package is deprecated. Please use package.el.

Technical Notes: Package maintainers assume that the packages they develop will be installed at run-time with package.el. Therefore, they may ask the user for interactive input during installation. I conclude that this makes headless multiplexing difficult, as it is not known until the actual installation.

[[https://github.com/conao3/feather.el][https://raw.githubusercontent.com/conao3/files/master/blob/headers/png/feather.el.png]] [[https://github.com/conao3/feather.el/blob/master/LICENSE][https://img.shields.io/github/license/conao3/feather.el.svg?style=flat-square]] [[https://github.com/conao3/feather.el/releases][https://img.shields.io/github/tag/conao3/feather.el.svg?style=flat-square]] [[https://github.com/conao3/feather.el/actions][https://github.com/conao3/feather.el/workflows/Main%20workflow/badge.svg]] [[https://app.codacy.com/project/conao3/feather.el/dashboard][https://img.shields.io/codacy/grade/1108333059ce4bc7a833a42a4eaf417c.svg?logo=codacy&style=flat-square]] [[https://www.patreon.com/conao3][https://img.shields.io/badge/patreon-become%20a%20patron-orange.svg?logo=patreon&style=flat-square]] [[https://twitter.com/conao_3][https://img.shields.io/badge/twitter-@conao__3-blue.svg?logo=twitter&style=flat-square]] [[https://join.slack.com/t/conao3-support/shared_invite/enQtNjUzMDMxODcyMjE1LTA4ZGRmOWYwZWE3NmE5NTkyZjk3M2JhYzU2ZmRkMzdiMDdlYTQ0ODMyM2ExOGY0OTkzMzZiMTNmZjJjY2I5NTM][https://img.shields.io/badge/chat-on_slack-blue.svg?logo=slack&style=flat-square]]

  • Table of Contents
  • [[#description][Description]]
  • [[#install][Install]]
  • [[#usage][Usage]]
  • [[#information][Information]]
    • [[#donation][Donation]]
    • [[#community][Community]]
    • [[#contribution][Contribution]]
    • [[#license][License]]
    • [[#author][Author]]
    • [[#contributors][Contributors]]

feather.el is a wrapper for package.el that supports parallel fetching/byte-compiling.

It have already prepared front end for [[https://github.com/conao3/leaf.el][leaf.el]] in leaf-keywword.el, and you can seamlessly manage Emacs packages with feather.el.

When feather-mode is enabled, feather.el advices package-install in package.el. So, all installation using package.el is handled by feather.el.

feather.el is a package.el wrapper that supports parallel fetch/byte-compilation. When feather-mode is enabled, feather.el sets advice to package-install, handles all package installations, and executes them asynchronously. Originally conceived as a completely new package manager, but in the middle of development it was thought that simply handling package-install would be sufficient to achieve the goal, so it provides your Emacs with a powerful asynchronous installation that preserves the package.el experience.

  • Install feather is available via el-get #+begin_src emacs-lisp (leaf feather :el-get conao3/feather.el :config (feather-mode)) #+end_src

  • Usage Just enable feather-mode and install some package via package.el (package-install, list-package,,,)

  • Notice feather sets the advice to run package-install asynchronously. That is, package-install returns the moment it is executed, and the subsequent S-exp is executed (if any). Therefore, the following configuration will result in an error.

#+begin_src emacs-lisp (package-install 'leaf-keywords) (leaf-keywords-init) #+end_src

If you want execute leaf-keywords-init after leaf-keywords is installed as intended, you need to register an S-exp with father. This allows feather to execute the registered S-exp after the package is installed.

#+begin_src emacs-lisp (package-install 'leaf-keywords) (feather-add-after-installed-hook-sexp leaf-keywords (leaf-keywords-init)) #+end_src

However, this is generally cumbersome, so the easiest solution is to use [[https://github.com/conao3/leaf.el][leaf]]. Using the :feather keyword as a trigger, the S-exp that should be executed after the package is installed is automatically registered with the feather.

#+begin_src emacs-lisp (leaf leaf-keywordsq :feather t :config (leaf-keywords-init)) #+end_src

If you want to switch to a feather install for all the :ensure keywords, you can do so by setting leaf-alias-keyword-alist. With leaf-alias-keyword-alist is ((:ensure . :feather)), the leaf block below has the same meaning as a leaf block using the :feather keyword.

#+begin_src emacs-lisp (leaf leaf-keywords :ensure t :config (leaf-keywords-init)) #+end_src

  • Information ** Donation I love OSS and I am dreaming of working on it as full-time job.

With your support, I will be able to spend more time at OSS!

[[https://www.patreon.com/conao3][https://c5.patreon.com/external/logo/become_a_patron_button.png]]

** Community All feedback and suggestions are welcome!

You can use github issues, but you can also use [[https://join.slack.com/t/conao3-support/shared_invite/enQtNjUzMDMxODcyMjE1LTA4ZGRmOWYwZWE3NmE5NTkyZjk3M2JhYzU2ZmRkMzdiMDdlYTQ0ODMyM2ExOGY0OTkzMzZiMTNmZjJjY2I5NTM][Slack]] if you want a more casual conversation.

** Contribution Feel free to send PR!

** License #+begin_example General Public License Version 3 (GPLv3) Copyright (c) Naoya Yamashita - https://conao3.com https://github.com/conao3/feather.el/blob/master/LICENSE #+end_example

** Author

** Contributors

  • Not yet... Now send PR and add your name!!