| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Completes the coverage v1 pipeline by adding the Makefile target, the undercover driver script, the exclusion list, and the .gitignore entry. Uses simplecov JSON rather than LCOV as the collection format.
The LCOV vs simplecov choice: Undercover's :merge-report t option only supports simplecov. Since the pipeline runs tests per-file (matching test-unit's isolation pattern) and accumulates coverage across runs, merge-report is required. LCOV is better-supported by external coverage viewers, but for a primarily interactive workflow the on-disk format is an internal detail.
Other moves in this commit:
- Renamed cj/--coverage-parse-lcov to cj/--coverage-parse-simplecov and rewrote its tests for the JSON schema. Same signature, same semantics (file to set of covered lines), different parser.
- Renamed the backend protocol's :lcov-path key to :report-path, format-neutral and matching the renamed cj/--coverage-elisp-report-path function.
- The coverage target deletes modules/*.elc before running so undercover can instrument the .el sources. Without this, byte-compiled versions shadow the instrumentation and only a handful of pre-loaded modules end up with coverage data.
- Excluded tests/test-all-comp-errors.el from make coverage runs. That test byte-compiles every module, which fails under undercover's instrumentation. Excluded only from coverage. Normal make test still runs it.
- Updated docs/design/coverage.org to reflect the simplecov pivot with a historical note on why we moved off LCOV.
Verified end-to-end: make coverage produces .coverage/simplecov.json with 2717 of 4559 executable lines hit across 44 tracked modules.
|
| |
|
|
|
|
|
|
| |
Set load-prefer-newer in early-init.el. Emacs was loading the older .elc files even when the .el source was newer, warning on every load but still using the stale byte code.
Point weather-config.el's wttrin :load-path at /home/cjennings/code/emacs-wttrin. The previous value was /home/cjennings/code/wttrin, which does not exist, so use-package could not load the package.
Add (package-initialize) to the Makefile compile target. Without it, batch byte-compile cannot see ELPA packages like git-gutter, git-timemachine, forge, and difftastic, which produced "Cannot load" warnings on every run.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Portable setup: pre-commit lives in githooks/ (tracked), activated
by `make install-hooks` which sets core.hooksPath. Survives fresh
clones.
The hook does two things on staged changes:
- Scans added lines for common credential patterns (AWS keys, sk-*
tokens, BEGIN PRIVATE KEY blocks, api_key/password literals)
- Runs check-parens on staged .el files
Bypass with `git commit --no-verify` for confirmed false positives.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Major improvements to test output clarity and failure diagnostics:
Output Improvements:
- Clean aligned output showing test file + pass/fail status
- Show test count for passing files: "✓ (11 tests)"
- Clear "✗ FAILED" marker for failures (no verbose noise)
- Suppress passing test details (reduces output by ~95%)
Failure Summary:
- Clear visual separator box for failures
- List all failed files with bullet points
- Show specific failed test names with line numbers
- Provide copy-paste commands to re-run failures
Technical Changes:
- Capture test output and only display on failure
- Extract test count from ERT output for passing tests
- Save failure details to temp files for summary
- Apply same improvements to both unit and integration tests
Benefits:
- Instantly see which tests failed (no scrolling)
- Know exactly which test names failed
- Get line numbers for debugging
- Copy-paste commands to re-run specific failures
- Dramatically reduced output verbosity
Example summary:
Failed test files:
• test-mousetrap-mode--get-profile-for-mode.el
Errors:
FAILED test-foo (line 15)
Run individual failing tests with:
make test-file FILE=test-mousetrap-mode--get-profile-for-mode.el
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaced colored output with plain text symbols for better portability:
- Removed all COLOR_* variable definitions
- Replaced color-wrapped text with plain text
- Added simple text markers:
- [i] for informational messages
- [!] for warnings
- ✓ for success (kept from before)
- ✗ for errors (kept from before)
- ⚠ for warnings (kept from before)
Benefits:
- Works in all terminals and CI environments
- No escape code littering when piped or logged
- Simpler, more maintainable code
- Cleaner output that's easier to read
Changes: 40 insertions, 45 deletions
|
| |
|
|
|
| |
Update the test commands to skip tests tagged with :slow during
batch execution, improving testing efficiency.
|
|
|
Add Makefile adapted from chime.el with targets for:
Testing:
- make test - Run all tests (unit + integration)
- make test-unit - Run unit tests only
- make test-integration - Run integration tests only
- make test-file FILE=<filename> - Run specific test file
- make test-name TEST=<pattern> - Run tests matching pattern
Validation:
- make validate-parens - Check for unbalanced parentheses
- make validate-modules - Load all modules to verify compilation
- make compile - Byte-compile all modules
- make lint - Run checkdoc, package-lint, elisp-lint
Utilities:
- make profile - Profile Emacs startup
- make clean - Remove test artifacts and compiled files
- make clean-compiled - Remove .elc/.eln files only
- make clean-tests - Remove test artifacts only
- make reset - Reset to first launch (destructive!)
Default target is 'make help' which displays all available targets.
Inline scripts from scripts/ directory:
- delete-elisp-compiled-files.sh → make clean-compiled
- profile-dotemacs.sh → make profile
- reset-to-first-launch.sh → make reset
Delete inlined scripts to reduce duplication.
|