<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs-wttrin/Makefile, branch main</title>
<subtitle>Emacs frontend for Igor Chubin's wttr.in weather service
</subtitle>
<id>https://git.cjennings.net/emacs-wttrin/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/emacs-wttrin/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/'/>
<updated>2026-05-05T10:11:55+00:00</updated>
<entry>
<title>test: cover wttrin-debug.el and expand lint to all source files</title>
<updated>2026-05-05T10:11:55+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T10:11:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=ba22e0cc3c81d85b3ee8aaa337d6a388627c3af2'/>
<id>urn:sha1:ba22e0cc3c81d85b3ee8aaa337d6a388627c3af2</id>
<content type='text'>
I added 24 unit tests across six new files for wttrin-debug.el. They cover enable/disable, the debug-log writer, clear-log, show-log, and the mode-line diagnostic dump. That lifts wttrin-debug.el coverage from 27% to 95%, and overall coverage from 84% to 94%. Each function gets Normal / Boundary / Error categories where applicable. Globals like `wttrin-debug` and `wttrin--debug-log` are isolated per test with let-bindings. The dynamic-scope rebinding restores state cleanly at exit.

I expanded the `lint` target to run on all three source files instead of just `wttrin.el`. Checkdoc and elisp-lint run on every file. Package-lint stays scoped to `wttrin.el` because the others aren't standalone packages.

The tricky bit: `elisp-lint-file` re-runs package-lint internally as one of its validators. So the explicit guard alone wasn't enough. The fix binds `elisp-lint-ignored-validators` to include "package-lint" for the secondaries, which suppresses the re-run at the validator level.

I also added `*-autoloads.el` to .gitignore. Eask generates `emacs-wttrin-autoloads.el` during install, and it shouldn't be tracked.

I skipped one function: `wttrin--debug-mode-line-info` is a one-line dispatcher to `debug-wttrin-mode-line`. Testing it would assert the dispatch happened, which only tests Emacs.
</content>
</entry>
<entry>
<title>build: switch Makefile to eask, wire up undercover coverage</title>
<updated>2026-05-05T09:58:34+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-05T09:58:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=6554cb8000a8f471f7c9e050e284f3fc364d5dad'/>
<id>urn:sha1:6554cb8000a8f471f7c9e050e284f3fc364d5dad</id>
<content type='text'>
I wanted a coverage number, so I added an Eask file declaring the runtime dep (xterm-color) plus three dev deps (undercover, package-lint, elisp-lint). The Makefile now runs every test and lint recipe through `eask emacs`. That drops the hand-rolled `(require 'package)` + `add-to-list 'package-archives` boilerplate that was duplicated across six recipes.

I added a `make deps` target that runs `eask install-deps --dev`. I also added a `make coverage` target that loads `tests/run-coverage-file.el` before each unit-test file. Undercover instruments the three source files first, then the test loads pick up the instrumented copy. Per-file results merge into `.coverage/simplecov.json` in simplecov format.

I expanded `validate-parens` and `compile` to cover all three source files instead of just `wttrin.el`. Lint stays scoped to the main file for now.

Coverage right now is 84% overall: wttrin.el 92%, wttrin-geolocation.el 100%, wttrin-debug.el 27%. The debug module is low because only the integration test exercises it. The coverage loop runs unit tests only.
</content>
</entry>
<entry>
<title>refactor: tests: standardize naming, consolidate files, and expand testutil</title>
<updated>2026-02-18T01:14:14+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-18T01:14:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=28b7e4cecadce207d532b8d42346c3823450a35f'/>
<id>urn:sha1:28b7e4cecadce207d532b8d42346c3823450a35f</id>
<content type='text'>
- Expand testutil-wttrin.el with shared fixtures and macros
  (testutil-wttrin-with-clean-weather-buffer,
  testutil-wttrin-mock-http-response, sample ANSI/weather constants)
- Consolidate cache tests: port unique tests from cleanup-cache-constants
  and cleanup-cache-refactored into cleanup-cache-if-needed, delete
  obsolete files
