Commit graph

275 commits

Author SHA1 Message Date
github-actions[bot]
278c7c304c flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/07be0e35817635c528bb07b2ae366bd87571ddd0?narHash=sha256-%2Bh4E6JtuYPq1pirpseqn0sYU8/5Lh5UuQaBAH78xDYQ%3D' (2024-05-26)
  → 'github:nix-community/emacs-overlay/9971a64fecb140433f2bde06f35383b281a13c1c?narHash=sha256-sC%2BV2hYlmsD%2BU8ZO6lL976Kae2U1AdMfXeNCyNXagcY%3D' (2024-05-27)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c5187508b11177ef4278edf19616f44f21cc8c69?narHash=sha256-iMgzIeedMqf30TXZ439zW3Yvng1Xm9QTGO%2BZwG1IWSw%3D' (2024-05-25)
  → 'github:NixOS/nixpkgs/e2dd4e18cc1c7314e24154331bae07df76eb582f?narHash=sha256-usk0vE7VlxPX8jOavrtpOqphdfqEQpf9lgedlY/r66c%3D' (2024-05-26)
2024-05-27 08:32:30 +00:00
Marien Zwart
c042f8d6f0
Disable magic nix cache's flakehub integration
This should not be doing anything, and I saw it stall (to retry
requests) once or twice.
2024-05-26 23:29:18 +10:00
Marien Zwart
af7c877008
Prune dependencies of example doomdir
This now matters for CI, as the example is still built using fetchGit
instead of the github fetcher.

The example was doing double duty as an example and a stress-test,
enabling some problematic or interesting modules. That is no longer
necessary (once the branch with dynamically generated init.el with all
modules/flags enabled lands).
2024-05-26 23:14:54 +10:00
Marien Zwart
0e996d2ccb
Rework CI caching, adding tarball cache
Using the lockfile hash as cache key did not make much sense, since
changes to Unstraightened itself change what we fetch.

And a static restore key means we never flush our cache: that might be
ok if cache size was reasonable, but it is not (over 3 GiB).

Switch to using the date as cache key, and only restore caches from the
current month.

Add tarballs as a second cache.

I considered caching all of ~/.cache/nix, but do not want to find out
the hard way any (new) caches are not portable if I add CI for other
platforms. The tarball-cache seems to be another git tree, so it should
be ok.
2024-05-26 23:01:30 +10:00
Marien Zwart
2af26fcfa1
Use fetchTree / github fetcher for CI
This seems to be much more space-efficient: ~/.cache/nix/tarball-cache
is about 700MiB uncompressed, under 300MiB as tzst (using tar's
defaults, CI uses zstdmt but I assume will be in the same ballpark). The
gitv3 cache is multiple GiB.

CI will still build doom-example using fetchGit. I intend to shrink the
number of modules enabled in the example to keep gitv3 cache size under
control.
2024-05-26 22:42:51 +10:00
Marien Zwart
645f79a916
Disable submodule fetching by default
This may turn out to be too much (but it does at least build).

Motivation: CI's git checkouts consume an unmanageably large amount of
cache (over 3 GiB per snapshot out of 10 GiB quota), and must be cached
for acceptable build speeds. Dropping submodules should help somewhat
directly, but I want to try switching most of CI over to fetchTree's
github fetcher, which won't include submodules. This change should help
maintain parity.

I'm also seeing a submodule fetch failure in CI (for stan-mode) that I
may not need to debug if the package functions without that submodule.
2024-05-26 22:06:07 +10:00
github-actions[bot]
47b6f20d7d flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/ead4e219ec8cd7341a7975f355b2450868fbb214?narHash=sha256-oFPp9LatqUWmjf1qXJ7CWplKcp5wtxD8Iqfw2TMqRUQ%3D' (2024-05-25)
  → 'github:nix-community/emacs-overlay/07be0e35817635c528bb07b2ae366bd87571ddd0?narHash=sha256-%2Bh4E6JtuYPq1pirpseqn0sYU8/5Lh5UuQaBAH78xDYQ%3D' (2024-05-26)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3305b2b25e4ae4baee872346eae133cf6f611783?narHash=sha256-0lT5RVelqN%2BdgXWWneXvV5ufSksW0r0TDQi8O6U2%2Bo8%3D' (2024-05-23)
  → 'github:NixOS/nixpkgs/c5187508b11177ef4278edf19616f44f21cc8c69?narHash=sha256-iMgzIeedMqf30TXZ439zW3Yvng1Xm9QTGO%2BZwG1IWSw%3D' (2024-05-25)
