<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chime/.gitignore, branch v0.7.0</title>
<subtitle>Emacs chimes, notifications, and modeline reminders so you don't miss events
</subtitle>
<id>https://git.cjennings.net/chime/atom?h=v0.7.0</id>
<link rel='self' href='https://git.cjennings.net/chime/atom?h=v0.7.0'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/'/>
<updated>2026-05-05T09:57:14+00:00</updated>
<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>adding to gitignore</title>
<updated>2026-04-24T12:33:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-24T12:33:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=5108e05eeb395f1d66122c25c862b1401478853f'/>
<id>urn:sha1:5108e05eeb395f1d66122c25c862b1401478853f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: ignore .stignore (syncthing)</title>
<updated>2026-04-20T17:35:06+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-20T17:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=c9a748b0b87945b421949a4acaee8468e6cbcc67'/>
<id>urn:sha1:c9a748b0b87945b421949a4acaee8468e6cbcc67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>restructure: move docs/ to .ai/ + sync latest template</title>
<updated>2026-04-20T13:36:28+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-20T13:36:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=32fc0a2fbdea16fcacd3b55ff9a1e15c938f4a48'/>
<id>urn:sha1:32fc0a2fbdea16fcacd3b55ff9a1e15c938f4a48</id>
<content type='text'>
Per claude-templates c36fd14. Claude tooling moves to hidden .ai/;
project-level docs/ reserved for real documentation.
</content>
</entry>
<entry>
<title>chore: add Claude Code ruleset via ~/code/rulesets install-elisp</title>
<updated>2026-04-19T17:46:59+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T17:46:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/chime/commit/?id=6d72c4eed04c7d28639ee31789e6201275e7d9b7'/>
<id>urn:sha1:6d72c4eed04c7d28639ee31789e6201275e7d9b7</id>
<content type='text'>
Installs the Elisp ruleset from the rulesets repo:

  - CLAUDE.md (project instructions template)
  - .claude/rules/ (testing, verification, elisp, elisp-testing)
  - .claude/hooks/validate-el.sh (check-parens + byte-compile + run
    matching tests on every .el edit via PostToolUse)
  - .claude/settings.json (permission allowlist + hook wiring)
  - githooks/pre-commit (secret scan + staged-file paren check)

core.hooksPath set to githooks/ so the pre-commit activates automatically.
Hooks use \$CLAUDE_PROJECT_DIR with a script-relative fallback, so a
fresh clone works without path edits.

.gitignore extended with personal-override entries (settings.local.json,
.cache/) and byte-compile artifacts (*.elc, *.eln).
</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>
