<feed xmlns='http://www.w3.org/2005/Atom'>
<title>org-drill/Cask, branch main</title>
<subtitle>Spaced-repetition flashcards for Org Mode
</subtitle>
<id>https://git.cjennings.net/org-drill/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/org-drill/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/'/>
<updated>2026-05-10T17:52:08+00:00</updated>
<entry>
<title>build: migrate from Cask to Eask</title>
<updated>2026-05-10T17:52:08+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-10T17:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=d0128942724795511e19f5478b60e34e194cdcad'/>
<id>urn:sha1:d0128942724795511e19f5478b60e34e194cdcad</id>
<content type='text'>
Cask's upstream has slowed. Eask is the actively maintained successor.

Eask's `package-file` directive doesn't auto-install the deps from the .el header's Package-Requires, so the Eask file mirrors emacs/seq/org/persist explicitly. `eask install-deps` also doesn't pull transitive deps, so dash, m-buffer, and shut-up needed their own `depends-on` lines for undercover and elisp-lint to activate.

The Makefile swaps are mechanical: $(CASK) → $(EASK), `cask install` → `eask install-deps --dev`, `cask build` → `eask compile`.

The URL in org-drill.el's header pointed at the abandoned upstream's GitLab issues page. Eask cross-validates that against website-url, so I updated it to the GitHub mirror — where users file issues now.
</content>
</entry>
<entry>
<title>build: bump Org dep to 9.6 to match unguarded org-fold-* calls</title>
<updated>2026-05-05T14:08:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T14:08:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=75b16019e0cd8de4213719df552b6d4c5a2a699e'/>
<id>urn:sha1:75b16019e0cd8de4213719df552b6d4c5a2a699e</id>
<content type='text'>
org-drill calls org-fold-show-entry and org-fold-show-subtree from
seven sites without fboundp guards.  Both functions arrived in Org
9.6.  But the package declared org 9.3 (Package-Requires) /
org 9.2 (Cask), so users on older Org would silently void-function
at runtime instead of getting a clear install-time mismatch error.

Bumped both declarations to org 9.6.  Wrapping each of the seven
call sites with fboundp would be the alternative, but Org 9.6 was
released October 2022 — three-and-a-half years ago — and we already
have a follow-up TODO to drop the legacy time-to-inactive fallback
that this version bump unblocks.

Two tests verify the declared dep and that the org-fold APIs are
actually bound on the running Org version.
</content>
</entry>
<entry>
<title>build: add lint, compile, validate-parens, and :slow tag filter</title>
<updated>2026-05-05T08:28:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T08:28:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=88da84f2ce342f006e8cfb3ec302cc9e32af0591'/>
<id>urn:sha1:88da84f2ce342f006e8cfb3ec302cc9e32af0591</id>
<content type='text'>
I want a stronger maintainer-discipline baseline as I take over more of this project, so I added four targets that are common in Emacs-Lisp packages.

`make lint` runs `checkdoc`, `package-lint`, and `elisp-lint` over `org-drill.el`. It's informational for now and doesn't fail on findings, because the existing source has known docstring and style debt to clear. I'll re-tighten to a hard gate after the docstring pass is done. `make compile` byte-compiles the source with `byte-compile-error-on-warn nil`, matching the existing `build` target's leniency. `make validate-parens` is a fast structural check that surfaces the line of the offending paren without needing a full byte-compile pass.

I also added a `:slow` tag filter to the default ERT runners. `test-unit`, `test-integration`, `test-file`, and `coverage` now run with `'(not (tag :slow))`. Tests tagged `:slow` get skipped on the fast feedback path. `test-name` is left alone, since a pattern argument means the user wants those tests run whether or not they're tagged slow.

Cask gets `package-lint` and `elisp-lint` as development deps. `.gitignore` gets `*-autoloads.el` so the Cask build artifact stays out.
</content>
</entry>
<entry>
<title>build: add make coverage target via undercover</title>
<updated>2026-05-05T08:10:50+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T08:10:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=77fe06b0c6f01d1d76bdf503c1b12286ac29aa0a'/>
<id>urn:sha1:77fe06b0c6f01d1d76bdf503c1b12286ac29aa0a</id>
<content type='text'>
I want to track test coverage as I work through the upstream issue backlog, so I added an undercover-based flow that mirrors how `make test-unit` already runs each file in its own Cask Emacs process.

The Makefile gets `make coverage` and `make coverage-clean`. A new helper at `tests/run-coverage-file.el` instruments `org-drill.el` before the source is loaded. Undercover merges per-file results into a single simplecov JSON at `.coverage/simplecov.json`. I added `undercover` as a Cask development dep and `.coverage/` to `.gitignore` so the report stays local.

I also renamed `make install` to `make setup`. The old name read like "deploy the package onto my system," but the target only installs Cask deps into the local `.cask/` directory. `setup` is closer to what it actually does, and all the internal `: install` prerequisites move with it.

Baseline at this commit is 10.8% (208/1928 lines on org-drill.el).
</content>
</entry>
<entry>
<title>build: add nongnu source to Cask file</title>
<updated>2026-04-29T09:12:16+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-29T09:12:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=f07137f8a1dedcd6783c041ab7b8c61681ac9507'/>
<id>urn:sha1:f07137f8a1dedcd6783c041ab7b8c61681ac9507</id>
<content type='text'>
The persist package moved to the nongnu ELPA archive years ago. The existing gnu/melpa/org sources couldn't resolve it, so cask install failed and make test-unit was unrunnable. Unblocks the test suite.
</content>
</entry>
<entry>
<title>Use persist</title>
<updated>2019-07-08T21:20:35+00:00</updated>
<author>
<name>Phillip Lord</name>
<email>phillip.lord@russet.org.uk</email>
</author>
<published>2019-07-08T21:15:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=508f2dde21fbf5365e66adc5ba37cc1009f1f44e'/>
<id>urn:sha1:508f2dde21fbf5365e66adc5ba37cc1009f1f44e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Complete clean of byte compile messages</title>
<updated>2019-06-23T20:50:09+00:00</updated>
<author>
<name>Phillip Lord</name>
<email>phillip.lord@russet.org.uk</email>
</author>
<published>2019-06-23T20:50:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=ac7ca1346f7d9d42b12c7d82b3ec643a65d0b503'/>
<id>urn:sha1:ac7ca1346f7d9d42b12c7d82b3ec643a65d0b503</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Dependency clean ups</title>
<updated>2019-06-08T15:05:02+00:00</updated>
<author>
<name>Phillip Lord</name>
<email>phillip.lord@russet.org.uk</email>
</author>
<published>2019-06-08T15:05:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=d2591c46763fa800e849806c5a1b841208c1989f'/>
<id>urn:sha1:d2591c46763fa800e849806c5a1b841208c1989f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Enable cask testing</title>
<updated>2019-06-02T16:25:56+00:00</updated>
<author>
<name>Phillip Lord</name>
<email>phillip.lord@russet.org.uk</email>
</author>
<published>2019-06-02T16:25:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/org-drill/commit/?id=939f2a65b2e5097d56d3c4422aa3a11e4d71d6ff'/>
<id>urn:sha1:939f2a65b2e5097d56d3c4422aa3a11e4d71d6ff</id>
<content type='text'>
 - Update headers to standard
 - Add Makefile, Cask and docker scripts
 - Add test directory
 - .gitignore
</content>
</entry>
</feed>
