elpaca
An elisp package manager (by progfolio)
melpa
Recipes and build machinery for the biggest Emacs package repo (by melpa)
elpaca | melpa | |
---|---|---|
29 | 104 | |
537 | 2,683 | |
- | 0.7% | |
9.5 | 9.7 | |
4 days ago | 4 days ago | |
Emacs Lisp | Emacs Lisp | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
elpaca
Posts with mentions or reviews of elpaca.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-01-24.
-
Zed is now open source
Elpaca [1] does not do this. I use it and it works a treat.
1: https://github.com/progfolio/elpaca
- Package contribution workflow
-
Returning emacs user - what packages are common now?
As others have said your packages work well and should still be widely supported. use-package has been blessed by the maintainers of emacs and will be a default package when Emacs 29 is released. If you are looking for another package manager /u/nv-elisp 's https://github.com/progfolio/elpaca would be a good one to checkout.
-
If you like Straight, you should try Elpaca
One of my biggest challenges with it is for packages that have extensions. Where they just work with Elpa/Melpa but then when you convert over to Elpaca they break and you have to go digging around Elpaca's manual and try to figure out the right file incantation that will make things works.
-
Using package loader (e.g. use-package) in file besides init.el?
;; Example Elpaca configuration -*- lexical-binding: t; -*- (defvar elpaca-installer-version 0.3) (defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory)) (defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory)) (defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory)) (defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git" :ref nil :files (:defaults (:exclude "extensions")) :build (:not elpaca--activate-package))) (let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory)) (build (expand-file-name "elpaca/" elpaca-builds-directory)) (order (cdr elpaca-order)) (default-directory repo)) (add-to-list 'load-path (if (file-exists-p build) build repo)) (unless (file-exists-p repo) (make-directory repo t) (condition-case-unless-debug err (if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*")) ((zerop (call-process "git" nil buffer t "clone" (plist-get order :repo) repo))) ((zerop (call-process "git" nil buffer t "checkout" (or (plist-get order :ref) "--")))) (emacs (concat invocation-directory invocation-name)) ((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch" "--eval" "(byte-recompile-directory \".\" 0 'force)"))) ((require 'elpaca)) ((elpaca-generate-autoloads "elpaca" repo))) (kill-buffer buffer) (error "%s" (with-current-buffer buffer (buffer-string)))) ((error) (warn "%s" err) (delete-directory repo 'recursive)))) (unless (require 'elpaca-autoloads nil t) (require 'elpaca) (elpaca-generate-autoloads "elpaca" repo) (load "./elpaca-autoloads"))) (add-hook 'after-init-hook #'elpaca-process-queues) (elpaca `(,@elpaca-order)) ;; Install use-package support (elpaca elpaca-use-package ;; Enable :elpaca use-package keyword. (elpaca-use-package-mode) ;; Assume :elpaca t unless otherwise specified. (setq elpaca-use-package-by-default t)) ;; Block until current queue processed. (elpaca-wait) ;;Load your "./modes" files here (cl-loop for mode in (directory-files "./modes" 'full "\\.el$") (load-file mode)) ;; Local Variables: ;; no-byte-compile: t ;; no-native-compile: t ;; no-update-autoloads: t ;; End:
-
How to Make Emacs Look Cooler with Simple Customization
Elpaca. https://github.com/progfolio/elpaca - an alternative to the built in package manager. Very fast with an eminently decent UI, and allows for any or no fine-tuning how any given package should be installed.
-
Emacs lisp huge single file packages
Here's an overview of the current structure of Elpaca:
- Elpaca: The Basics
-
emacs can be "heavy" but still blazingly fast
If you get around to actually measuring it, let me know. I'm collecting data points for comparison with Elpaca.
-
Will any emacs package manager let me audit packages before installing them?
Elpaca has the elpaca-fetch command for this purpose. It fetches a package repository and will display the commit log. Each commit hash is a button which will open a magit diff view if magit is installed. It could very easily be extended to work with vc, ediff, etc. Here's a screenshot of what the update log looks like:
melpa
Posts with mentions or reviews of melpa.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-12.
-
Alternatives to reddit and r/emacs to stay updated on Emacs developments
Watch the new pull requests to melpa: https://github.com/melpa/melpa/pulls
- Ask HN: What's a good, privacy focused bookmark manager?
-
Can't remove Emacs as "cask emacs is not installed"
(require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize) (package-install 'use-package) (use-package exec-path-from-shell :ensure t :config (exec-path-from-shell-initialize)))
-
Trying to understand the difference between GNU ELPA and NonGNU ELPA. Plz help.
MELPA is definitely the biggest package archive, probably mostly on account of the lower barrier to entry compared to GNU ELPA (maybe the difference would have been less pronounced if NonGNU ELPA had been there from the beginning, but one can only speculate). MELPA has its own requirements for packages, but indeed copyright assignment to the FSF is not one of them.
- What is your favorite IDE?
- New minimalistic dashboard.
-
is there like a resource where I can learn how to create an elisp project
I would suggest to start at reading the manual first. Then I would recommend reading the Melpa guidance, even if you do not plan to contribute your package to Melpa, since it contains very useful info about linting, writing your code etc.
-
melpa.org blacklisted ?
The mxtoolbox link checks for SMTP blacklisting.. People won't be able to send mail from host with the IP address 178.128.185.1(which is the melpa.org webserver, not their mailserver, so everything's fine there).
-
xah-fly-keys not on melpa?
Xah asked for his packages to be removed from MELPA a while back: https://github.com/melpa/melpa/issues/7755
-
Elisp project best practices
Observe that package.el compile files when they are installed, and they are not compiled in any particular order (actually whatever directory-files returns, which is what OS returns). So if you have multiple files that depend on each other, it is something to think of. There are also some guidelines on how to structure your project on Melpa.
What are some alternatives?
When comparing elpaca and melpa you can also consider the following projects:
elpa-mirror - Create local emacs package repository. 15 seconds to install 115 packages.
straight.el - 🍀 Next-generation, purely functional package manager for the Emacs hacker.
consult-notes - Use consult to search notes
use-package - A use-package declaration for simplifying your .emacs
ejira - Emacs JIRA integration
nano-emacs - GNU Emacs / N Λ N O - Emacs made simple
toggleterm.nvim - A neovim lua plugin to help easily manage multiple terminal windows
emacs-undo-fu
GNU Emacs - Mirror of GNU Emacs
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]