<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chime/tests/Makefile, branch main</title>
<subtitle>Emacs chimes, notifications, and modeline reminders so you don't miss events
</subtitle>
<id>https://git.cjennings.net/chime/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/chime/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/'/>
<updated>2026-05-10T21:36:17+00:00</updated>
<entry>
<title>test: harden test dependency and temp-dir setup</title>
<updated>2026-05-10T21:36:17+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-10T21:36:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=93063d8a35060d5467e2d056bd4496e51f17ddc1'/>
<id>urn:sha1:93063d8a35060d5467e2d056bd4496e51f17ddc1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>refactor: clear the rest of the lint backlog and make `make lint' actually work</title>
<updated>2026-05-05T14:50:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T14:50:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=18bad1aa33e25873b7f30b9d42adde071a63bad9'/>
<id>urn:sha1:18bad1aa33e25873b7f30b9d42adde071a63bad9</id>
<content type='text'>
Took the package-lint commit's foundation and finished the job. Three
groups of changes:

1. **checkdoc** is now clean across all three package files. I worked
   through every warning: 13 missing-double-space-after-period fixes, 4
   message-capitalization fixes, 1 trailing-period-on-error fix, 6
   Lisp-symbol-should-be-quoted fixes, and one rephrase from "starts" to
   the imperative "Log the start of an async check". One `chime-debug.el'
   docstring also exceeded 80 columns and got split into two lines.

2. **`make lint'** ran elisp-lint but had been silently broken. The shell
   glob `test-*.el' wasn't expanding (CWD ended up at project root, not
   tests/), and the noisy validators flagged everything. I rewrote the
   target to lint package files explicitly via absolute paths, preload
   chime.el so the byte-compiler sees cross-file symbols when checking
   chime-debug.el, and disable the validators that conflict with project
   style or duplicate other lint steps:
   - `--no-checkdoc' (covered by `eask lint checkdoc')
   - `--no-package-lint' (covered by `eask lint package'; running it on
     auxiliary files re-flags them as standalone packages)
   - `--no-indent-character' (project uses spaces per
     `.claude/rules/elisp.md'; the validator defaults to tabs)
   - `--no-fill-column' (project allows up to 80; validator defaults to 70)
   - `--no-indent' (false-positives on dash threading macros `-&gt;'/`-&gt;&gt;')
   The validators-disabled list is documented in the recipe header.

3. **Generated autoload files** (`chime-autoloads.el',
   `tests/tests-autoloads.el') are now gitignored. `tests/tests-autoloads.el'
   was tracked from an earlier commit; I removed it from the index.
   Eask regenerates these on every `eask compile' / `eask install-deps'
   run, so they don't belong in the tree.

Verified: `make compile' clean (with byte-compile-error-on-warn t),
`make test-all' green at 677 tests, `eask lint package' clean,
`eask lint checkdoc' clean, `make lint' clean. Full lint backlog is now
zero across all three checks.
</content>
</entry>
<entry>
<title>test: tag integration suite :slow and unstick test-all</title>
<updated>2026-05-05T10:12:11+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T10:12:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=fda1e989e0c22433b0214ab537a61852d906fd4b'/>
<id>urn:sha1:fda1e989e0c22433b0214ab537a61852d906fd4b</id>
<content type='text'>
I tagged the 15 end-to-end tests across `test-integration-chime-mode.el`,
`test-integration-recurring-events-tooltip.el`, and
`test-integration-startup.el` with `:tags '(:slow)`. The default `make test`
now runs only the 652 fast unit tests; `make test-all` runs the full 667.

While verifying, I hit a pre-existing bug in `tests/Makefile` where
`test-all`'s `--eval '(ert-run-tests-batch-and-exit)'` came back from eask's
argv passthrough with its quotes stripped, which broke shell parsing. Passing
the explicit `t` selector dodges whatever eask does to no-arg single-quoted
forms. The bug only mattered once integration tests were `:slow` — before
that, `test-all` overlapped fully with `test-unit` plus `test-integration`,
so nothing actually depended on it working.
</content>
</entry>
<entry>
<title>build: add eask manifest and setup/compile/coverage targets</title>
<updated>2026-05-05T09:57:14+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T09:57:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=e54041ac630fe31a9968cf41c452feee317a4049'/>
<id>urn:sha1:e54041ac630fe31a9968cf41c452feee317a4049</id>
<content type='text'>
I switched the test runner from `~/.emacs.d/elpa`-grep to eask. With
this, `make setup` installs every dep into a project-local `.eask/`,
so test runs don't depend on whatever's in my global elpa. It also
lets us catch missing Package-Requires entries before MELPA submission.

New targets:

- `make setup` — runs `eask install-deps --dev`
- `make compile` — byte-compiles chime.el and surfaces warnings that
  checkdoc and elisp-lint don't catch
- `make coverage` — runs the unit suite under undercover and writes a
  simplecov JSON to `.coverage/simplecov.json`
- `make test-all` — runs every test, including `:slow` tagged
- `-include makefile-local` in both Makefiles, for per-machine knobs

I added `ERT_FAST_SELECTOR` so `make test`, `test-unit`,
`test-integration`, and `test-file` exclude tests tagged `:slow`. When
we tag end-to-end integration tests as `:slow`, they'll stay out of
the fast feedback loop until someone explicitly asks for them via
`make test-all`.

Eask treats CWD as its workspace. So all eask invocations now run
from project root, with `(cd "tests/")' as the first `--eval' to
restore Emacs's default-directory. That preserves the relative loads
the existing test files and test-bootstrap.el rely on, without
touching either.

I updated `.gitignore` for `.eask/`, `.coverage/`, and the optional
`makefile-local` files.
</content>
</entry>
<entry>
<title>Consolidate Makefiles and update TESTING.org</title>
<updated>2026-04-04T22:05:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-04T22:05:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=b2b7f2468154435a28a174f5ec31e19e20fe44d2'/>
<id>urn:sha1:b2b7f2468154435a28a174f5ec31e19e20fe44d2</id>
<content type='text'>
Root Makefile now delegates to tests/Makefile. Fixed stale
UNIT_TESTS/INTEGRATION_TESTS definitions, added test-name target,
switched to per-file test execution for better isolation.
</content>
</entry>
<entry>
<title>changed repositories</title>
<updated>2025-11-18T17:13:39+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-18T17:13:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=4835fadabf243b33fb78557e45428055675e7300'/>
<id>urn:sha1:4835fadabf243b33fb78557e45428055675e7300</id>
<content type='text'>
</content>
</entry>
</feed>
