diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-25 08:35:21 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-25 08:35:21 -0500 |
| commit | a522e5537ab9c94a45656b28e94a73b98f47d4b8 (patch) | |
| tree | 6f379f73ca5e5e57deec0b7e583f7e643c6b2d4b | |
| parent | c4a55619086d941052f9c59fc710796c90e5e8ba (diff) | |
| download | dotemacs-a522e5537ab9c94a45656b28e94a73b98f47d4b8.tar.gz dotemacs-a522e5537ab9c94a45656b28e94a73b98f47d4b8.zip | |
docs(load-graph): classify elfeed-config, the last init module
elfeed-config was the only init module without a load-graph header. It was deferred because annotating the header triggers a byte-compile, which broke its tests. With that test rewritten to use real structs, I added the header (Layer 4, optional, currently eager but a command-loaded deferral candidate, runtime requires user-constants, system-lib, media-utils), added elfeed-config to the header-contract allowlist, and moved it from the inventory's deferred and pending sections into the Batch 8 table.
That brings the inventory to 102 of 102 modules classified, completing the Phase 1 classification pass.
| -rw-r--r-- | docs/design/module-inventory.org | 28 | ||||
| -rw-r--r-- | modules/elfeed-config.el | 11 | ||||
| -rw-r--r-- | tests/test-init-module-headers.el | 1 |
3 files changed, 19 insertions, 21 deletions
diff --git a/docs/design/module-inventory.org b/docs/design/module-inventory.org index fb6a2770..a6a065da 100644 --- a/docs/design/module-inventory.org +++ b/docs/design/module-inventory.org @@ -30,10 +30,9 @@ This inventory is independent from the helper inventory owned by - Batch 5 (Dev entry-points, diff, help, lint, VC, Layer 2): classified. 9 modules. - Batch 6 (Programming modules, Layer 2-4): classified. 10 modules. - Batch 7 (Org modules, Layer 3-4): classified. 13 modules. -- Batch 8 (Domain / integration / optional modules, Layer 2-4): classified. 17 modules. +- Batch 8 (Domain / integration / optional modules, Layer 2-4): classified. 18 modules. - Batch 9 (Remaining domain / integration / optional modules, Layer 2-4): classified. 19 modules. -- 101 of 102 modules classified. Only elfeed-config remains, deferred on a test - fix (see Deferred classification). +- 102 of 102 modules classified. Phase 1 classification complete. - No load-order changes have been made; =init.el= keeps its current eager order. * Legend @@ -200,6 +199,7 @@ flyspell-and-abbrev is the one Core-UX member (text-mode hooks). | =chrono-tools= | 3 | D/P | eager | command | user-constants | package config | yes | | =dirvish-config= | 3 | D/P | eager | command | user-constants, system-utils, host-environment, system-lib, external-open-lib | 3 add-hook, package config | yes | | =dwim-shell-config= | 3 | D/P | eager | command | cl-lib | package config | yes | +| =elfeed-config= | 4 | O/D/P | eager | command | user-constants, system-lib, media-utils | package config (elfeed bindings) | yes | | =erc-config= | 4 | O/D/P | eager | command | cl-lib, keybindings | ERC keymap under cj/custom-keymap | yes | | =eshell-config= | 3 | D/P | eager | command | system-utils | add-hook, advice-add, package config | yes | | =eww-config= | 3 | D/P | eager | command | cl-lib | package config | yes | @@ -279,24 +279,10 @@ found and fixed; the =Phase 2 fix:= notes below describe the change applied. * Deferred classification -- =elfeed-config= is read and understood (Layer 4, O/D/P, command-loaded; runtime - requires user-constants, system-lib, media-utils) but its header is not yet - annotated. Annotating triggers the PostToolUse byte-compile, and its tests - (=tests/test-elfeed-config-helpers.el=) only pass when elfeed-config loads as - interpreted source: the byte-compiled =cj/elfeed-process-entries= inlines the - =elfeed-entry-link= struct accessor, so the tests' function stubs are bypassed - and the inlined accessor type-checks a real =elfeed-entry=. The batch test - environment has no elfeed package on the load-path, so the tests cannot build - real structs either. Classifying elfeed-config needs that test rewritten first - (define a stand-in =elfeed-entry= struct, or make elfeed loadable in batch). - Tracked as a todo task. +- None. =elfeed-config= was the last deferred module; its tests were rewritten + to build real =elfeed-entry= structs (so they survive byte-compilation) and it + is now classified in Batch 8. * Pending classification -The remaining module (elfeed-config) is deferred on the test fix described above; everything else required by =init.el= is classified. -Each batch reads these against their source and moves them into [[*Classified -modules][Classified modules]] with a load-graph header. Suggested batch order -follows the spec: text/editing command modules, then UI, then programming, then -Org, then optional integrations. - -- [ ] elfeed-config +- None. Every module required by =init.el= is classified (102 of 102). diff --git a/modules/elfeed-config.el b/modules/elfeed-config.el index dff26410..ad7bda83 100644 --- a/modules/elfeed-config.el +++ b/modules/elfeed-config.el @@ -2,6 +2,17 @@ ;; author Craig Jennings <c@cjennings.net> ;; ;;; Commentary: +;; +;; Layer: 4 (Optional). +;; Category: O/D/P. +;; Load shape: eager. +;; Eager reason: none; optional feed reader, a command-loaded deferral +;; candidate. +;; Top-level side effects: package configuration via use-package (binds the +;; elfeed launch key and the search/show-mode keys). +;; Runtime requires: user-constants, system-lib, media-utils. +;; Direct test load: yes. +;; ;; Launch Elfeed with M-R to update feeds and focus the newest entry right away. ;; Inside the search buffer: ;; - Use v to stream via the default player, d to download, w/b to open via EWW or browser. diff --git a/tests/test-init-module-headers.el b/tests/test-init-module-headers.el index 42e26ed7..af4f9ec9 100644 --- a/tests/test-init-module-headers.el +++ b/tests/test-init-module-headers.el @@ -102,6 +102,7 @@ "chrono-tools" "dirvish-config" "dwim-shell-config" + "elfeed-config" "erc-config" "eshell-config" "eww-config" |
