All Projects → quelpa → quelpa-use-package

quelpa / quelpa-use-package

Licence: GPL-3.0 License
Emacs quelpa handler for use-package

Programming Languages

emacs lisp
2029 projects
shell
77523 projects

Projects that are alternatives of or similar to quelpa-use-package

understanding-the-python-ecosystem
This project focuses on understanding the language ecosystem
Stars: ✭ 68 (-37.04%)
Mutual labels:  package-manager
lfs-me
Linux From Scratch made ( more ) easy. A simple, fakeroot based, package manager for LFS heavily inspired by Archlinux' package management.
Stars: ✭ 67 (-37.96%)
Mutual labels:  package-manager
minepkg
Manage Minecraft mods with ease.
Stars: ✭ 38 (-64.81%)
Mutual labels:  package-manager
packagehub
An extension for displaying dependencies of projects on GitHub
Stars: ✭ 71 (-34.26%)
Mutual labels:  package-manager
organon
This program focuses on automating the download, installation and compilation of pentest tools from source
Stars: ✭ 36 (-66.67%)
Mutual labels:  package-manager
hermit
Hermit manages isolated, self-bootstrapping sets of tools in software projects.
Stars: ✭ 312 (+188.89%)
Mutual labels:  package-manager
piu
Cross platform package manager wrapper
Stars: ✭ 33 (-69.44%)
Mutual labels:  package-manager
cpm
🌵 A wrapper for package managers to make them consistent for those of us who are lazy.
Stars: ✭ 52 (-51.85%)
Mutual labels:  package-manager
mcpkg
Package manager for Minecraft resource packs, datapacks and crafting tweaks, wrapped around vanillatweaks.net
Stars: ✭ 15 (-86.11%)
Mutual labels:  package-manager
melody
📦 Fast and reliable dependency management for Go ♫
Stars: ✭ 79 (-26.85%)
Mutual labels:  package-manager
avsrepo
A simple package repository for AviSynth+ https://forum.doom9.org/showthread.php?t=175822
Stars: ✭ 15 (-86.11%)
Mutual labels:  package-manager
jacli
Java Command Line Interface
Stars: ✭ 29 (-73.15%)
Mutual labels:  package-manager
crosware
Tools, things, stuff, miscellaneous, etc., for Chrome OS / Chromium OS
Stars: ✭ 36 (-66.67%)
Mutual labels:  package-manager
inqlude
Command line client for independent Qt library archive
Stars: ✭ 30 (-72.22%)
Mutual labels:  package-manager
paket
A simple and fast package manager for the Fish shell written in Rust. 🐠
Stars: ✭ 31 (-71.3%)
Mutual labels:  package-manager
winget-create
The Windows Package Manager Manifest Creator command-line tool (aka wingetcreate)
Stars: ✭ 228 (+111.11%)
Mutual labels:  package-manager
domy
Custom Elements Storage
Stars: ✭ 77 (-28.7%)
Mutual labels:  package-manager
nest
Raven's package manager
Stars: ✭ 22 (-79.63%)
Mutual labels:  package-manager
npm-yarn-benchmark
Bash script for comparing NPM and Yarn performance
Stars: ✭ 42 (-61.11%)
Mutual labels:  package-manager
ansible-apt
Ansible role to manage packages and up(date|grade)s in Debian-like systems
Stars: ✭ 21 (-80.56%)
Mutual labels:  package-manager

quelpa-use-package

Build Status MELPA MELPA Stable

If you are using use-package (which can help to simplify your .emacs) you can use the quelpa handler provided by quelpa-use-package.

Installation

Requirements: Emacs 25.1

Assuming you have bootstrapped quelpa, install quelpa-use-package (which installs use-package as a dependency) and require the library:

(quelpa
 '(quelpa-use-package
   :fetcher git
   :url "https://github.com/quelpa/quelpa-use-package.git"))
(require 'quelpa-use-package)

Usage

After that it is possible to call use-package with the :quelpa keyword:

;; installs abc-mode with quelpa
(use-package abc-mode :quelpa)

;; does the same (`t' is optional)
(use-package abc-mode :quelpa t)

;; again... (if the package would have another name)
(use-package abc-mode :quelpa abc-mode)

;; passes upgrade parameter to quelpa
(use-package abc-mode :quelpa (:upgrade t))

;; uses the given recipe
(use-package abc-mode
  :quelpa (abc-mode :fetcher github :repo "mkjunker/abc-mode"))

;; recipe with plist arguments
(use-package abc-mode
  :quelpa ((abc-mode :fetcher github :repo "mkjunker/abc-mode") :upgrade t))

The quelpa handler is compatible with MELPA's recipe format. You may want to check the optional properties not mentioned above.

Using quelpa with :ensure

To make :ensure t use quelpa instead of package.el set the use-package-ensure-function in your init file:

(setq use-package-ensure-function 'quelpa)

After that:

(use-package abc-mode :ensure t)

will install abc-mode with quelpa.

And if you enable use-package-always-ensure:

(setq use-package-always-ensure t)

then

(use-package abc-mode)

will install abc-mode with quelpa.

Conditional execution

Note that the :quelpa keyword is inserted after :if, :when, :unless and :requires so that you can make the installation of a package depend on some requirement, for example:

(use-package magit-filenotify
  :when (fboundp 'file-notify-add-watch)
  :quelpa (magit-filenotify :fetcher github :repo "magit/magit-filenotify")

In this case magit-filenotify is only installed if the function file-notify-add-watch is bound.

Likewise you can use :requires to make the installation depend on a feature being available:

(use-package magit-filenotify
  :requires filenotify
  :quelpa (magit-filenotify :fetcher github :repo "magit/magit-filenotify"))

Overriding use-package-always-ensure

To install some packages with quelpa but use use-package-always-ensure to install all others from an ELPA repo :ensure needs to be disabled if the :quelpa keyword is found.

quelpa-use-package provides an advice for this purpose which can be activated thus:

(quelpa-use-package-activate-advice)

To disable it again you can use:

(quelpa-use-package-deactivate-advice)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].