Skip to content
This repository has been archived by the owner on Jan 22, 2024. It is now read-only.

conao3/feather.el

Repository files navigation

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://raw.githubusercontent.com/conao3/files/master/blob/headers/png/feather.el.png https://img.shields.io/github/license/conao3/feather.el.svg?style=flat-square https://img.shields.io/github/tag/conao3/feather.el.svg?style=flat-square https://github.com/conao3/feather.el/workflows/Main%20workflow/badge.svg https://img.shields.io/codacy/grade/1108333059ce4bc7a833a42a4eaf417c.svg?logo=codacy&style=flat-square https://img.shields.io/badge/patreon-become%20a%20patron-orange.svg?logo=patreon&style=flat-square https://img.shields.io/badge/twitter-@conao__3-blue.svg?logo=twitter&style=flat-square https://img.shields.io/badge/chat-on_slack-blue.svg?logo=slack&style=flat-square

Table of Contents

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 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

(leaf feather
  :el-get conao3/feather.el
  :config (feather-mode))

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.

(package-install 'leaf-keywords)
(leaf-keywords-init)

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.

(package-install 'leaf-keywords)
(feather-add-after-installed-hook-sexp leaf-keywords
  (leaf-keywords-init))

However, this is generally cumbersome, so the easiest solution is to use 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.

(leaf leaf-keywordsq
  :feather t
  :config (leaf-keywords-init))

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.

(leaf leaf-keywords
  :ensure t
  :config (leaf-keywords-init))

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://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 Slack if you want a more casual conversation.

Contribution

Feel free to send PR!

License

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

Author

Contributors

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