diff --git a/pkgs/applications/editors/emacs/elisp-packages/README.md b/pkgs/applications/editors/emacs/elisp-packages/README.md new file mode 100644 index 0000000000000..38bd6c80849ff --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/README.md @@ -0,0 +1,58 @@ +# Emacs Lisp Packages Framework + +This directory includes a framework for packaging Emacs Lisp (henceforth, Elisp) +packages to Nixpkgs. + +## Bulk Updating + +There are basically two methods for updating the Elisp package sets. + +### From `nix-community` overlay + +The easiest one is to download and commit the package sets from [`nix-community` Emacs Overlay](https://github.com/nix-community/emacs-overlay). +The script `./update-from-overlay` does all the work: + +- It downloads and overwrites the files + `elpa-generated.nix`, `elpa-devel-generated.nix`, `recipes-archive-melpa.json`, `nongnu-generated.nix` and `nongnu-devel-generated.nix`; +- Tests each package set; +- Commits the changes. + +### From local scripts + +We have the following scripts: + +- `lib-update-scripts.sh` + + This file serves as a library, containing useful functions to deal with bulk updates. + It can be `source`'d in both interactive and batch environments. + + The following functions are provided: + + - `download_change` + - `test_packageset` + - `commit_change` + +- `update-package-sets` + + This script accepts four possible arguments, namely `elpa`, `elpa-devel`, + `nongnu`, `nongnu-devel`. Each of them updates the specific package set. + +- `update-melpa` + + It updates `recipes-archive-melpa.json` file and its corresponding + `emacsPackages.melpaPackages` and `emacsPackages.melpaStablePackages` + package sets. + + After running it, and before committing its changes, it is mandatory to run + the following smoke test: + + ``` + env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace /../../../../../ -A "emacsPackages.melpaPackages" + env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace /../../../../../ -A "emacsPackages.melpaStablePackages" + ``` + + The commit should be generated with the command below: + + ``` + git commit -m "emacsPackages.{melpaPackages,melpaStablePackages}: updated at $(date --iso) (from local scripts)" -- `recipes-archive-melpa.json` + ```