makem.sh
elpaca
makem.sh | elpaca | |
---|---|---|
13 | 29 | |
155 | 537 | |
- | - | |
7.3 | 9.5 | |
4 months ago | 1 day ago | |
Shell | Emacs Lisp | |
GNU General Public License v3.0 only | GNU General Public License v3.0 only |
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.
makem.sh
- Release v0.6 ยท alphapapa/makem.sh (test and lint Elisp packages)
-
Package contribution workflow
Well, for one thing, restarting Emacs to reload libraries gets old. This command helps. Also, this script eases testing in clean Emacs configs outside of one's main editor. Then, of course, tools like Elpaca seem to be the next generation...
-
How do get emacs to stop warning about packages I use?
Anyway, as Nic said, any package maintainer who cares will want to fix those warnings. I use my own makem.sh tool to lint compilation warnings before publishing.
-
Compiling el files in a clean environment
This is one of the reasons I wrote makem.sh. I recently added makem.el to the repo, which is an Elisp library that provides a Transient menu to make using it very easy (you don't have to use M-x compile or a shell).
-
How do you manage several similar emacs configs?
See also https://github.com/alphapapa/makem.sh, which is much simpler to use.
-
Emacs finally got a command line switch to set user-emacs-directory
Wow, finally! And just when I've gotten the bugs ironed out of with-emacs.sh and makem.sh related to Emacs 28's changes. Well, pre-29 versions will still be around for a long time, so with-emacs.sh will remain useful, but it will be nice to have support for this integrated into Emacs.
-
Running elisp linters / checkers from the command line?
Reported one: https://github.com/alphapapa/makem.sh/issues/35
-
New package: define-repeat-map -- easily define repeat-maps for Emacs
FYI, see also evenp. :) Also, this may help you lint and test your packages: https://github.com/alphapapa/makem.sh
-
Inspector for Emacs Lisp (WIP)
I generally recommend using makem.sh to lint, because it can test in a clean Emacs configuration using a variety of tools, and it works with compile, so you can just press g to rerun it. It will warn you about things like un-prefixed cl functions.
-
How to think about version bounds for packages that you created or maintain?
For general packaging, package-lint will catch many dependency issues. I run it with https://github.com/alphapapa/makem.sh
elpaca
-
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:
What are some alternatives?
with-emacs.sh - Script to easily run Emacs with specified configurations
elpa-mirror - Create local emacs package repository. 15 seconds to install 115 packages.
cask - Project management tool for Emacs
straight.el - ๐ Next-generation, purely functional package manager for the Emacs hacker.
mu-wizard - mu4e configuration wizard
consult-notes - Use consult to search notes
emacs-anywhere - Configurable automation + hooks called with application information
ejira - Emacs JIRA integration
melpazoid - A bundle of CI scripts for testing Emacs packages, primarily submissions to MELPA.
toggleterm.nvim - A neovim lua plugin to help easily manage multiple terminal windows
nixpkgs - Nix Packages collection & NixOS
GNU Emacs - Mirror of GNU Emacs