2024-05-26 08:30:31 +00:00
Marien Zwart
80a951826e
Support more tests than just startup
It looks like I will need tests that some of the more interesting
packages actually work, not just build.
2024-05-26 11:30:38 +10:00
Marien Zwart
4597bb574e
Add generator for init.el
To be used for more concise tests of specific module combinations.
2024-05-26 11:30:36 +10:00
Marien Zwart
95c1a5d594
Split checks off to their own file
To make it easier to add more.
2024-05-26 11:30:32 +10:00
github-actions[bot]
32764af15b flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/3ba06331405227702c827478f0aee79ba0b917fb?narHash=sha256-5vw5OwHoTkuyZS1EBnhxGgB/h0jMmO%2BxND6i9GLEQA8%3D' (2024-05-24)
  → 'github:nix-community/emacs-overlay/ead4e219ec8cd7341a7975f355b2450868fbb214?narHash=sha256-oFPp9LatqUWmjf1qXJ7CWplKcp5wtxD8Iqfw2TMqRUQ%3D' (2024-05-25)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3f316d2a50699a78afe5e77ca486ad553169061e?narHash=sha256-NQbegJb2ZZnAqp2EJhWwTf6DrZXSpA6xZCEq%2BRGV1r0%3D' (2024-05-22)
  → 'github:NixOS/nixpkgs/3305b2b25e4ae4baee872346eae133cf6f611783?narHash=sha256-0lT5RVelqN%2BdgXWWneXvV5ufSksW0r0TDQi8O6U2%2Bo8%3D' (2024-05-23)
