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]]
- Description [[https://raw.githubusercontent.com/conao3/files/master/blob/feather.el/feather-dashboard-teaser.gif]]
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
featheris available viael-get#+begin_src emacs-lisp (leaf feather :el-get conao3/feather.el :config (feather-mode)) #+end_src -
Usage Just enable
feather-modeand install some package viapackage.el(package-install,list-package,,,) -
Notice
feathersets the advice to runpackage-installasynchronously. That is,package-installreturns 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
- Naoya Yamashita ([[https://github.com/conao3][conao3]])
** Contributors
- Not yet... Now send PR and add your name!!