- Extract startup-delay tests into dedicated file
- Add setup/teardown and (require 'testutil-wttrin) to all test files
- Rename all 160 tests to follow
  test-&lt;module&gt;-&lt;category&gt;-&lt;scenario&gt;-&lt;expected-result&gt; convention
- Rename integration test file and add detailed docstrings
- Update Makefile glob to discover new integration test naming pattern

Co-Authored-By: Claude Opus 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>feat: makefile: add smoke test target and standardize output symbols</title>
<updated>2025-11-08T22:58:51+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-08T22:58:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=9074bf41fedbabfeb0e9c0bb7c3427e069bfeaab'/>
<id>urn:sha1:9074bf41fedbabfeb0e9c0bb7c3427e069bfeaab</id>
<content type='text'>
Smoke Test Target:
- Add SMOKE_TESTS variable matching test-*-smoke.el pattern
- Create test-smoke target that runs before unit/integration tests
- Implement fail-fast behavior: smoke test failures stop further execution
- Update test execution order: smoke → unit → integration (testing pyramid)
- Fix INTEGRATION_TESTS pattern to match test-*-integration-*.el
- Update help text with correct test counts for each category

Symbol Standardization:
- Replace Unicode symbols with bracketed ASCII for better portability
  - ✓ → [✓] (success/completion)
  - ✗ → [✗] (error/failure)
  - ⚠ → [!] (warning/attention)
- Apply to all targets: test, validate, compile, lint, install-deps, clean
- No color codes (were never present)
- Benefits: works in all terminals, easier to grep/parse

Test organization now:
- 1 smoke test file (package sanity checks - runs first)
- 16 unit test files (function behavior)
- 1 integration test file (component interactions)
</content>
</entry>
<entry>
<title>feat(emacs): Add asynchronous weather fetching to wttrin</title>
<updated>2025-11-04T15:09:28+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-04T15:09:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=d05a8c84310ad3122c1a38f113bd93bca3f7f58a'/>
<id>urn:sha1:d05a8c84310ad3122c1a38f113bd93bca3f7f58a</id>
<content type='text'>
Introduce asynchronous data fetching to the wttrin.el Emacs package.
This enhancement avoids blocking Emacs during data retrieval by
using `url-retrieve` for async calls. The behavior is controlled via
a new customizable variable `wttrin-use-async`. Tests have been
added for the new async behavior to ensure proper functionality.feat:makefile): Add package initialization for Emacs batch

Enhance Makefile with package support by loading and initializing
MELPA archive before validating and compiling, ensuring required
packages are available during these operations.

feat(tests): Add unit tests for `wttrin--display-weather`

Introduce comprehensive tests for `wttrin--display-weather` function
to validate buffer creation, content, keybindings, and error
handling.
</content>
</entry>
<entry>
<title>feat:Makefile: Add dependency installation target</title>
<updated>2025-11-04T14:42:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-04T14:42:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=520203cfb54091dae7647a51a5910bb094fd1c4f'/>
<id>urn:sha1:520203cfb54091dae7647a51a5910bb094fd1c4f</id>
<content type='text'>
Add a new `install-deps` target to the Makefile for setting up
required dependencies, specifically `xterm-color`, using MELPA
package repository. Enhance test process by including package
initialization in `EMACS_TEST` command.
</content>
</entry>
<entry>
<title>remove coloring from the Makefile</title>
<updated>2025-11-04T14:20:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-04T14:20:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=9e7c7e94b1f253a77117f36a698b2321214a77cb'/>
<id>urn:sha1:9e7c7e94b1f253a77117f36a698b2321214a77cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat:Makefile: Add Makefile for build and test automation</title>
<updated>2025-11-04T14:17:12+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-04T14:17:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/emacs-wttrin/commit/?id=cec43573a5f533086d1b3705a78d6f1846b7d250'/>
<id>urn:sha1:cec43573a5f533086d1b3705a78d6f1846b7d250</id>
<content type='text'>
Introduce a Makefile to automate common tasks for the wttrin
project. This includes running tests (unit and integration),
validating and compiling the main file, linting, and cleaning up
generated files.
</content>
</entry>
</feed>
