Skip to content

Commit ea81c2f

Browse files
committed
Merge branch dev into published
2 parents b858805 + f21ae7d commit ea81c2f

File tree

13 files changed

+954
-567
lines changed

13 files changed

+954
-567
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
description: 'E2E testing patterns and best practices for Calva extension development.'
3+
applyTo: '**/src/extension-test/e2e,package.json'
4+
---
5+
6+
# E2E Testing Memory
7+
8+
Patterns for reliable end-to-end testing and debugging workflows.
9+
10+
## Use Containerized Test Runner
11+
Always use the containerized test runner to reproduce CI conditions exactly:
12+
13+
```bash
14+
npm run e2e-test-containerized
15+
```
16+
17+
**Why:** The containerized runner can use Insiders even if it is being used on the host machine.
18+
19+
## Test Both Development and Production Scenarios
20+
E2E tests should cover both:
21+
- **Development mode**: `extensionDevelopmentPath` for source code testing
22+
- **Production mode**: VSIX package testing (what users actually install)
23+
24+
## Use npm Scripts for Containerized Testing
25+
Always use npm scripts rather than running Docker commands directly:
26+
- `npm run e2e-test-containerized` - for containerized testing
27+
28+
This ensures proper environment setup and dependency management.
29+
30+
## Environment Variable Debugging
31+
When debugging CI failures related to environment variables:
32+
- Use exact CI argument reproduction: `npm run e2e-test-containerized -- --ci`
33+
- Check JavaScript variable access syntax: `process.env.VARIABLE_NAME` not `process.env[VARIABLE_NAME]`
34+
- Verify variable scoping in launch scripts
35+
36+
## Data-Oriented E2E Debugging
37+
Follow the general debugging workflow for E2E issues:
38+
1. **Gather context** - understand CI vs local environment differences
39+
2. **Reproduce precisely** - use containerized runner with exact CI conditions
40+
3. **Analyze data flow** - trace through launch.js and test setup
41+
4. **Apply targeted fix** - address root cause in environment/configuration
42+
5. **Validate thoroughly** - test with both development and CI scenarios
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
description: 'A memory for the AI agent working in this project. See also the prompt `add-workspace-memory`.'
3+
applyTo: '**'
4+
---
5+
6+
# Lessons learned and Best Practices for working with Calva
7+
8+
9+
## Problem-Solving Workflow
10+
11+
### Data-Oriented Debugging Approach
12+
1. **Gather context first** - understand the difference between failing and working environments
13+
2. **Reproduce precisely** - use the exact same conditions as the failing environment
14+
3. **Analyze the data flow** - understand what's different about the failing path
15+
4. **Apply targeted fix** - address the root cause, not just symptoms
16+
5. **Validate thoroughly** - test the fix in the same conditions where it originally failed
17+
18+
This follows Rich Hickey's thinking: understand the problem space before attempting solutions.
19+
20+
## Development Environment
21+
22+
### Interactive Programming Philosophy
23+
Remember that the human and the system (the Calva extension under development) are your sources of truth.
24+
25+
### Joyride Integration
26+
Joyride gives you access to the extension host and VS Code APIs (sadly not the Development Extension host, though). You can create "tools" you need for your workflow, as Joyride is a bit of a DIY MCP server for VS Code itself.
27+
28+
29+

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ Changes to Calva.
44

55
## [Unreleased]
66

7+
## [2.0.525] - 2025-08-30
8+
9+
- Bump deps.clj.jar to v1.12.2.1565
10+
- Fix: [delete previous word incongruence between Calva and plain text in comments](https://github.com/BetterThanTomorrow/calva/issues/2912)
11+
712
## [2.0.524] - 2025-08-16
813

914
- Bump deps.clj.jar to v1.12.1.1561

deps-clj-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.12.1.1561
1+
v1.12.2.1565

deps.clj.jar

-2 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)