2024-05-25 08:30:50 +00:00
Marien Zwart
2f89220bdc
Try to work around Git caching issue in newer Nix
After upgrading my local Nix from 2.18 to 2.22, evaluating
Unstraightened became very slow. I think this is a bug in
Nix (https://github.com/NixOS/nix/issues/10773), and it may explain
the slowness I've been seeing in CI.

Attempt to work around this by unconditionally passing `ref` to
`fetchGit`. This seems like it should not do anything, since we also
pass a `rev` and set `allRefs = true`, but it does work around the
caching issue (mostly... it looks like submodules still hit it).

Tested locally in both Nix 2.18 and Nix 2.22. I did see some odd
warnings with 2.18 (`warning: refname
'e4031935803c66eca2f076dce72b0a6a770d026c' is ambiguous`), but only for
one refname and they did not recur. Ignore that for now.
2024-05-25 13:18:29 +10:00
Marien Zwart
6401eecb57
Always fetch allRefs
Having CI confirm allRefs false is still safe would require a network
hit for each repo, which is already problematic. But
https://github.com/NixOS/nix/issues/7120 means we'd need to drop CI's
cached content, not just its cached refs: given how much we're fetching
that seems too much.

Fetch all refs unconditionally, assuming we're typically re-fetching the
same fixed rev repeatedly, which should be cached.
2024-05-25 12:46:43 +10:00
github-actions[bot]
363cb033fb flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/6eb679f5e75b80580e8d3fa1594369e128b37911?narHash=sha256-D8Zj8ftu5Zpgkb3wbQoxsRfJ9cGJxDdauFtuPHenD8E%3D' (2024-05-22)
  → 'github:nix-community/emacs-overlay/3ba06331405227702c827478f0aee79ba0b917fb?narHash=sha256-5vw5OwHoTkuyZS1EBnhxGgB/h0jMmO%2BxND6i9GLEQA8%3D' (2024-05-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e381a1288138aceda0ac63db32c7be545b446921?narHash=sha256-PH3w5av8d%2BTdwCkiWN4UPBTxrD9MpxIQPDVWctlomVo%3D' (2024-05-21)
  → 'github:NixOS/nixpkgs/3f316d2a50699a78afe5e77ca486ad553169061e?narHash=sha256-NQbegJb2ZZnAqp2EJhWwTf6DrZXSpA6xZCEq%2BRGV1r0%3D' (2024-05-22)
2024-05-24 08:31:24 +00:00
Marien Zwart
a55e257b13 CI: try to fix flake-checker
CI is failing with 'Error: Invalid("no nixpkgs dependency found for
specified key: ")`, probably because of this leftover start at multiple
nixpkgs inputs.

Remove it.
2024-05-23 20:16:15 +10:00
Marien Zwart
2562e36ad3 CI: micro-optimize cachix build
The doom profile is a non-negligible fraction of the cachix binary size,
that will only get worse (any dependency change will trigger a rebuild),
and caching them is essentially useless.

Expose emacsWithPackages so we can push just that. Skip
emacsWithPackages itself and push just the -deps derivation while we're
at it: caching either emacsWithPackages or -deps is similarly useless,
but they are a bit smaller.

When I say "non-negligible", it's about 1 MiB per "full" profile: much
larger than most individual libraries but not actually large. So this is
really a micro-optimization.
2024-05-23 20:16:15 +10:00
marienz
23156c4b4c
Merge pull request #5 from marienz/scala
Fix `:lang scala` with `:lang org`
2024-05-22 23:57:49 +10:00
Marien Zwart
4cf47c2fa7
Fix dependencies on unknown packages
Triggered by ob-ammonite (used by scala, in emacsattic) depending on
ammonite-term-repl (also in emacsattic). `eself` only contains
emacs-overlay and doomPackageSet.

All of this needs refactoring, but an explicit recursive call fixes the
immediate problem.
2024-05-22 23:41:07 +10:00
Marien Zwart
83302a46ad
Add two more emacsattic packages (used by scala)
We need better test coverage to figure out how many more of these there
are. I don't see a way of dealing with them better, but (unless they are
revived) they should not change underneath us, so keeping these
overrides does not seem too risky.

Fix formatting for the sly-stepper pin while I'm there.
2024-05-22 23:39:22 +10:00
github-actions[bot]
e0831e53fc flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/00193d839cb752bccc8f6508e54afd2dab60c7c9?narHash=sha256-aJo8V/pEvCiF0Cu%2BPLPnK0FU63yNAELwSiClnaj3swc%3D' (2024-05-21)
  → 'github:nix-community/emacs-overlay/6eb679f5e75b80580e8d3fa1594369e128b37911?narHash=sha256-D8Zj8ftu5Zpgkb3wbQoxsRfJ9cGJxDdauFtuPHenD8E%3D' (2024-05-22)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5a5ac83292c7842072318f57d68a48474f8bd34d?narHash=sha256-xYRimrR0duWvokWQEvB87bSsICeCvvX9DxpUOzCfsDE%3D' (2024-05-20)
  → 'github:NixOS/nixpkgs/e381a1288138aceda0ac63db32c7be545b446921?narHash=sha256-PH3w5av8d%2BTdwCkiWN4UPBTxrD9MpxIQPDVWctlomVo%3D' (2024-05-21)
2024-05-22 08:32:25 +00:00
github-actions[bot]
195c519950 flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/aa8ac9a29c08356bd9285f66b18dd49631cc2227?narHash=sha256-hkeDsZJS%2BWkAqWJFzmOaNzK0qoa2afozX5HGD%2Buuxos%3D' (2024-05-20)
  → 'github:nix-community/emacs-overlay/00193d839cb752bccc8f6508e54afd2dab60c7c9?narHash=sha256-aJo8V/pEvCiF0Cu%2BPLPnK0FU63yNAELwSiClnaj3swc%3D' (2024-05-21)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f9256de8281f2ccd04985ac5c30d8f69aefadbe8?narHash=sha256-3DNg/PV%2BX2V7yn8b/fUR2ppakw7D9N4sjVBGk6nDwII%3D' (2024-05-19)
  → 'github:NixOS/nixpkgs/5a5ac83292c7842072318f57d68a48474f8bd34d?narHash=sha256-xYRimrR0duWvokWQEvB87bSsICeCvvX9DxpUOzCfsDE%3D' (2024-05-20)
2024-05-21 08:31:38 +00:00
github-actions[bot]
f94c5e658c flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/66d6cd2197e49ce0fd42a4b896bd35c500fd1d15?narHash=sha256-/ZputM2bBZ1ADB1BJCGpemEmpeey3KYHLLd%2BMzhvGLo%3D' (2024-05-19)
  → 'github:nix-community/emacs-overlay/aa8ac9a29c08356bd9285f66b18dd49631cc2227?narHash=sha256-hkeDsZJS%2BWkAqWJFzmOaNzK0qoa2afozX5HGD%2Buuxos%3D' (2024-05-20)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/02923630b89aa1ab36ef8e422501a6f4fd4b2016?narHash=sha256-OhysviwHQz4p2HZL4g7XGMLoUbWMjkMr/ogaR3VUYNA%3D' (2024-05-18)
  → 'github:NixOS/nixpkgs/f9256de8281f2ccd04985ac5c30d8f69aefadbe8?narHash=sha256-3DNg/PV%2BX2V7yn8b/fUR2ppakw7D9N4sjVBGk6nDwII%3D' (2024-05-19)
2024-05-20 08:31:41 +00:00
Marien Zwart
a40637115a
CI: write to Cachix
This is only a starting point. For this to be more useful, we need to
build for multiple Emacsen. But I want to get a baseline for the size of
the closure first (as well as confirming it works in the first place).
2024-05-19 17:51:43 +10:00
marienz
b7b1a944d9
Create dependabot.yml 2024-05-19 16:45:45 +10:00
Marien Zwart
607989d7b6 Tweak installation instructions 2024-05-19 13:40:32 +10:00
Marien Zwart
4fe712f8ba Update status 2024-05-19 13:40:32 +10:00
Marien Zwart
26ca403bec Comment on rough edges of CI workflow 2024-05-19 13:40:32 +10:00
Marien Zwart
cd7a5a3954
CI: daily automated flake.lock update
Manual test run succeeded.
2024-05-19 12:58:50 +10:00
github-actions[bot]
60558bf011 flake.lock: Update
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/49e8b3163e27221484c57c76f4a86fb5e8a4cc6f?narHash=sha256-sNPKfy1GU%2BS%2Bx8/pyg3O8E7v9%2BlNMYRYCZHzGaG17oE%3D' (2024-05-18)
  → 'github:nix-community/emacs-overlay/66d6cd2197e49ce0fd42a4b896bd35c500fd1d15?narHash=sha256-/ZputM2bBZ1ADB1BJCGpemEmpeey3KYHLLd%2BMzhvGLo%3D' (2024-05-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ea77cefecb0ab07e61d6bde3e24c7ae6820b96d5?narHash=sha256-OrvqfRNUTKNg25z7%2BmCLV2PAnAjvdj/Z7HeS1g5OB7E%3D' (2024-05-16)
  → 'github:NixOS/nixpkgs/02923630b89aa1ab36ef8e422501a6f4fd4b2016?narHash=sha256-OhysviwHQz4p2HZL4g7XGMLoUbWMjkMr/ogaR3VUYNA%3D' (2024-05-18)
2024-05-19 02:35:55 +00:00
Marien Zwart
157b05763e
CI: request contents write access
commit failed with a 403, and this permission bit is probably why.
2024-05-19 00:05:03 +10:00
Marien Zwart
cc8d2ea320
CI: Specify identity when committing
Git refuses to commit otherwise.

Identity cargo-culted from other projects / answers.
2024-05-18 23:07:53 +10:00
Marien Zwart
6aad68a612 CI: add nix flake update and commit steps
And rename the workflow as it no longer runs just checks.
2024-05-18 22:20:56 +10:00
Marien Zwart
db62bca56c CI: save gitv3 cache
A cache hit on restore means the cache is not saved afterwards.
2024-05-18 22:20:56 +10:00
Marien Zwart
b085d95461 CI: nicer names
(...triggering another CI run to test the git checkout cache)
2024-05-18 22:20:56 +10:00
Marien Zwart
8a2d602ae2 CI: try to cache Nix's git checkouts 2024-05-18 22:20:56 +10:00
Marien Zwart
4cd93c5552 More verbose errors in CI
(Also, trigger CI again so I can see if the cache works...)
2024-05-18 22:20:56 +10:00
Marien Zwart
96d6db2e96 Maybe fix fetching notmuch
This fails the same way emms was, and like emms I do see the commit.
2024-05-18 22:20:56 +10:00
Marien Zwart
cbe7d2586a Attempt to fix emms
CI fails to fetch it:

```
error: Server does not allow request for unadvertised object 87d0d1fb0566a80229029d0d8d7c863138d70aae
warning: could not update mtime for file '/home/runner/.cache/nix/gitv3/0gjpwip102kwcvz961gsiva3lqmmr6266s5wzs8kq0ybm68gwpx9/refs/heads/master': No such file or directory
error:
       … while checking flake output 'checks'
         at /nix/store/fwrwzxjvvpx1l27h8j5f9gffzwn2vdik-source/flake.nix:54:7:
           53|     in {
           54|       checks = perSystemPackages (pkgs:
             |       ^
           55|         let
       … while checking the derivation 'checks.x86_64-linux.full'
         at /nix/store/fwrwzxjvvpx1l27h8j5f9gffzwn2vdik-source/flake.nix:83:11:
           82|           })).emacsWithDoom;
           83|           full = mkDoom {
             |           ^
           84|             full = true;
       (stack trace truncated; use '--show-trace' to show the full trace)
       error: Cannot find Git revision '87d0d1fb0566a80229029d0d8d7c863138d70aae' in ref 'refs/heads/master' of repository 'https://git.savannah.gnu.org/git/emms.git'! Please make sure that the rev exists on the ref you've specified or add allRefs = true; to fetchGit.
```

Try to follow the suggestions from the error message, as I do see the
commit in https://git.savannah.gnu.org/cgit/emms.git/.

I'm not sure why this is only failing now...
2024-05-18 22:20:56 +10:00
Marien Zwart
2e2548e80f Add nix flake check github workflow 2024-05-18 22:20:56 +10:00
Marien Zwart
631c786d8b nix flake update
...with `--override-flake nixpkgs github:NixOS/nixpkgs/nixpkgs-unstable`
(bypass my local registry) to write a flake.lock that should pass
flake-checker.
2024-05-18 22:20:56 +10:00
Marien Zwart
bc808de7fc
Add basic end-to-end test 2024-05-17 21:03:24 +10:00
Marien Zwart
d7c2725a61
Tweak README 2024-05-13 22:53:43 +10:00
Marien Zwart
482f7f3c7f
Apply pins per-repo
I knew this might cause problems at some point, but it came to a head
sooner than expected: it triggered
https://github.com/magit/magit/issues/5131 (magit is pinned but
magit-section was not, and those packages expect to be kept in sync).

The fix is messier than I'd like but at least fixes magit.
2024-05-13 22:09:28 +10:00
Marien Zwart
ebc03f12fe
Add comment about getting nixpkgs through registry 2024-05-12 20:40:49 +10:00
Marien Zwart
1e879c9556
org: make it find its datadir 2024-05-11 22:58:15 +10:00
Marien Zwart
1842251412
org: partially parallel build
Org's build system still builds docs before lisp, but does partially
parallelize.
2024-05-11 22:54:18 +10:00
Marien Zwart
8b4fc00d8e
Use runCommandLocal 2024-05-11 21:32:48 +10:00
Marien Zwart
78eb3559a9
Move most "packages" to checks
Neither "minimal" nor "full" were particularly useful packages.

Add an emacsWithDoom check while I'm there.
2024-05-11 21:09:54 +10:00
Marien Zwart
d216451849
Remove unneeded example init.el comments 2024-05-11 20:43:55 +10:00
Marien Zwart
fe4b632478
Refactor flake / home-manager common code
Avoids having the emacs-overlay hack in two places.
2024-05-11 20:35:42 +10:00