From 4a397d42c8f4447e0a416a52543aaef9ccbeb3e3 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sun, 17 Nov 2024 08:22:29 -0300 Subject: [PATCH] doc/languages-frameworks/elisp.section.md: init --- doc/languages-frameworks/elisp.section.md | 124 ++++++++++++++++++++++ doc/languages-frameworks/index.md | 1 + 2 files changed, 125 insertions(+) create mode 100644 doc/languages-frameworks/elisp.section.md diff --git a/doc/languages-frameworks/elisp.section.md b/doc/languages-frameworks/elisp.section.md new file mode 100644 index 0000000000000..5ce022bb04f82 --- /dev/null +++ b/doc/languages-frameworks/elisp.section.md @@ -0,0 +1,124 @@ +# Emacs Lisp {#emacs-lisp} + +Since at least version 24, Emacs has a native package manager, `package.el`. +Since its inception, many Elisp packages were created by Emacs community at large, as well as Elisp package repositories. + + + +### Bulk Update {#sec-emacs-elisp-packages-bulk-update} + +The chief Elisp package repositories are [GNU ELPA](https://elpa.gnu.org/), [NonGNU ELPA](https://elpa.nongnu.org/), and [MELPA](https://melpa.org/). + +Nixpkgs provides a comprehensive infrastucture that leverages the contents of these Elisp repositories as Nix packages. This chapter describes the bulk-updating automation tooling. + +Inside the `emacs` directory lives the `elisp-packages` subdirectory. +Inside it we provide the following scripts: + +- `update-scripts_library.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. + + This library provides the following functions: + + - `download_packageset` + + This function downloads from [`nix-community` Emacs Overlay](https://github.com/nix-community/emacs-overlay) the corresponding files. + + It accepts one argument. + This argument can assume one of the following values: + `elpa`, `elpa-devel`, `melpa`, `melpa-stable`, `nongnu`, `nongnu-devel`. + + - `test_packageset` + + This function runs a simple test that instantiates the corresponding package set. + + It accepts one argument. + This argument can assume one of the following values: + `elpa`, `elpa-devel`, `melpa`, `melpa-stable`, `nongnu`, `nongnu-devel`. + + - `commit_packageset` + + This function commits the corresponding package set to the Nixpkgs repository, writing a one-line descriptive commit message. + + It accepts two arguments. + + The first argument can assume one of the following values: `elpa`, + `elpa-devel`, `melpa`, `melpa-stable`, `nongnu`, `nongnu-devel`. + The second argument is an optional free-form string used verbatim, describing the origin of the change being committed. + Its default value is `interactive session`. + +- `update-package-sets` + + This script updates the package sets passed to it as arguments. + + It accepts multiple arguments. + Each argument can assume one of the following values: + `elpa`, `elpa-devel`, `nongnu`, `nongnu-devel`. + +- `update-melpa` + + This script updates `recipes-archive-melpa.json`, a JSON file that describes the MELPA package set. + + It accepts no arguments. + +- `update-from-overlay` + + This script downloads all the packagesets from overlay, then tests and commits them. + + It accepts no arguments. +- `update-scripts_library.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. + + This library provides the following functions: + + - `download_packageset` + + This function downloads from [`nix-community` Emacs Overlay](https://github.com/nix-community/emacs-overlay) the corresponding files. + + It accepts one argument. + This argument can assume one of the following values: + `elpa`, `elpa-devel`, `melpa`, `melpa-stable`, `nongnu`, `nongnu-devel`. + + - `test_packageset` + + This function runs a simple test that instantiates the corresponding package set. + + It accepts one argument. + This argument can assume one of the following values: + `elpa`, `elpa-devel`, `melpa`, `melpa-stable`, `nongnu`, `nongnu-devel`. + + - `commit_packageset` + + This function commits the corresponding package set to the Nixpkgs repository, writing a one-line descriptive commit message. + + It accepts two arguments. + + The first argument can assume one of the following values: `elpa`, + `elpa-devel`, `melpa`, `melpa-stable`, `nongnu`, `nongnu-devel`. + The second argument is an optional free-form string used verbatim, describing the origin of the change being committed. + Its default value is `interactive session`. + +- `update-package-sets` + + This script updates the package sets passed to it as arguments. + + It accepts multiple arguments. + Each argument can assume one of the following values: + `elpa`, `elpa-devel`, `nongnu`, `nongnu-devel`. + +- `update-melpa` + + This script updates `recipes-archive-melpa.json`, a JSON file that describes the MELPA package set. + + It accepts no arguments. + +- `update-from-overlay` + + This script downloads all the packagesets from overlay, then tests and commits them. + + It accepts no arguments. diff --git a/doc/languages-frameworks/index.md b/doc/languages-frameworks/index.md index a8a13ce5b9e29..f56a29c5709ef 100644 --- a/doc/languages-frameworks/index.md +++ b/doc/languages-frameworks/index.md @@ -64,6 +64,7 @@ dart.section.md dhall.section.md dlang.section.md dotnet.section.md +elisp.section.md emscripten.section.md gnome.section.md go.section.md