From 071fb8e19fab98a3db4e3a505f814517ea62455d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 01:43:06 +0000 Subject: [PATCH 01/10] niv doom-emacs: update cae1766d -> 2ad1eab6 ## Changelog for doom-emacs: Branch: develop Commits: [hlissner/doom-emacs@cae1766d...2ad1eab6](https://github.com/hlissner/doom-emacs/compare/cae1766d8ef2d1588501f141922b7bd166bda7b5...2ad1eab6eebbae554ebcd931c03b7f906a77f3ec) * [`c63eceb4`](https://github.com/hlissner/doom-emacs/commit/c63eceb43b1faa5340afa511e17a0d474e26cb78) Markdown: add keymap for insert commands * [`b12df73c`](https://github.com/hlissner/doom-emacs/commit/b12df73cc123f2b514f0c5d360ea729a1e1b1c7d) Emacs-lisp eldoc: fix error if symbol unbound * [`5b8d8aed`](https://github.com/hlissner/doom-emacs/commit/5b8d8aed5171af5b9acda05fcb63c60cbef0a111) Enable company-ansible upfront * [`db82474a`](https://github.com/hlissner/doom-emacs/commit/db82474a58d6b5f0430051b174ea56da2018dc94) Add doctor.el for :tools ansible * [`c0c932ae`](https://github.com/hlissner/doom-emacs/commit/c0c932ae09850d81e5c865d8e8f0320f97015624) Improving snippet lookup behavior * [`670c8d51`](https://github.com/hlissner/doom-emacs/commit/670c8d519d22bb30bd909882c836163af6c9288f) Inlining the uuid function * [`39deb6ae`](https://github.com/hlissner/doom-emacs/commit/39deb6aedb5364af3ce5f5cf90e9110c6b93c7c4) Resolve remote path to fd/rg for counsel-find-file * [`5da3641a`](https://github.com/hlissner/doom-emacs/commit/5da3641aad62887c76ee69bd5e0aae52892109be) Move init.el to early-init.el * [`c8bfbda5`](https://github.com/hlissner/doom-emacs/commit/c8bfbda556b998499d8155081cc848254ee05ecd) Make anaconda & pipenv integrations remote-aware * [`cfb8a866`](https://github.com/hlissner/doom-emacs/commit/cfb8a866dc6181889b0c056abf4fdd3f34fb144b) Bump :core * [`a9e6f888`](https://github.com/hlissner/doom-emacs/commit/a9e6f88831622084220387d454b2d3d91ab66c39) Remove evil-collection-vterm from comp blacklist * [`b98476e1`](https://github.com/hlissner/doom-emacs/commit/b98476e1fd1e52ee01778fbd6ea9e043186208ec) Bump :lang org * [`5e6de97b`](https://github.com/hlissner/doom-emacs/commit/5e6de97b56546c38dba5f9973e10e8110f580c90) ui/minimap: allow in more major modes * [`8bac3bc6`](https://github.com/hlissner/doom-emacs/commit/8bac3bc6c6ac52e770106eff3134caa835a34fe9) Remove with-editor from comp blacklist * [`2b53df56`](https://github.com/hlissner/doom-emacs/commit/2b53df56e578a3029d991137b19b0bc85df40c95) Bump :editor evil * [`f2035811`](https://github.com/hlissner/doom-emacs/commit/f2035811dbda21c3ae6a1de115f508bdef8abccb) Bump :ui * [`1b6cf577`](https://github.com/hlissner/doom-emacs/commit/1b6cf5777a42181f6276cfa3db54916a8aa5efde) Fix void-variable eshell-modules-list * [`042fd4d9`](https://github.com/hlissner/doom-emacs/commit/042fd4d9292a11ff35366b8bc6bf5f064d694e18) Fix obsolete `case` alias compiler warnings * [`3f2c4b80`](https://github.com/hlissner/doom-emacs/commit/3f2c4b80e9adf1c7809e3fe3c299030cbcc7de33) Add Emacs 26.x warning to doctor checks * [`5cb2395e`](https://github.com/hlissner/doom-emacs/commit/5cb2395e08c5932bbbb79056a49f022dacdc8634) Set custom-theme-directory in core-ui * [`1235ea74`](https://github.com/hlissner/doom-emacs/commit/1235ea74cfc18ebaba085320343ac333ecf0152e) Bump better-jumper * [`8c258c27`](https://github.com/hlissner/doom-emacs/commit/8c258c272d015920cb0ddb4e10796f5f5a2e7e72) Update comments * [`8cd7a1db`](https://github.com/hlissner/doom-emacs/commit/8cd7a1dbc674798e7ff8f6809c2f605fac373aff) Fix doom-unicode-font * [`f587630e`](https://github.com/hlissner/doom-emacs/commit/f587630e1701ef44016459a4033fa95c88fed838) Use module instead of package detection * [`fc184852`](https://github.com/hlissner/doom-emacs/commit/fc184852d0236769c971e94ec5ec220d8cd24fd1) Only replace usernames in file paths in doom/info * [`b03fdabe`](https://github.com/hlissner/doom-emacs/commit/b03fdabe4fa8a07a7bd74cd02d9413339a485253) Bump posframe * [`bb4d17ef`](https://github.com/hlissner/doom-emacs/commit/bb4d17efb7ccb816ffeaedd6debc1412fb1d5fd0) Revert 8bac3bc6c, a9e6f8883 * [`1ddeb119`](https://github.com/hlissner/doom-emacs/commit/1ddeb119dd77c322a56300eb5365f71b611051ba) AN UPDATE UNLIKE ANYTHING YOU'VE EVER SEEN * [`1c8451e5`](https://github.com/hlissner/doom-emacs/commit/1c8451e50914f08312f9628fbf8e5488f3ff71b6) Move docs/api.org to emacs-lisp module * [`63929a24`](https://github.com/hlissner/doom-emacs/commit/63929a240c4979402a418f624f6713eb89df0e21) Fix doom-lookup-key * [`75ac7be2`](https://github.com/hlissner/doom-emacs/commit/75ac7be289254d1278542519e4ce40107f0bbee0) Fix package-lint warnings in elisp package template * [`b6d8a984`](https://github.com/hlissner/doom-emacs/commit/b6d8a98402df55f63fd2d52e8e7de3733b9ae33e) Fix +ivy--set-jump-point-maybe-h: wrong-type-argument markerp * [`2ad1eab6`](https://github.com/hlissner/doom-emacs/commit/2ad1eab6eebbae554ebcd931c03b7f906a77f3ec) Bump evil-collection --- nix/sources.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/sources.json b/nix/sources.json index b0784d5..fe52d8a 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -5,10 +5,10 @@ "homepage": "", "owner": "hlissner", "repo": "doom-emacs", - "rev": "cae1766d8ef2d1588501f141922b7bd166bda7b5", - "sha256": "1zzj37hlj8l92wfjlccpi9cc69zxgswg68h195hqwcq610d3ci2x", + "rev": "2ad1eab6eebbae554ebcd931c03b7f906a77f3ec", + "sha256": "1j2qmmvmcm2iv4k6zy3k4ghila5kc3pmfw8xvyayc2rqnlfhjipd", "type": "tarball", - "url": "https://github.com/hlissner/doom-emacs/archive/cae1766d8ef2d1588501f141922b7bd166bda7b5.tar.gz", + "url": "https://github.com/hlissner/doom-emacs/archive/2ad1eab6eebbae554ebcd931c03b7f906a77f3ec.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "doom-snippets": { From d883a9ab429b6e60182cec94cc66c2871e8d9670 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 01:43:11 +0000 Subject: [PATCH 02/10] niv emacs-overlay: update 150f5eff -> 29267ea1 ## Changelog for emacs-overlay: Branch: master Commits: [nix-community/emacs-overlay@150f5eff...29267ea1](https://github.com/nix-community/emacs-overlay/compare/150f5eff82eb0c8db3e7f1baa6599e705a81797c...29267ea1a9fd54f01e80f64a10de9242677718cf) * [`49259bf1`](https://github.com/nix-community/emacs-overlay/commit/49259bf1c3335c0f891106aa2df6539d1cb96437) Updated repos/melpa * [`5918be8c`](https://github.com/nix-community/emacs-overlay/commit/5918be8c408596d2c815346a77cd2a48551cc99c) Updated repos/emacs * [`9931b308`](https://github.com/nix-community/emacs-overlay/commit/9931b308a470753ffd520922c6166eb66994d037) Updated repos/emacs * [`43e04abb`](https://github.com/nix-community/emacs-overlay/commit/43e04abbb498176bfaac9633cf58870616371c4a) Updated repos/org * [`32984eed`](https://github.com/nix-community/emacs-overlay/commit/32984eedf998b7ac378fcdc75167a304702cf2fa) Updated repos/emacs * [`a36010c2`](https://github.com/nix-community/emacs-overlay/commit/a36010c2d46738fb56484698e459373747a8703d) Updated repos/emacs * [`7689a409`](https://github.com/nix-community/emacs-overlay/commit/7689a4093e2986e72a2b3e981b4ae86124c1dfb6) fix passthru pkgs * [`6ba78727`](https://github.com/nix-community/emacs-overlay/commit/6ba7872783f9a351154e8e481cf6723d0de4db1f) Updated repos/emacs * [`05ebb084`](https://github.com/nix-community/emacs-overlay/commit/05ebb0847c646f305f214ba49226e80e49268d55) Updated repos/emacs * [`f223ce0c`](https://github.com/nix-community/emacs-overlay/commit/f223ce0cda99983fb04d1e1e21459c1354afa55b) Updated repos/emacs * [`96fa7067`](https://github.com/nix-community/emacs-overlay/commit/96fa7067e80176959eaac3a4f06c66fc87838390) Updated repos/emacs * [`20d3fa95`](https://github.com/nix-community/emacs-overlay/commit/20d3fa9526e01519fc6318d9c69f3285486cf236) Updated repos/emacs * [`094e89c4`](https://github.com/nix-community/emacs-overlay/commit/094e89c45890f2fb109aa9b2227e4b9d76871724) Updated repos/emacs * [`a9c71d23`](https://github.com/nix-community/emacs-overlay/commit/a9c71d237b66b9ee4e2409dbcce4851cde5d9fb2) Updated repos/elpa * [`921b0521`](https://github.com/nix-community/emacs-overlay/commit/921b05218087accd03d98619a9f494ce3775115c) Updated repos/emacs * [`ef1d2bf8`](https://github.com/nix-community/emacs-overlay/commit/ef1d2bf8017f8de3e3f125b8ca5ecbd426e986f5) Updated repos/elpa * [`7168b4fb`](https://github.com/nix-community/emacs-overlay/commit/7168b4fbcedad6cc93d05845e3cab28537a1c556) Updated repos/emacs * [`a2d42ca7`](https://github.com/nix-community/emacs-overlay/commit/a2d42ca78eefa726690d31fb304e347b82201feb) Updated repos/emacs * [`5d4bf9d6`](https://github.com/nix-community/emacs-overlay/commit/5d4bf9d698ebd5faa4ddc70b872e326b83b9229d) Updated repos/emacs * [`29267ea1`](https://github.com/nix-community/emacs-overlay/commit/29267ea1a9fd54f01e80f64a10de9242677718cf) Updated repos/emacs --- nix/sources.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/sources.json b/nix/sources.json index fe52d8a..d3d8506 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -29,10 +29,10 @@ "homepage": "", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "150f5eff82eb0c8db3e7f1baa6599e705a81797c", - "sha256": "1c99h4f7qlfmj19c559lk6w27139cld17x1a5ir3pfs7c100y3vp", + "rev": "29267ea1a9fd54f01e80f64a10de9242677718cf", + "sha256": "187ivv1kab9x923gmdx5zdqis5z5krswmjkwbvvi241qdy6rg4fz", "type": "tarball", - "url": "https://github.com/nix-community/emacs-overlay/archive/150f5eff82eb0c8db3e7f1baa6599e705a81797c.tar.gz", + "url": "https://github.com/nix-community/emacs-overlay/archive/29267ea1a9fd54f01e80f64a10de9242677718cf.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "emacs-so-long": { From e831996fc581fedbdd7b5a0401e57dec6a9321c0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 01:43:19 +0000 Subject: [PATCH 03/10] niv org-mode: update 2a4578b1 -> a8df7670 ## Changelog for org-mode: Branch: master Commits: [emacs-straight/org-mode@2a4578b1...a8df7670](https://github.com/emacs-straight/org-mode/compare/2a4578b103a9f5e70f50523cf6b28655a56c2cbe...a8df7670c8f7d52d779e1d8e922d519b0aec3afb) * [`fd4eec03`](https://github.com/emacs-straight/org-mode/commit/fd4eec036dadc2571fcd93d0ca4c3e3ed01e1487) Backport commit 79d04ae13 from Emacs * [`a97bb27f`](https://github.com/emacs-straight/org-mode/commit/a97bb27f32006c6590934a87f5dcb8a8093d49d2) Backport commit 61dca6e92 from Emacs * [`23896ba6`](https://github.com/emacs-straight/org-mode/commit/23896ba683f2ef3b8ec4442d7d1a4f28d279f0e1) ox-odt: Drop another (function (lambda ...)) * [`9bb93006`](https://github.com/emacs-straight/org-mode/commit/9bb93006ea150adb9f64e6f944bb8c0f68d327cd) Backport commit 844e82f5a from Emacs * [`c38fda99`](https://github.com/emacs-straight/org-mode/commit/c38fda993d4db092ed6c94e5f434d52a9da2fa3a) ob-java.el: Do not wrap a main method in a main method * [`dc223814`](https://github.com/emacs-straight/org-mode/commit/dc2238144f33384613f0563c658b80bb9fa0eb89) ob-java.el: Allow for more whitespace in java code * [`b04667a3`](https://github.com/emacs-straight/org-mode/commit/b04667a370852bb8b42998b53c02e07af3817ae0) contrib/lisp/: Fix some headers * [`8bade78c`](https://github.com/emacs-straight/org-mode/commit/8bade78ce627cc2eb2f81f2c83083ed2d59090d4) lisp/org.el: Allow hiding #+SUBTITLE: keyword via `org-hidden-keywords' * [`104d9219`](https://github.com/emacs-straight/org-mode/commit/104d92199e3cba7cefd504f24c3610031fa384de) agenda: Fix toggling of archive files * [`93087e0b`](https://github.com/emacs-straight/org-mode/commit/93087e0b3add4935fc6478903a6caff65e067ad9) lisp/ob-java.el: Make the default to write to the current directory * [`1a480e01`](https://github.com/emacs-straight/org-mode/commit/1a480e01a4c1acd0146b33f03b9a0edc44b74403) Remove redundant 'function's around lambda * [`a5d76548`](https://github.com/emacs-straight/org-mode/commit/a5d765481d9d1d03726be90f58458363bfab51ec) doc/org-manual.org: add reference to org-table-transpose-table-at-point * [`5272d97e`](https://github.com/emacs-straight/org-mode/commit/5272d97e5cefbc648a38be02ea99137f095e327a) manual: Repeat cookies should be in the same order as the repeats * [`0abb6de0`](https://github.com/emacs-straight/org-mode/commit/0abb6de0cfda31e99b077117fa802495d31821ab) Backport commit 430eb2f85 from Emacs * [`2d23d55a`](https://github.com/emacs-straight/org-mode/commit/2d23d55ac5f03b31ebbd4ba1272a336f9c72b5d7) ox-odt.el: quote output file name * [`96d2e01e`](https://github.com/emacs-straight/org-mode/commit/96d2e01e7d9c3bf349bd8710e082b0f5af936ff2) lisp/ob-java.el: Fix java over tramp * [`bd7e16ca`](https://github.com/emacs-straight/org-mode/commit/bd7e16ca21d5f68f9468603f9c617a2bc91ce29b) org-table: Remove unused org-tbl-calc-modes variable declaration * [`abd99494`](https://github.com/emacs-straight/org-mode/commit/abd994943170c2f1bc2f71d8b99c48588499e4e2) org-table: Simplify mode string parsing * [`15469774`](https://github.com/emacs-straight/org-mode/commit/15469774dd2063b79df66e61441008396a95a491) org-table: Add mode flag to enable Calc units simplification mode * [`9a154910`](https://github.com/emacs-straight/org-mode/commit/9a154910ed1dd0bf0407759dde70f41c9b03f0d6) fix cycling when providing numeric argument to org-shifttab * [`00bc3097`](https://github.com/emacs-straight/org-mode/commit/00bc3097cd2ccfc714bca1825cc5af0428ed58b0) Backport commit affe9b225 from Emacs * [`a368bf11`](https://github.com/emacs-straight/org-mode/commit/a368bf111a096fe371006a5695120891727d1dd0) Backport commit 67a8bdb90 from Emacs * [`b2d38a82`](https://github.com/emacs-straight/org-mode/commit/b2d38a822d2269df02b4ccf39116f8f7001e8e69) doc/org-manual.org: Extend table formulas Lisp form documentation * [`ccf81be2`](https://github.com/emacs-straight/org-mode/commit/ccf81be2a2887457969e60035c342426d8423ba2) org-capture.el: Add :tree-type 'month' in org-capture-templates description * [`b2717ca5`](https://github.com/emacs-straight/org-mode/commit/b2717ca5a77b45643ecb54cc66a22f146f626f54) Update customize-package-emacs-version-alist * [`546b2ba2`](https://github.com/emacs-straight/org-mode/commit/546b2ba26b20acb5963f8889ca67fe4b377b555d) org-odt-planning: Fix scheduled item output * [`f7e286ab`](https://github.com/emacs-straight/org-mode/commit/f7e286ab964a16dc30214a5d77602d77d4cdeeeb) ob-ruby.el: Don't reuse the same buffer among different named sessions * [`c974467f`](https://github.com/emacs-straight/org-mode/commit/c974467fe543466c37b5100005b170059ca508b3) org-goto: Explicitly load org.el and org-refile.el * [`3bb073b6`](https://github.com/emacs-straight/org-mode/commit/3bb073b638430ce8af22912f81195fb03a6417b9) ol: Fix type error in org-link-search corner case * [`706ba901`](https://github.com/emacs-straight/org-mode/commit/706ba90195a7fe4838b5b2690924138e48649846) Backport commit 0a4aa2894 from Emacs * [`7c8dce72`](https://github.com/emacs-straight/org-mode/commit/7c8dce72bd5d86157dd1dda2ba0a21ac86084426) ox-latex: Improve handling of footnotes within verse blocks * [`2eb5f074`](https://github.com/emacs-straight/org-mode/commit/2eb5f0741fd6cea0f46a1886b8e63e3a291fe968) org-fixup-indentation: Fix regression in logbook adjustment * [`4f8ac0a7`](https://github.com/emacs-straight/org-mode/commit/4f8ac0a7a3d5575fedf5ea311bd34ea09c2a0d99) org.el: Fix cycling hang when %p is in frame-title-format * [`cf02219e`](https://github.com/emacs-straight/org-mode/commit/cf02219e727536ce4f3d580efa444c2b5a96c53a) org: Reset saved scroll position on new cycling sequence * [`e04aa833`](https://github.com/emacs-straight/org-mode/commit/e04aa8330903ea03599de87f502813a9cce3258a) refile: Update remaining spots that use obsolete org-copy * [`a71ac14e`](https://github.com/emacs-straight/org-mode/commit/a71ac14e46bb820abdbd2e6651c58179c50eb2fa) New startup options, #+startup: showlevels * [`0571aa70`](https://github.com/emacs-straight/org-mode/commit/0571aa70106f5d8dbc2241064626f92f58dbd383) lisp/ob-C.el: Add Thierry Banel as the maintainer * [`a03f17e4`](https://github.com/emacs-straight/org-mode/commit/a03f17e49f0b4239b4d72a4618f8f81a251ce925) Fix org-in-archived-heading-p * [`dc1e037c`](https://github.com/emacs-straight/org-mode/commit/dc1e037cd1c0ec6a984c0e223c7082dc0a643a7d) ox: Add Turkish translation * [`7ce1a666`](https://github.com/emacs-straight/org-mode/commit/7ce1a666d873bbb43d0c716629230220830f3019) lisp/ob-abc.el: Fix link to William Waites homepage * [`f6e41c1d`](https://github.com/emacs-straight/org-mode/commit/f6e41c1d14e7ae68be8f641e54719093ebf6ff18) org-id: org-id-get-with-outline-path-completion for file targets * [`8fde9fc9`](https://github.com/emacs-straight/org-mode/commit/8fde9fc9054b370f9e8241205892d569f19fd66a) Offer alternative to disabling electric-indent-mode * [`61f37f2e`](https://github.com/emacs-straight/org-mode/commit/61f37f2e1afc78ce4078dcfe1293205ad2827430) lisp/org.el: Bump version to 9.4.1 * [`5dc37543`](https://github.com/emacs-straight/org-mode/commit/5dc375434ccc5f4b793148c686cc194b40622275) Clean up spacing to pass Emacs's pre-commit check * [`8fafb71f`](https://github.com/emacs-straight/org-mode/commit/8fafb71fea8b579b95aabc01c2796af20606789f) org-startup-options: Fix docstring typo * [`d7d714c7`](https://github.com/emacs-straight/org-mode/commit/d7d714c7d53875517829bea836c2b070b705adc6) Silence byte-compiler in Emacs repo * [`57a70d50`](https://github.com/emacs-straight/org-mode/commit/57a70d5053ea65142f644324b6fe51e2ea15da9f) ob-ruby.el: Funcall command if it's a function from inf-ruby-implementations * [`162e0e3e`](https://github.com/emacs-straight/org-mode/commit/162e0e3e6e0f67524146f85a4d2b571460691e46) lisp/org.el: Bump version to 9.4.2 * [`34932216`](https://github.com/emacs-straight/org-mode/commit/349322161dd43ea707ed85785b7ba26397faef0c) lisp/ob-perl.el: Add Corwin Brust as maintainer * [`93598350`](https://github.com/emacs-straight/org-mode/commit/9359835001f2a89d3ad8b3d9ff6ac35549b343d3) contrib/lisp/ob-julia.el: Add Alberto Ramos as maintainer * [`a64aa25f`](https://github.com/emacs-straight/org-mode/commit/a64aa25fa5a3bd083bac5d7fb00b67fa5cf3d1ff) org-plot.el: make indentation method consistent * [`8d5122fc`](https://github.com/emacs-straight/org-mode/commit/8d5122fc5e5d4c8cbe84bb5078af0ae3e7efb092) org-plot.el: add new option :transpose * [`a1d92bd9`](https://github.com/emacs-straight/org-mode/commit/a1d92bd918e479e150bd95b2d0fcdb0ca0a89d3d) org-plot.el: add new custom gnuplot preamble * [`bee7ef6f`](https://github.com/emacs-straight/org-mode/commit/bee7ef6f463277464310a63273f13d77566effab) org-plot.el: abstract plot types into custom var * [`73c99bf4`](https://github.com/emacs-straight/org-mode/commit/73c99bf42d83e020d95cd817cf5223dbdb1b35a4) org-plot.el: add utility functions for range,ticks * [`e905353d`](https://github.com/emacs-straight/org-mode/commit/e905353d6edc6bd00d333bdd7967c0013792adff) org-plot.el: add custom var for affecting the term * [`7b5113a3`](https://github.com/emacs-straight/org-mode/commit/7b5113a3bcd7536803b578423facd40b69adc30e) org-plot.el: tweak term, preamble custom vars * [`74f6a961`](https://github.com/emacs-straight/org-mode/commit/74f6a9610e942a31138c6184ad9970614bc4cab3) org-plot.el: add radar plot type * [`14a66b2b`](https://github.com/emacs-straight/org-mode/commit/14a66b2b3ab28457c0c98cbb353fe744baf6dbea) org-plot.el: fix logic error in transposition * [`1ac45d76`](https://github.com/emacs-straight/org-mode/commit/1ac45d76e8539d1b07dd3429b045d95070024186) org-plot.el: complete transition to softcoded type * [`c2fdf424`](https://github.com/emacs-straight/org-mode/commit/c2fdf424a665a6c39e8946da5308068da0c2fc2c) org-plot.el: avoid arithmetic overflow error * [`a46cadfa`](https://github.com/emacs-straight/org-mode/commit/a46cadfae3bde1dfb9e7557992617ce552156682) org-plot.el: add missing cl- prefixes * [`90815cc9`](https://github.com/emacs-straight/org-mode/commit/90815cc9487ba84189f8ee186bd9fd8d8276815f) org-plot.el: radar plot, join last points to first * [`a831e763`](https://github.com/emacs-straight/org-mode/commit/a831e763fae2bfa4ed588ad5a4db0adf43b35cf8) org-plot.el: Make min/max keywords consistent * [`1af809c5`](https://github.com/emacs-straight/org-mode/commit/1af809c5730948fdab3555e32c203e1d57aaf354) org-manual.org: document org-plot changes * [`2af68d6a`](https://github.com/emacs-straight/org-mode/commit/2af68d6a45600cb120514037be27f31550f5264a) etc/ORG-NEWS: Add an entry * [`01f57aa0`](https://github.com/emacs-straight/org-mode/commit/01f57aa0dfc50fee483cfacf561b3b7c08466813) org-macs: Make org-mks window navigable when needed * [`678f4d4b`](https://github.com/emacs-straight/org-mode/commit/678f4d4b354d2c11dfc38dc9a999d181cc825e3e) doc/org-manual.org: Remove a reference * [`a846152e`](https://github.com/emacs-straight/org-mode/commit/a846152e4d755e0dc4c8b7e95531ab39a2aa09ae) doc/org-manual.org: Enhance examples * [`c822c80e`](https://github.com/emacs-straight/org-mode/commit/c822c80ef883e3514c0464d740b1f6ff276faa9e) contrib/lisp/org-contacts.el: Add stardiviner as the maintainer * [`a4d0607e`](https://github.com/emacs-straight/org-mode/commit/a4d0607e1901338b50493533815489cb71ec3844) contrib/org-mac-link.el: fix Mail.app link compatibility with macOS 11 * [`5ee39c35`](https://github.com/emacs-straight/org-mode/commit/5ee39c3524bfbd881b6ca1e5eec20a045543e585) ox-html: Add margin to fix overflow visibility problem * [`a4e6a6fa`](https://github.com/emacs-straight/org-mode/commit/a4e6a6fa77d3920f167173c8560a10de09d3b9bb) lisp/org.el: Remove local variable `generated-autoload-file' * [`86af7e0c`](https://github.com/emacs-straight/org-mode/commit/86af7e0c2ffe91e301b86b998f3eda789ad8fa28) lisp/org.el: Bump version to 9.4.3 * [`11d186a7`](https://github.com/emacs-straight/org-mode/commit/11d186a7014648600be4973b75a6d407aef1c6e0) Fix previous commit * [`baf1e7a6`](https://github.com/emacs-straight/org-mode/commit/baf1e7a6448133cf4c5fbbfb431a2865822117d8) ob-gnuplot: Fix error on non-string :var assignment * [`6ec2bb04`](https://github.com/emacs-straight/org-mode/commit/6ec2bb04e3d31806fdb57390873a5c4143b698be) org-macs: Improve navigation in org-mks window * [`6bdb6644`](https://github.com/emacs-straight/org-mode/commit/6bdb664406244b0078c360b713024b1e99a2f778) lisp/ob-haskell.el: Add Lawrence Bottorff as maintainer * [`de6d9022`](https://github.com/emacs-straight/org-mode/commit/de6d90224cc7be7ab072314e4b8ca05a712b527c) org-attach: Consider inlinetasks when calculating attach dir * [`e7f625d4`](https://github.com/emacs-straight/org-mode/commit/e7f625d4264b46352e4f4bc45dc024992a98125b) org-contacts.el: Fix org-store-link error caused by org-contacts * [`6b83c6e4`](https://github.com/emacs-straight/org-mode/commit/6b83c6e4eaec4af47a90d05c3410d4637d8cb8da) org-contacts.el: Add support for org-id generated link. * [`b6e5ca28`](https://github.com/emacs-straight/org-mode/commit/b6e5ca28ef30c1a9c49937e5af49da75bbf68bb8) lint: Remove unnecessary call to `tabulated-list-print' * [`713b3bf7`](https://github.com/emacs-straight/org-mode/commit/713b3bf7a091b262fdfd77e35fdc290173e2dfdc) org-contacts.el: Inherit face from org-link * [`1f4ea532`](https://github.com/emacs-straight/org-mode/commit/1f4ea532a4ad67e25389b79b87cd12026375934a) Document changes of headline fontification introduced in 979e82fc3 * [`5e7c09e2`](https://github.com/emacs-straight/org-mode/commit/5e7c09e2775d04322b22e635222b464386dcf41b) org-agenda.el and org-capture.el: Remove `generated-autoload-file' * [`abedf386`](https://github.com/emacs-straight/org-mode/commit/abedf386b3f13af2769728755d00c4698ac5d3b0) lisp/org.el: Bump version to 9.4.4 * [`118da7d2`](https://github.com/emacs-straight/org-mode/commit/118da7d280a5fe474fc2b5a4e2d48ce5f910a29b) element: Fix table.el tables parsing * [`97f1d8e3`](https://github.com/emacs-straight/org-mode/commit/97f1d8e34012c4181f587657a0c9cb39477ad997) element: Improve table.el tables dectection * [`9140a712`](https://github.com/emacs-straight/org-mode/commit/9140a712fb1546ecb52ddda6e607f0bcecd436d8) etc/ORG-NEWS: Add example for new startup option * [`bd1c3187`](https://github.com/emacs-straight/org-mode/commit/bd1c3187cfcdc52ae3492df7cbe6ec394d6e38c8) .dir-locals.el: Set indent-tabs-mode to nil in Elisp sources * [`86184e2c`](https://github.com/emacs-straight/org-mode/commit/86184e2cb6f05e65f05bc61bb87969c8f4d56b47) org-plot: Adjust pcase patterns for Emacs 24 compatibility * [`d631a51e`](https://github.com/emacs-straight/org-mode/commit/d631a51e014c62b8fe284767e6abf7ac46e7f110) org-attach: Silence byte-compiler * [`7a9a8a56`](https://github.com/emacs-straight/org-mode/commit/7a9a8a56af4cf02abc1fb86eda96f0c7dc6b0348) org-plot.el: fix compiler warnings * [`99eafe37`](https://github.com/emacs-straight/org-mode/commit/99eafe3787e03ac31ab12b3cc28f7832ef8b0987) Update copyright year to 2021 * [`f948234c`](https://github.com/emacs-straight/org-mode/commit/f948234cba5603e68745bf4dd97feea66829ef94) org-contacts.el: Add usage comments * [`c3888a8b`](https://github.com/emacs-straight/org-mode/commit/c3888a8b74ef82d321fcf8f695d9dcb901a409a1) org-contacts.el: replace obsolete alias `loop' with `cl-loop' * [`273391c9`](https://github.com/emacs-straight/org-mode/commit/273391c978d2e9759a9a389bf5d5eb9b03b8fe98) duration: Avoid recursive load error * [`e6e1c081`](https://github.com/emacs-straight/org-mode/commit/e6e1c081161f771f6a1453319588993663933a02) org-contacts.el: Only use org-id-store-link if org-id is loaded * [`00b4de32`](https://github.com/emacs-straight/org-mode/commit/00b4de3294e526f9684c7669f9697b2fe27e13e1) ol: Avoid initial input when completing function for storing link * [`38f14383`](https://github.com/emacs-straight/org-mode/commit/38f143830c9a374440c040d161b962ae4fa0e74e) org-contacts.el: Use `bound-and-true-p' to check (unbound) var * [`94d1753e`](https://github.com/emacs-straight/org-mode/commit/94d1753ec8b171442f0e789ca38beee2415198b0) org-contacts.el: Fix store link function does not return link. * [`332da69b`](https://github.com/emacs-straight/org-mode/commit/332da69b3c3ca222943728c20287e4ace6d40e61) element: Fix table.el parsing... again! * [`248dfcd7`](https://github.com/emacs-straight/org-mode/commit/248dfcd711a7c82f7443227f0ee0f7adc5f1f477) Backport commit 5ada3eece from Emacs * [`33de2bd8`](https://github.com/emacs-straight/org-mode/commit/33de2bd8ef90483778e4b18acbce388957b6863f) org-compat: Take in obsolete org-copy * [`9ea7ff5e`](https://github.com/emacs-straight/org-mode/commit/9ea7ff5e2f8f9f280f8022cade62c1a3bba1478c) Fix typo in f948234cb * [`d02c0218`](https://github.com/emacs-straight/org-mode/commit/d02c0218efdb39820df3d57fa74af5a4d54a4452) testing/lisp/test-org-archive.el: Fix test * [`86ad8d27`](https://github.com/emacs-straight/org-mode/commit/86ad8d2791ac141bc0b39e21f5e114387fd817a0) org.el: Complete tags from both global and buffer local * [`1806abdc`](https://github.com/emacs-straight/org-mode/commit/1806abdc396d4987ed5e563c0204a13d14c25e1d) org-footnote: Fix inserting new footnote mangling drawers * [`d700dff7`](https://github.com/emacs-straight/org-mode/commit/d700dff7ac564b797632c8b9b6120a6c8e8fecda) ob-java: Include static imports in regex * [`7fa81732`](https://github.com/emacs-straight/org-mode/commit/7fa8173282f85c2ca03cc7f51f28f6adfb250610) ob-java: Allow header to override commands * [`f4b9f980`](https://github.com/emacs-straight/org-mode/commit/f4b9f98088924dd24d2bbfbe56d4f22de3fa9583) lisp/ox-html.el: make html meta tag builder nicer * [`a8df7670`](https://github.com/emacs-straight/org-mode/commit/a8df7670c8f7d52d779e1d8e922d519b0aec3afb) lisp/ox-html.el: make html meta tags customizable --- nix/sources.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nix/sources.json b/nix/sources.json index d3d8506..55f29db 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -137,10 +137,10 @@ "homepage": "https://code.orgmode.org/bzg/org-mode", "owner": "emacs-straight", "repo": "org-mode", - "rev": "2a4578b103a9f5e70f50523cf6b28655a56c2cbe", - "sha256": "0gcynwmqmvsryjw0bscjci7ll9xw3k1yqa06w9pp312dk500ycgh", + "rev": "a8df7670c8f7d52d779e1d8e922d519b0aec3afb", + "sha256": "01rcp3kp41zrm43qg7c5v0422mpdi1kciqq2nnbhhns91p3hgv35", "type": "tarball", - "url": "https://github.com/emacs-straight/org-mode/archive/2a4578b103a9f5e70f50523cf6b28655a56c2cbe.tar.gz", + "url": "https://github.com/emacs-straight/org-mode/archive/a8df7670c8f7d52d779e1d8e922d519b0aec3afb.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "org-yt": { From 44dd899fce52229803c8adaaf7210aa8c897aeeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Thu, 31 Dec 2020 20:06:37 +0000 Subject: [PATCH 04/10] flake: rename inputs to prevent errors on update If input name contains `.` character then `invalid flake input path element` error message is displayed on running `nix flake update --update-input x.y` --- default.nix | 2 +- flake.nix | 12 ++++++------ overrides.nix | 6 ++---- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/default.nix b/default.nix index 185ec7a..f5e1525 100644 --- a/default.nix +++ b/default.nix @@ -104,7 +104,7 @@ let # Stage 2: install dependencies and byte-compile prepared source doomLocal = let - straight-env = pkgs.callPackage (lock "nix-straight.el") { + straight-env = pkgs.callPackage (lock "nix-straight") { emacsPackages = if bundledPackages then let diff --git a/flake.nix b/flake.nix index 34ccbeb..455bea1 100644 --- a/flake.nix +++ b/flake.nix @@ -52,8 +52,8 @@ evil-quick-diff.flake = false; explain-pause-mode.url = "github:lastquestion/explain-pause-mode"; explain-pause-mode.flake = false; - "nix-straight.el".url = "github:vlaci/nix-straight.el/v2.1.0"; - "nix-straight.el".flake = false; + nix-straight.url = "github:vlaci/nix-straight.el/v2.1.0"; + nix-straight.flake = false; nose.url= "github:emacsattic/nose"; nose.flake = false; ob-racket.url = "github:xchrishawk/ob-racket"; @@ -64,10 +64,10 @@ org-yt.flake = false; php-extras.url = "github:arnested/php-extras"; php-extras.flake = false; - "reveal.js".url = "github:hakimel/reveal.js"; - "reveal.js".flake = false; - "rotate-text.el".url = "github:debug-ito/rotate-text.el"; - "rotate-text.el".flake = false; + revealjs.url = "github:hakimel/reveal.js"; + revealjs.flake = false; + rotate-text.url = "github:debug-ito/rotate-text.el"; + rotate-text.flake = false; }; outputs = inputs: { diff --git a/overrides.nix b/overrides.nix index e59f414..293f0f3 100644 --- a/overrides.nix +++ b/overrides.nix @@ -72,8 +72,7 @@ self: super: { }; revealjs = self.straightBuild { - pname = "reveal.js"; - ename = "revealjs"; + pname = "revealjs"; installPhase = '' LISPDIR=$out/share/emacs/site-lisp @@ -84,8 +83,7 @@ self: super: { }; rotate-text = self.straightBuild { - pname = "rotate-text.el"; - ename = "rotate-text"; + pname = "rotate-text"; }; so-long = self.straightBuild { From 460e96f89d1cd6ee54ed19d2edc36873de2a3bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Sat, 26 Dec 2020 14:45:48 +0000 Subject: [PATCH 05/10] github actions: test build from flake --- .github/workflows/check-build.yml | 21 ++++ flake.nix | 9 +- test/doom.d/config.el | 0 test/doom.d/init.el | 184 ++++++++++++++++++++++++++++++ test/doom.d/packages.el | 0 5 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/check-build.yml create mode 100644 test/doom.d/config.el create mode 100644 test/doom.d/init.el create mode 100644 test/doom.d/packages.el diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml new file mode 100644 index 0000000..e0cecd3 --- /dev/null +++ b/.github/workflows/check-build.yml @@ -0,0 +1,21 @@ +name: "Test" +on: + pull_request: + push: + branches: + - master + - develop +jobs: + tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + # Nix Flakes doesn't work on shallow clones + fetch-depth: 0 + - uses: cachix/install-nix-action@v12 + with: + install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install + extra_nix_config: | + experimental-features = nix-command flakes + - run: nix flake check -L diff --git a/flake.nix b/flake.nix index 455bea1..f96dc51 100644 --- a/flake.nix +++ b/flake.nix @@ -70,7 +70,12 @@ rotate-text.flake = false; }; - outputs = inputs: { - hmModule = import ./modules/home-manager.nix inputs; + outputs = { nixpkgs, ... }@inputs: { + hmModule = import ./modules/home-manager.nix inputs; + checks."x86_64-linux".init-example-el = + let + pkgs = nixpkgs.legacyPackages."x86_64-linux"; + in + pkgs.callPackage ./. { doomPrivateDir = ./test/doom.d; dependencyOverrides = inputs; }; }; } diff --git a/test/doom.d/config.el b/test/doom.d/config.el new file mode 100644 index 0000000..e69de29 diff --git a/test/doom.d/init.el b/test/doom.d/init.el new file mode 100644 index 0000000..9b84000 --- /dev/null +++ b/test/doom.d/init.el @@ -0,0 +1,184 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a "Module Index" link where you'll find +;; a comprehensive list of Doom's modules and what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + company ; the ultimate code completion backend + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ivy ; a search engine for love and life + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;(emoji +unicode) ; 🙂 + ;;fill-column ; a `fill-column' indicator + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;hydra + ;;indent-guides ; highlighted indent columns + ;;ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + ;;treemacs ; a project drawer, like neotree but cooler + ;;unicode ; extended unicode support for various languages + vc-gutter ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + ;;eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + ;;vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + ;;spell ; tasing you for misspelling mispelling + ;;grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;debugger ; FIXME stepping through code, to help you add bugs + ;;direnv + ;;docker + ;;editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + ;;gist ; interacting with github gists + lookup ; navigate your code and its documentation + ;;lsp + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;rgb ; creating color strings + ;;taskrunner ; taskrunner for all your projects + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if IS-MAC macos) ; improve compatibility with macOS + ;;tty ; improve the terminal Emacs experience + + :lang + ;;agda ; types of types of types of types... + ;;cc ; C/C++/Obj-C madness + ;;clojure ; java with a lisp + ;;common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + ;;(dart +flutter) ; paint ui and not much else + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;faust ; dsp, but you get to keep your soul + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + ;;(go +lsp) ; the hipster dialect + ;;(haskell +dante) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + ;;idris ; a language you can depend on + ;;json ; At least it ain't XML + ;;(java +meghanada) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean + ;;factor + ;;ledger ; an accounting system in Emacs + ;;lua ; one-based indices? one-based indices + markdown ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + ;;nix ; I hereby declare "nix geht mehr!" + ;;ocaml ; an objective camel + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;purescript ; javascript, but functional + ;;python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + ;;scheme ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + ;;yaml ; JSON, but readable + + :email + ;;(mu4e +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + ;;twitter ; twitter client https://twitter.com/vnought + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/test/doom.d/packages.el b/test/doom.d/packages.el new file mode 100644 index 0000000..e69de29 From fbb213c5318c054da38d3c9aee717c93f2c5e257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Sat, 26 Dec 2020 15:06:38 +0000 Subject: [PATCH 06/10] github actions: cache nix store contents --- .github/workflows/check-build.yml | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index e0cecd3..b7ee4b0 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -1,4 +1,4 @@ -name: "Test" +name: "Check Build" on: pull_request: push: @@ -6,7 +6,8 @@ on: - master - develop jobs: - tests: + check: + name: Flake Check runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -18,4 +19,24 @@ jobs: install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install extra_nix_config: | experimental-features = nix-command flakes - - run: nix flake check -L + - name: Retrieve /nix/store archive + uses: actions/cache@v2 + id: cache-nix-store + with: + path: nix-store.dump + key: nix-store-${{ hashFiles('flake.*') }} + restore-keys: | + nix-store- + - name: Import /nix/store contents + if: ${{ steps.cache-nix-store.outputs.cache-hit }} + run: | + if [[ -f nix-store.dump ]]; then + nix-store --import < nix-store.dump || true + rm nix-store.dump + fi + - run: | + nix flake check -L + - name: Export /nix/store contents + if: ${{ !steps.cache-nix-store.outputs.cache-hit }} + run: | + nix-store --export $(nix-store -qR /nix/store/*-doom-emacs) > nix-store.dump From 5ee8044b04e1fd4e6b98a0407dc2a387fb24a489 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Sat, 26 Dec 2020 18:24:14 +0000 Subject: [PATCH 07/10] github actions: niv -> flakes Use flake.nix/lock as a single source of truth for resolving dependencies NOTE: this patch implies a dependency update as well. --- .github/workflows/niv-updates.yml | 17 -- .github/workflows/update-dependencies.yml | 25 ++ .github/workflows/update_flake_lock.py | 173 ++++++++++++ default.nix | 4 +- flake-compat-helper.nix | 183 +++++++++++++ flake.lock | 316 ++++++++++++++++++++++ flake.nix | 32 ++- nix/sources.json | 194 ------------- nix/sources.nix | 134 --------- 9 files changed, 723 insertions(+), 355 deletions(-) delete mode 100644 .github/workflows/niv-updates.yml create mode 100644 .github/workflows/update-dependencies.yml create mode 100755 .github/workflows/update_flake_lock.py create mode 100644 flake-compat-helper.nix create mode 100644 flake.lock delete mode 100644 nix/sources.json delete mode 100644 nix/sources.nix diff --git a/.github/workflows/niv-updates.yml b/.github/workflows/niv-updates.yml deleted file mode 100644 index fb472ef..0000000 --- a/.github/workflows/niv-updates.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Automated niv-managed dependency updates -on: - schedule: - # Every friday - - cron: '0 0 * * FRI' -jobs: - niv-updater: - name: 'Create PRs for niv-managed dependencies' - runs-on: ubuntu-latest - steps: - # notice there is no checkout step - - name: niv-updater-action - uses: knl/niv-updater-action@v7 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - pull_request_base: 'develop' diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml new file mode 100644 index 0000000..9cad175 --- /dev/null +++ b/.github/workflows/update-dependencies.yml @@ -0,0 +1,25 @@ +name: "Update Dependencies" +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * FRI' +jobs: + update-deps: + name: Update dependencies + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + # Nix Flakes doesn't work on shallow clones + fetch-depth: 0 + - uses: cachix/install-nix-action@v12 + with: + install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20201221_9fab14a/install + extra_nix_config: | + experimental-features = nix-command flakes + - name: Create PRs for dependencies + env: + GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_BASE_BRANCH: develop + run: | + nix develop -c .github/workflows/update_flake_lock.py diff --git a/.github/workflows/update_flake_lock.py b/.github/workflows/update_flake_lock.py new file mode 100755 index 0000000..959beda --- /dev/null +++ b/.github/workflows/update_flake_lock.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python3 +import json +import sys +import re +from tempfile import TemporaryDirectory +from subprocess import check_call +from difflib import unified_diff + +from os import environ as env, path +from typing import NamedTuple, cast +from github import Github +from github.ContentFile import ContentFile +from github.GitCommit import GitCommit +from github.GithubException import GithubException +from github.Repository import Repository + +API_TOKEN = env["GITHUB_API_TOKEN"] +REPOSITORY = env["GITHUB_REPOSITORY"] +BASE_BRANCH = env.get("GITHUB_BASE_BRANCH", "master") +DRY_RUN = bool(env.get("GITHUB_DRY_RUN", False)) + +LOCK = "flake.lock" +FLAKE = "flake.nix" + + +class Input(NamedTuple): + repo: str + branch: str + rev: str + + +class FlakeLock: + def __init__(self, github: Github, lock_contents) -> None: + self._github = github + self._lock = json.loads(lock_contents) + + @property + def inputs(self): + return self._lock["nodes"]["root"]["inputs"] + + def get_input(self, flake_input): + n = self._lock["nodes"][flake_input] + repo_id = f"{n['locked']['owner']}/{n['locked']['repo']}" + branch = n["original"].get("ref") + if not branch: + repo = self._github.get_repo(repo_id) + branch = repo.default_branch + return Input(repo_id, branch, n["locked"]["rev"]) + + +def nix_flake_update(repo, flake_input): + check_call(["nix", "flake", "update", "--update-input", flake_input], cwd=repo) + + +def format_change(change: GitCommit, repo): + sha = change.sha[:8] + url = change.html_url + msg = re.sub( + r"#(?P\d+)", + f"[{repo}\u2060#\\g](http://r.duckduckgo.com/l/?uddg=https://github.com/{repo}/issues/\\g)", + change.message.splitlines()[0], + ) + return f"- [{sha}]({url}) {msg}" + + +def create_pr( + repo: Repository, + pr_branch_name: str, + head: str, + file: ContentFile, + updated_content: str, + pr_title: str, + pr_body: str, +): + try: + repo.get_branch(pr_branch_name) + print(f"Branch '{pr_branch_name}' already exist. Skipping update.") + return + except GithubException as ex: + if ex.status != 404: + raise + + pr_branch = repo.create_git_ref(pr_branch_name, head) + repo.update_file( + file.path, + f"{pr_title}\n\n{pr_body}", + updated_content, + file.sha, + branch=pr_branch_name, + ) + repo.create_pull(title=pr_title, body=pr_body, head=pr_branch.ref, base=BASE_BRANCH) + + +def main(): + if API_TOKEN: + github = Github(API_TOKEN) + else: + print("GITHUB_API_TOKEN is required") + sys.exit(1) + + repo = github.get_repo(REPOSITORY) + head = repo.get_branch(BASE_BRANCH).commit.sha + flake_contents = cast(ContentFile, repo.get_contents(FLAKE, ref=BASE_BRANCH)) + lock_contents = cast(ContentFile, repo.get_contents(LOCK, ref=BASE_BRANCH)) + lock_lines = lock_contents.decoded_content.decode().splitlines(keepends=True) + + lock = FlakeLock(github, lock_contents.decoded_content) + + for flake_input in lock.inputs: + with TemporaryDirectory(prefix="nix-flake-update.") as root: + with open(path.join(root, LOCK), "wb") as f: + f.write(lock_contents.decoded_content) + with open(path.join(root, FLAKE), "wb") as f: + f.write(flake_contents.decoded_content) + + print(f"[{flake_input}] Checking for updates") + nix_flake_update(root, flake_input) + + with open(path.join(root, LOCK), "r") as f: + updated_lock_lines = f.readlines() + + diff = list(unified_diff(lock_lines, updated_lock_lines)) + + if not diff: + print(f"[{flake_input}] No update available") + continue + + print(f"[{flake_input}] Updated") + + updated_lock_contents = "".join(updated_lock_lines) + for l in diff: + print(l, end="") + + old = lock.get_input(flake_input) + new = FlakeLock(github, updated_lock_contents).get_input(flake_input) + + title = f"flake.lock: Updating '{flake_input} ({old.repo})' - {old.rev[:8]} -> {new.rev[:8]}" + + dep_repo = github.get_repo(new.repo) + changes = dep_repo.compare(old.rev, new.rev) + commit_messages = "\n".join( + format_change(c.commit, new.repo) + for c in changes.commits + if len(c.parents) == 1 + ) + body = f"""\ +### Changes for {flake_input} + +On branch: {new.branch} +Commits: {changes.html_url} + +{commit_messages} +""" + + print(f"[{flake_input}] - Creating PR\nTitle: {title}\nBody:\n{body}") + if DRY_RUN: + print(f"DRY-RUN: NOT creating PR...") + continue + + pr_branch_name = f"refs/heads/update/{flake_input}-{new.rev}" + create_pr( + repo, + pr_branch_name, + head, + lock_contents, + updated_lock_contents, + title, + body, + ) + + +if __name__ == "__main__": + main() diff --git a/default.nix b/default.nix index f5e1525..8c7b647 100644 --- a/default.nix +++ b/default.nix @@ -66,10 +66,10 @@ , writeTextDir }: let - sources = import ./nix/sources.nix; + flake = import ./flake-compat-helper.nix { src=./.; }; lock = p: if dependencyOverrides ? ${p} then dependencyOverrides.${p} - else sources.${p}; + else flake.inputs.${p}; # Packages we need to get the default doom configuration run overrides = self: super: (pkgs.callPackage ./overrides.nix { inherit lock; } self super) // (emacsPackagesOverlay self super); diff --git a/flake-compat-helper.nix b/flake-compat-helper.nix new file mode 100644 index 0000000..12f0647 --- /dev/null +++ b/flake-compat-helper.nix @@ -0,0 +1,183 @@ +# Based on flake-compat as of: +# Based on flake-compat as of: https://github.com/edolstra/flake-compat/blob/99f1c2157fba4bfe6211a321fd0ee43199025dbf/default.nix +# Instead of generating a shim for `default.nix` it exposes the `allNodes` method + + +#Compatibility function to allow flakes to be used by +# non-flake-enabled Nix versions. Given a source tree containing a +# 'flake.nix' and 'flake.lock' file, it fetches the flake inputs and +# calls the flake's 'outputs' function. It then returns an attrset +# containing 'defaultNix' (to be used in 'default.nix'), 'shellNix' +# (to be used in 'shell.nix'). + +{ src, system ? builtins.currentSystem or "unknown-system" }: + +let + + lockFilePath = src + "/flake.lock"; + + lockFile = builtins.fromJSON (builtins.readFile lockFilePath); + + fetchTree = + info: + if info.type == "github" then + { outPath = fetchTarball "https://api.${info.host or "github.com"}/repos/${info.owner}/${info.repo}/tarball/${info.rev}"; + rev = info.rev; + shortRev = builtins.substring 0 7 info.rev; + lastModified = info.lastModified; + lastModifiedDate = formatSecondsSinceEpoch info.lastModified; + narHash = info.narHash; + } + else if info.type == "git" then + { outPath = + builtins.fetchGit + ({ url = info.url; } + // (if info ? rev then { inherit (info) rev; } else {}) + // (if info ? ref then { inherit (info) ref; } else {}) + ); + lastModified = info.lastModified; + lastModifiedDate = formatSecondsSinceEpoch info.lastModified; + narHash = info.narHash; + } // (if info ? rev then { + rev = info.rev; + shortRev = builtins.substring 0 7 info.rev; + } else { + }) + else if info.type == "path" then + { outPath = builtins.path { path = info.path; }; + narHash = info.narHash; + } + else if info.type == "tarball" then + { outPath = fetchTarball info.url; + narHash = info.narHash; + } + else if info.type == "gitlab" then + { inherit (info) rev narHash lastModified; + outPath = fetchTarball "https://${info.host or "gitlab.com"}/api/v4/projects/${info.owner}%2F${info.repo}/repository/archive.tar.gz?sha=${info.rev}"; + shortRev = builtins.substring 0 7 info.rev; + } + else + # FIXME: add Mercurial, tarball inputs. + throw "flake input has unsupported input type '${info.type}'"; + + callFlake4 = flakeSrc: locks: + let + flake = import (flakeSrc + "/flake.nix"); + + inputs = builtins.mapAttrs (n: v: + if v.flake or true + then callFlake4 (fetchTree (v.locked // v.info)) v.inputs + else fetchTree (v.locked // v.info)) locks; + + outputs = flakeSrc // (flake.outputs (inputs // {self = outputs;})); + in + assert flake.edition == 201909; + outputs; + + callLocklessFlake = flakeSrc: + let + flake = import (flakeSrc + "/flake.nix"); + outputs = flakeSrc // (flake.outputs ({ self = outputs; })); + in outputs; + + rootSrc = let + # Try to clean the source tree by using fetchGit, if this source + # tree is a valid git repository. + tryFetchGit = src: + if isGit && !isShallow + then + let res = builtins.fetchGit src; + in if res.rev == "0000000000000000000000000000000000000000" then removeAttrs res ["rev" "shortRev"] else res + else { outPath = src; }; + # NB git worktrees have a file for .git, so we don't check the type of .git + isGit = builtins.pathExists (src + "/.git"); + isShallow = builtins.pathExists (src + "/.git/shallow"); + + in + { lastModified = 0; lastModifiedDate = formatSecondsSinceEpoch 0; } + // (if src ? outPath then src else tryFetchGit src); + + # Format number of seconds in the Unix epoch as %Y%m%d%H%M%S. + formatSecondsSinceEpoch = t: + let + rem = x: y: x - x / y * y; + days = t / 86400; + secondsInDay = rem t 86400; + hours = secondsInDay / 3600; + minutes = (rem secondsInDay 3600) / 60; + seconds = rem t 60; + + # Courtesy of https://stackoverflow.com/a/32158604. + z = days + 719468; + era = (if z >= 0 then z else z - 146096) / 146097; + doe = z - era * 146097; + yoe = (doe - doe / 1460 + doe / 36524 - doe / 146096) / 365; + y = yoe + era * 400; + doy = doe - (365 * yoe + yoe / 4 - yoe / 100); + mp = (5 * doy + 2) / 153; + d = doy - (153 * mp + 2) / 5 + 1; + m = mp + (if mp < 10 then 3 else -9); + y' = y + (if m <= 2 then 1 else 0); + + pad = s: if builtins.stringLength s < 2 then "0" + s else s; + in "${toString y'}${pad (toString m)}${pad (toString d)}${pad (toString hours)}${pad (toString minutes)}${pad (toString seconds)}"; + + allNodes = + builtins.mapAttrs + (key: node: + let + sourceInfo = + if key == lockFile.root + then rootSrc + else fetchTree (node.info or {} // removeAttrs node.locked ["dir"]); + + subdir = if key == lockFile.root then "" else node.locked.dir or ""; + + flake = import (sourceInfo + (if subdir != "" then "/" else "") + subdir + "/flake.nix"); + + inputs = builtins.mapAttrs + (inputName: inputSpec: allNodes.${resolveInput inputSpec}) + (node.inputs or {}); + + # Resolve a input spec into a node name. An input spec is + # either a node name, or a 'follows' path from the root + # node. + resolveInput = inputSpec: + if builtins.isList inputSpec + then getInputByPath lockFile.root inputSpec + else inputSpec; + + # Follow an input path (e.g. ["dwarffs" "nixpkgs"]) from the + # root node, returning the final node. + getInputByPath = nodeName: path: + if path == [] + then nodeName + else + getInputByPath + # Since this could be a 'follows' input, call resolveInput. + (resolveInput lockFile.nodes.${nodeName}.inputs.${builtins.head path}) + (builtins.tail path); + + outputs = flake.outputs (inputs // { self = result; }); + + result = outputs // sourceInfo // { inherit inputs; inherit outputs; inherit sourceInfo; }; + in + if node.flake or true then + assert builtins.isFunction flake.outputs; + result + else + sourceInfo + ) + lockFile.nodes; + + result = + if !(builtins.pathExists lockFilePath) + then callLocklessFlake rootSrc + else if lockFile.version == 4 + then callFlake4 rootSrc (lockFile.inputs) + else if lockFile.version >= 5 && lockFile.version <= 7 + then allNodes.${lockFile.root} + else throw "lock file '${lockFilePath}' has unsupported version ${toString lockFile.version}"; + +in + result diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..d80b44f --- /dev/null +++ b/flake.lock @@ -0,0 +1,316 @@ +{ + "nodes": { + "doom-emacs": { + "flake": false, + "locked": { + "lastModified": 1611017958, + "narHash": "sha256-7UYJHbU4C+aV3x1xV+9gsyga4SNz+G8m2VFUVnetWMg=", + "owner": "hlissner", + "repo": "doom-emacs", + "rev": "2ad1eab6eebbae554ebcd931c03b7f906a77f3ec", + "type": "github" + }, + "original": { + "owner": "hlissner", + "ref": "develop", + "repo": "doom-emacs", + "type": "github" + } + }, + "doom-snippets": { + "flake": false, + "locked": { + "lastModified": 1609713949, + "narHash": "sha256-mthIKcR7l9Du32eoBj7PkcW/nKceNMAASjDVEmWsgNY=", + "owner": "hlissner", + "repo": "doom-snippets", + "rev": "aa5587b8c9863fcbb34e21d518ce1947ba4aeb22", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "doom-snippets", + "type": "github" + } + }, + "emacs-overlay": { + "flake": false, + "locked": { + "lastModified": 1611403984, + "narHash": "sha256-o7IGG+txGwLCAB4os1YW2FvAAIZWPYDCa5CxC6tkVaA=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "9e77787f9160d37ba4b07717442dc3ce12e8f7e8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, + "emacs-so-long": { + "flake": false, + "locked": { + "lastModified": 1575031854, + "narHash": "sha256-xIa5zO0ZaToDrec1OFjBK6l39AbA4l/CE4LInVu2hi0=", + "owner": "hlissner", + "repo": "emacs-so-long", + "rev": "ed666b0716f60e8988c455804de24b55919e71ca", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "emacs-so-long", + "type": "github" + } + }, + "evil-markdown": { + "flake": false, + "locked": { + "lastModified": 1591038520, + "narHash": "sha256-Kt2wxG1XCFowavVWtj0urM/yURKegonpZcxTy/+CrJY=", + "owner": "Somelauw", + "repo": "evil-markdown", + "rev": "064fe9b4767470472356d20bdd08e2f30ebbc9ac", + "type": "github" + }, + "original": { + "owner": "Somelauw", + "repo": "evil-markdown", + "type": "github" + } + }, + "evil-org-mode": { + "flake": false, + "locked": { + "lastModified": 1607203864, + "narHash": "sha256-JxwqVYDN6OIJEH15MVI6XOZAPtUWUhJQWHyzcrUvrFg=", + "owner": "hlissner", + "repo": "evil-org-mode", + "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "evil-org-mode", + "type": "github" + } + }, + "evil-quick-diff": { + "flake": false, + "locked": { + "lastModified": 1575189609, + "narHash": "sha256-oGzl1ayW9rIuq0haoiFS7RZsS8NFMdEA7K1BSozgnJU=", + "owner": "rgrinberg", + "repo": "evil-quick-diff", + "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", + "type": "github" + }, + "original": { + "owner": "rgrinberg", + "repo": "evil-quick-diff", + "type": "github" + } + }, + "explain-pause-mode": { + "flake": false, + "locked": { + "lastModified": 1595842060, + "narHash": "sha256-++znrjiDSx+cy4okFBBXUBkRFdtnE2x+trkmqjB3Njs=", + "owner": "lastquestion", + "repo": "explain-pause-mode", + "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", + "type": "github" + }, + "original": { + "owner": "lastquestion", + "repo": "explain-pause-mode", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nix-straight": { + "flake": false, + "locked": { + "lastModified": 1592852066, + "narHash": "sha256-IwmBDtGv7GamiwCG+awZN6VgtHqJElkv/ic0VrVXAkI=", + "owner": "vlaci", + "repo": "nix-straight.el", + "rev": "9e6f7d71760b997b09d9bd3046257bc9ec17265b", + "type": "github" + }, + "original": { + "owner": "vlaci", + "ref": "v2.1.0", + "repo": "nix-straight.el", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1611396451, + "narHash": "sha256-ZQDpSOA8NAu4Gzoen0lNtjxHB0GY1VJAC/cByOAvpb8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f6a583eeece936a1d917de67194fec4b6c74cf1f", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixpkgs-unstable", + "type": "indirect" + } + }, + "nose": { + "flake": false, + "locked": { + "lastModified": 1400604510, + "narHash": "sha256-daEi8Kta1oGaDEmUUDDQMahTTPOpvNpDKk22rlr7cB0=", + "owner": "emacsattic", + "repo": "nose", + "rev": "f8528297519eba911696c4e68fa88892de9a7b72", + "type": "github" + }, + "original": { + "owner": "emacsattic", + "repo": "nose", + "type": "github" + } + }, + "ob-racket": { + "flake": false, + "locked": { + "lastModified": 1584656173, + "narHash": "sha256-rBUYDDCXb+3D4xTPQo9UocbTPZ32kWV1Uya/1DmZknU=", + "owner": "xchrishawk", + "repo": "ob-racket", + "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", + "type": "github" + }, + "original": { + "owner": "xchrishawk", + "repo": "ob-racket", + "type": "github" + } + }, + "org-mode": { + "flake": false, + "locked": { + "lastModified": 1611291947, + "narHash": "sha256-wa0Z+y+T/AJEmdQYQX1rZADHhGU4mDqWBiC0j3JRPzY=", + "owner": "emacs-straight", + "repo": "org-mode", + "rev": "3916a574063887f145af2e42667fb6478a065440", + "type": "github" + }, + "original": { + "owner": "emacs-straight", + "repo": "org-mode", + "type": "github" + } + }, + "org-yt": { + "flake": false, + "locked": { + "lastModified": 1527381913, + "narHash": "sha256-dzQ6B7ryzatHCTLyEnRSbWO0VUiX/FHYnpHTs74aVUs=", + "owner": "TobiasZawada", + "repo": "org-yt", + "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", + "type": "github" + }, + "original": { + "owner": "TobiasZawada", + "repo": "org-yt", + "type": "github" + } + }, + "php-extras": { + "flake": false, + "locked": { + "lastModified": 1573312690, + "narHash": "sha256-r4WyVbzvT0ra4Z6JywNBOw5RxOEYd6Qe2IpebHXkj1U=", + "owner": "arnested", + "repo": "php-extras", + "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", + "type": "github" + }, + "original": { + "owner": "arnested", + "repo": "php-extras", + "type": "github" + } + }, + "revealjs": { + "flake": false, + "locked": { + "lastModified": 1602496264, + "narHash": "sha256-oN77CUmmvrzObhQbORXAujjb+4IkiYbKVLsi7hddsIM=", + "owner": "hakimel", + "repo": "reveal.js", + "rev": "0582f57517c97a4c7bfeb58762138c78883f94c5", + "type": "github" + }, + "original": { + "owner": "hakimel", + "repo": "reveal.js", + "type": "github" + } + }, + "root": { + "inputs": { + "doom-emacs": "doom-emacs", + "doom-snippets": "doom-snippets", + "emacs-overlay": "emacs-overlay", + "emacs-so-long": "emacs-so-long", + "evil-markdown": "evil-markdown", + "evil-org-mode": "evil-org-mode", + "evil-quick-diff": "evil-quick-diff", + "explain-pause-mode": "explain-pause-mode", + "flake-utils": "flake-utils", + "nix-straight": "nix-straight", + "nixpkgs": "nixpkgs", + "nose": "nose", + "ob-racket": "ob-racket", + "org-mode": "org-mode", + "org-yt": "org-yt", + "php-extras": "php-extras", + "revealjs": "revealjs", + "rotate-text": "rotate-text" + } + }, + "rotate-text": { + "flake": false, + "locked": { + "lastModified": 1322962747, + "narHash": "sha256-SOeOgSlcEIsKhUiYDJv0p+mLUb420s9E2BmvZQvZ0wk=", + "owner": "debug-ito", + "repo": "rotate-text.el", + "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", + "type": "github" + }, + "original": { + "owner": "debug-ito", + "repo": "rotate-text.el", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index f96dc51..07332c5 100644 --- a/flake.nix +++ b/flake.nix @@ -68,14 +68,30 @@ revealjs.flake = false; rotate-text.url = "github:debug-ito/rotate-text.el"; rotate-text.flake = false; + + nixpkgs.url = "nixpkgs/nixpkgs-unstable"; + flake-utils.url = "github:numtide/flake-utils"; }; - outputs = { nixpkgs, ... }@inputs: { - hmModule = import ./modules/home-manager.nix inputs; - checks."x86_64-linux".init-example-el = - let - pkgs = nixpkgs.legacyPackages."x86_64-linux"; - in - pkgs.callPackage ./. { doomPrivateDir = ./test/doom.d; dependencyOverrides = inputs; }; - }; + outputs = { nixpkgs, flake-utils, ... }@inputs: + let + inherit (flake-utils.lib) eachDefaultSystem eachSystem; + in + eachDefaultSystem + (system: + let + pkgs = import nixpkgs { inherit system; }; + in + { + devShell = pkgs.mkShell { buildInputs = [ (pkgs.python3.withPackages (ps: with ps; [ PyGithub ])) ]; }; + }) // + eachSystem [ "x86_64-linux" ] + (system: { + checks = { + init-example-el = nixpkgs.legacyPackages.${system}.callPackage ./. { doomPrivateDir = ./test/doom.d; dependencyOverrides = inputs; }; + }; + }) // + { + hmModule = import ./modules/home-manager.nix inputs; + }; } diff --git a/nix/sources.json b/nix/sources.json deleted file mode 100644 index 55f29db..0000000 --- a/nix/sources.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "doom-emacs": { - "branch": "develop", - "description": "An Emacs configuration for the stubborn martian vimmer", - "homepage": "", - "owner": "hlissner", - "repo": "doom-emacs", - "rev": "2ad1eab6eebbae554ebcd931c03b7f906a77f3ec", - "sha256": "1j2qmmvmcm2iv4k6zy3k4ghila5kc3pmfw8xvyayc2rqnlfhjipd", - "type": "tarball", - "url": "https://github.com/hlissner/doom-emacs/archive/2ad1eab6eebbae554ebcd931c03b7f906a77f3ec.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "doom-snippets": { - "branch": "master", - "description": "The Doom Emacs snippets library", - "homepage": "", - "owner": "hlissner", - "repo": "doom-snippets", - "rev": "aa5587b8c9863fcbb34e21d518ce1947ba4aeb22", - "sha256": "1ml0miji5m9h980c0d0ylyfbzicirwz0da37vzpd15vvqhllin4s", - "type": "tarball", - "url": "https://github.com/hlissner/doom-snippets/archive/aa5587b8c9863fcbb34e21d518ce1947ba4aeb22.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "emacs-overlay": { - "branch": "master", - "description": "Bleeding edge emacs overlay [maintainer=@adisbladis] ", - "homepage": "", - "owner": "nix-community", - "repo": "emacs-overlay", - "rev": "29267ea1a9fd54f01e80f64a10de9242677718cf", - "sha256": "187ivv1kab9x923gmdx5zdqis5z5krswmjkwbvvi241qdy6rg4fz", - "type": "tarball", - "url": "https://github.com/nix-community/emacs-overlay/archive/29267ea1a9fd54f01e80f64a10de9242677718cf.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "emacs-so-long": { - "branch": "master", - "description": "A mirror of the so-long package (until it's on ELPA)", - "homepage": "https://git.savannah.gnu.org/git/so-long.git/", - "owner": "hlissner", - "repo": "emacs-so-long", - "rev": "ed666b0716f60e8988c455804de24b55919e71ca", - "sha256": "0bc6nrdrvj422g15zqn00vs7ga9bq5c3hdg7ml1kls8rxp6bk1n4", - "type": "tarball", - "url": "https://github.com/hlissner/emacs-so-long/archive/ed666b0716f60e8988c455804de24b55919e71ca.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "evil-markdown": { - "branch": "master", - "description": "Integrates emacs evil and markdown", - "homepage": null, - "owner": "Somelauw", - "repo": "evil-markdown", - "rev": "064fe9b4767470472356d20bdd08e2f30ebbc9ac", - "sha256": "15mchbzwnlyccplqk0ly298z5kxc5qyvcmpmd8q5l22pdp2b1p9a", - "type": "tarball", - "url": "https://github.com/Somelauw/evil-markdown/archive/064fe9b4767470472356d20bdd08e2f30ebbc9ac.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "evil-org-mode": { - "branch": "master", - "description": "Supplemental evil-mode keybindings to emacs org-mode", - "homepage": null, - "owner": "hlissner", - "repo": "evil-org-mode", - "rev": "a9706da260c45b98601bcd72b1d2c0a24a017700", - "sha256": "0n5c5ysp5cvwb1814lhnslz41rjw79932ybx204y5s6dh1ajl717", - "type": "tarball", - "url": "https://github.com/hlissner/evil-org-mode/archive/a9706da260c45b98601bcd72b1d2c0a24a017700.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "evil-quick-diff": { - "branch": "master", - "description": "linediff.vim for evil", - "homepage": null, - "owner": "rgrinberg", - "repo": "evil-quick-diff", - "rev": "69c883720b30a892c63bc89f49d4f0e8b8028908", - "sha256": "15cww264lhddxh0d2ca5qd5nq5pda8hs4nj8mcpb5xlnmkayav50", - "type": "tarball", - "url": "https://github.com/rgrinberg/evil-quick-diff/archive/69c883720b30a892c63bc89f49d4f0e8b8028908.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "explain-pause-mode": { - "branch": "master", - "description": "top, but for Emacs.", - "homepage": "", - "owner": "lastquestion", - "repo": "explain-pause-mode", - "rev": "2356c8c3639cbeeb9751744dbe737267849b4b51", - "sha256": "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v", - "type": "tarball", - "url": "https://github.com/lastquestion/explain-pause-mode/archive/2356c8c3639cbeeb9751744dbe737267849b4b51.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nix-straight.el": { - "branch": "v2.1.0", - "description": null, - "homepage": null, - "owner": "vlaci", - "repo": "nix-straight.el", - "rev": "9e6f7d71760b997b09d9bd3046257bc9ec17265b", - "sha256": "0hh2aysmcd17zqpmj4l9gas6199p36ngk1h0ifk6dv5gs4782293", - "type": "tarball", - "url": "https://github.com/vlaci/nix-straight.el/archive/9e6f7d71760b997b09d9bd3046257bc9ec17265b.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "nose": { - "branch": "master", - "description": null, - "homepage": null, - "owner": "emacsattic", - "repo": "nose", - "rev": "f8528297519eba911696c4e68fa88892de9a7b72", - "sha256": "07bhzddaxdjd591xmg59yd657a1is0q515291jd83mjsmgq258bm", - "type": "tarball", - "url": "https://github.com/emacsattic/nose/archive/f8528297519eba911696c4e68fa88892de9a7b72.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "ob-racket": { - "branch": "master", - "description": "Org babel support for racket", - "homepage": "https://github.com/xchrishawk/ob-racket", - "owner": "xchrishawk", - "repo": "ob-racket", - "rev": "83457ec9e1e96a29fd2086ed19432b9d75787673", - "sha256": "0xcjk4wx9gr6adsnb4gnklyx7im1aj7l5kqlwg1ysvwp6061h5dc", - "type": "tarball", - "url": "https://github.com/xchrishawk/ob-racket/archive/83457ec9e1e96a29fd2086ed19432b9d75787673.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "org-mode": { - "branch": "master", - "description": "Mirror of org-mode from orgmode.org", - "homepage": "https://code.orgmode.org/bzg/org-mode", - "owner": "emacs-straight", - "repo": "org-mode", - "rev": "a8df7670c8f7d52d779e1d8e922d519b0aec3afb", - "sha256": "01rcp3kp41zrm43qg7c5v0422mpdi1kciqq2nnbhhns91p3hgv35", - "type": "tarball", - "url": "https://github.com/emacs-straight/org-mode/archive/a8df7670c8f7d52d779e1d8e922d519b0aec3afb.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "org-yt": { - "branch": "master", - "description": "Youtube links in org-mode, see https://emacs.stackexchange.com/questions/38098/org-mode-custom-youtube-link-syntax", - "homepage": null, - "owner": "TobiasZawada", - "repo": "org-yt", - "rev": "40cc1ac76d741055cbefa13860d9f070a7ade001", - "sha256": "0jsm3azb7lwikvc53z4p91av8qvda9s15wij153spkgjp83kld3p", - "type": "tarball", - "url": "https://github.com/TobiasZawada/org-yt/archive/40cc1ac76d741055cbefa13860d9f070a7ade001.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "php-extras": { - "branch": "develop", - "description": "Extra features for Emacs `php-mode'.", - "homepage": "http://marmalade-repo.org/packages/php-extras", - "owner": "arnested", - "repo": "php-extras", - "rev": "d410c5af663c30c01d461ac476d1cbfbacb49367", - "sha256": "0mcgwisnqplav0ga8xqqw72523iv841wp2cyw7d4lkzgpiav51dg", - "type": "tarball", - "url": "https://github.com/arnested/php-extras/archive/d410c5af663c30c01d461ac476d1cbfbacb49367.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "reveal.js": { - "branch": "master", - "description": "The HTML Presentation Framework", - "homepage": "https://revealjs.com", - "owner": "hakimel", - "repo": "reveal.js", - "rev": "0582f57517c97a4c7bfeb58762138c78883f94c5", - "sha256": "10xhblbyw8mvak58d294hbxxnf5sq0akj6qldv7brgm6944zppm0", - "type": "tarball", - "url": "https://github.com/hakimel/reveal.js/archive/0582f57517c97a4c7bfeb58762138c78883f94c5.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - }, - "rotate-text.el": { - "branch": "master", - "description": "Emacs: cycle through words, symbols and patterns", - "homepage": "http://nschum.de/src/emacs/rotate-text/", - "owner": "debug-ito", - "repo": "rotate-text.el", - "rev": "48f193697db996855aee1ad2bc99b38c6646fe76", - "sha256": "02fkv45nbbqrv12czlinpr8qpsd7yjdhr628hl58n42w560qxrs8", - "type": "tarball", - "url": "https://github.com/debug-ito/rotate-text.el/archive/48f193697db996855aee1ad2bc99b38c6646fe76.tar.gz", - "url_template": "https://github.com///archive/.tar.gz" - } -} diff --git a/nix/sources.nix b/nix/sources.nix deleted file mode 100644 index 8a725cb..0000000 --- a/nix/sources.nix +++ /dev/null @@ -1,134 +0,0 @@ -# This file has been generated by Niv. - -let - - # - # The fetchers. fetch_ fetches specs of type . - # - - fetch_file = pkgs: spec: - if spec.builtin or true then - builtins_fetchurl { inherit (spec) url sha256; } - else - pkgs.fetchurl { inherit (spec) url sha256; }; - - fetch_tarball = pkgs: spec: - if spec.builtin or true then - builtins_fetchTarball { inherit (spec) url sha256; } - else - pkgs.fetchzip { inherit (spec) url sha256; }; - - fetch_git = spec: - builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; }; - - fetch_builtin-tarball = spec: - builtins.trace - '' - WARNING: - The niv type "builtin-tarball" will soon be deprecated. You should - instead use `builtin = true`. - - $ niv modify -a type=tarball -a builtin=true - '' - builtins_fetchTarball { inherit (spec) url sha256; }; - - fetch_builtin-url = spec: - builtins.trace - '' - WARNING: - The niv type "builtin-url" will soon be deprecated. You should - instead use `builtin = true`. - - $ niv modify -a type=file -a builtin=true - '' - (builtins_fetchurl { inherit (spec) url sha256; }); - - # - # Various helpers - # - - # The set of packages used when specs are fetched using non-builtins. - mkPkgs = sources: - let - sourcesNixpkgs = - import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) {}; - hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; - hasThisAsNixpkgsPath = == ./.; - in - if builtins.hasAttr "nixpkgs" sources - then sourcesNixpkgs - else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then - import {} - else - abort - '' - Please specify either (through -I or NIX_PATH=nixpkgs=...) or - add a package called "nixpkgs" to your sources.json. - ''; - - # The actual fetching function. - fetch = pkgs: name: spec: - - if ! builtins.hasAttr "type" spec then - abort "ERROR: niv spec ${name} does not have a 'type' attribute" - else if spec.type == "file" then fetch_file pkgs spec - else if spec.type == "tarball" then fetch_tarball pkgs spec - else if spec.type == "git" then fetch_git spec - else if spec.type == "builtin-tarball" then fetch_builtin-tarball spec - else if spec.type == "builtin-url" then fetch_builtin-url spec - else - abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; - - # Ports of functions for older nix versions - - # a Nix version of mapAttrs if the built-in doesn't exist - mapAttrs = builtins.mapAttrs or ( - f: set: with builtins; - listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) - ); - - # fetchTarball version that is compatible between all the versions of Nix - builtins_fetchTarball = { url, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchTarball; - in - if lessThan nixVersion "1.12" then - fetchTarball { inherit url; } - else - fetchTarball attrs; - - # fetchurl version that is compatible between all the versions of Nix - builtins_fetchurl = { url, sha256 }@attrs: - let - inherit (builtins) lessThan nixVersion fetchurl; - in - if lessThan nixVersion "1.12" then - fetchurl { inherit url; } - else - fetchurl attrs; - - # Create the final "sources" from the config - mkSources = config: - mapAttrs ( - name: spec: - if builtins.hasAttr "outPath" spec - then abort - "The values in sources.json should not have an 'outPath' attribute" - else - spec // { outPath = fetch config.pkgs name spec; } - ) config.sources; - - # The "config" used by the fetchers - mkConfig = - { sourcesFile ? ./sources.json - , sources ? builtins.fromJSON (builtins.readFile sourcesFile) - , pkgs ? mkPkgs sources - }: rec { - # The sources, i.e. the attribute set of spec name to spec - inherit sources; - - # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers - inherit pkgs; - }; -in -mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } From 0062566446eb0e5c7e673c77573c74ad48f66bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Thu, 31 Dec 2020 22:46:38 +0000 Subject: [PATCH 08/10] github actions: status badge --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 0454f6c..f659861 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # nix-doom-emacs +| | Status | +| --- | --- | +| Build on `master` | [![Build Status on master](https://github.com/vlaci/nix-doom-emacs/workflows/Check%20Build/badge.svg?branch=master&event=push)](https://github.com/vlaci/nix-doom-emacs/actions?query=workflow%3ACheck%20Build+branch%3Amaster+event%3Apush) | +| Build on `develop` | [![Build Status on develop](https://github.com/vlaci/nix-doom-emacs/workflows/Check%20Build/badge.svg?branch=develop&event=push)](https://github.com/vlaci/nix-doom-emacs/actions?query=workflow%3ACheck%20Build+branch%3Adevelop+event%3Apush) | +| Dependency updater | [![Dependency Updater Status](https://github.com/vlaci/nix-doom-emacs/workflows/Update%20Dependencies/badge.svg?branch=master)](https://github.com/vlaci/nix-doom-emacs/actions?query=workflow%3AUpdate%20Dependencies+branch%3Amaster+event%3Apush) | + Nix expression to install and configure [doom-emacs](https://github.com/hlissner/doom-emacs). From 30eee512351ca9369cdea7ccfee747264336dc62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Fri, 1 Jan 2021 01:18:07 +0000 Subject: [PATCH 09/10] github actions: action to update init.el --- .github/workflows/update-dependencies.yml | 6 ++ .github/workflows/update_init_el.py | 109 ++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100755 .github/workflows/update_init_el.py diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index 9cad175..19d504b 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -23,3 +23,9 @@ jobs: GITHUB_BASE_BRANCH: develop run: | nix develop -c .github/workflows/update_flake_lock.py + - name: Create PR for updated init.el + env: + GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_BASE_BRANCH: develop + run: | + nix develop -c .github/workflows/update_init_el.py diff --git a/.github/workflows/update_init_el.py b/.github/workflows/update_init_el.py new file mode 100755 index 0000000..6f6210e --- /dev/null +++ b/.github/workflows/update_init_el.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +import sys +from difflib import unified_diff + +from os import environ as env +from typing import cast +from github import Github +from github.ContentFile import ContentFile +from github.GithubException import GithubException +from github.Repository import Repository + +API_TOKEN = env["GITHUB_API_TOKEN"] +REPOSITORY = env["GITHUB_REPOSITORY"] +BASE_BRANCH = env.get("GITHUB_BASE_BRANCH", "master") +DRY_RUN = bool(env.get("GITHUB_DRY_RUN", False)) + +INIT_EL = "test/doom.d/init.el" +UPSTREAM_INIT_EL = "init.example.el" +DOOM_UPSTREAM = "hlissner/doom-emacs" +UPSTREAM_BRANCH = "develop" + + +def create_pr( + repo: Repository, + pr_branch_name: str, + head: str, + file: ContentFile, + updated_content: str, + pr_title: str, + pr_body: str, +): + try: + repo.get_branch(pr_branch_name) + print(f"Branch '{pr_branch_name}' already exist. Skipping update.") + return + except GithubException as ex: + if ex.status != 404: + raise + + pr_branch = repo.create_git_ref(pr_branch_name, head) + repo.update_file( + file.path, + f"{pr_title}\n\n{pr_body}", + updated_content, + file.sha, + branch=pr_branch_name, + ) + repo.create_pull(title=pr_title, body=pr_body, head=pr_branch.ref, base=BASE_BRANCH) + + +def main(): + if API_TOKEN: + github = Github(API_TOKEN) + else: + print("GITHUB_API_TOKEN is required") + sys.exit(1) + + repo = github.get_repo(REPOSITORY) + head = repo.get_branch(BASE_BRANCH).commit.sha + init_el = cast(ContentFile, repo.get_contents(INIT_EL, ref=BASE_BRANCH)) + doom_repo = github.get_repo(DOOM_UPSTREAM) + upstream_init_el = cast( + ContentFile, doom_repo.get_contents(UPSTREAM_INIT_EL, ref=UPSTREAM_BRANCH) + ) + + diff = "".join( + unified_diff( + init_el.decoded_content.decode().splitlines(keepends=True), + upstream_init_el.decoded_content.decode().splitlines(keepends=True), + ) + ) + + if not diff: + print(f"{INIT_EL} is up-to date") + return + + print(f"{INIT_EL} updated.") + print(diff) + + upstream_rev = doom_repo.get_branch(UPSTREAM_BRANCH).commit.sha + title = f"{INIT_EL}: Updating from {DOOM_UPSTREAM} - {upstream_rev[:8]}" + + body = f"""\ +### Changes for {INIT_EL} + +```diff +{diff} +``` +""" + + print(f"[{INIT_EL}] - Creating PR\nTitle: {title}\nBody:\n{body}") + if DRY_RUN: + print(f"DRY-RUN: NOT creating PR...") + return + + pr_branch_name = f"refs/heads/update/init.el-{upstream_rev}" + create_pr( + repo, + pr_branch_name, + head, + init_el, + upstream_init_el.decoded_content.decode(), + title, + body, + ) + + +if __name__ == "__main__": + main() From 327b4629edd07e5df3a68cbc64836b031a55ae45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Vask=C3=B3?= Date: Sat, 23 Jan 2021 17:29:31 +0100 Subject: [PATCH 10/10] README.md: Reformat and fix spelling --- README.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f659861..aac7c48 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Nix expression to install and configure The expression builds a `doom-emacs` distribution with dependencies pre-installed based on an existing `~/.doom.d` directory. -It is not a fully fledged exprerience as some dependenices are not installed and +It is not a fully fledged experience as some dependencies are not installed and some may not be fully compatible as the version available in NixOS or [emacs-overlay](https://github.com/nix-community/emacs-overlay) may not be compatible with the `doom-emacs` requirements. @@ -39,6 +39,10 @@ in { } ``` +`./doom.d` should contain the following three files: `config.el`, `init.el` and +`packages.el`. If you don't already have an existing `doom-emacs` configuration, +you can use the contents of `test/doom.d` as a template. + Using `flake.nix`: ``` nix @@ -78,7 +82,7 @@ Using `flake.nix`: This expression leverages [nix-straight.el](https://github.com/vlaci/nix-straight.el) under the hood for -installing depdendencies. The restrictions of that package apply here too. +installing dependencies. The restrictions of that package apply here too. ## Usage @@ -90,13 +94,15 @@ On macOS on a fresh install, you might run into the error `Too many files open`. ## Installing emacs packages -In the initial packages.el instructions for how to install packages can be found. -However some packages might require a particular software dependency to be installed. -Trying to install those would give you an error of the type: +In the initial packages.el instructions for how to install packages can be +found. However some packages might require a particular software dependency to +be installed. Trying to install those would give you an error of the type: `Searching for program: No such file or directory, git` (Missing git dependency) -Here is how you would go installing [magit-delta](https://github.com/dandavison/magit-delta) for example (which requires git). +Here is how you would go installing +[magit-delta](https://github.com/dandavison/magit-delta) for example (which +requires git). -under the line: +Under the line: `doomPrivateDir = ./doom.d;` in your configuration, you would add the following: @@ -107,12 +113,15 @@ in your configuration, you would add the following: }); }; ``` -to make the git dependency available. -trying to rebuild doom-emacs with `home-manager switch` should work correctly now. + +To make the git dependency available. trying to rebuild doom-emacs with +`home-manager switch` should work correctly now. ## Using the daemon -to use the daemon, simply enable the emacs service (with nixos, home-manager or nix-darwin) and use the doom emacs package. `doom-emacs` will need to be referenced at the top of your config file. +To use the daemon, simply enable the emacs service (with `NixOS`, `home-manager` +or `nix-darwin`) and use the doom emacs package. `doom-emacs` will need to be +referenced at the top of your config file. ```nix services.emacs = {