tenseleyflow/bensch / 04a2ed2

Browse files

gitignore .docs/ — internal planning, not shipped

Authored by espadonne
SHA
04a2ed2e8eb91c9e4b95930cba7d4e7a20a08139
Parents
2f3c381
Tree
cfc0e27

3 changed files

StatusFile+-
D .docs/overview.md 0 29
D .docs/sprints/.gitkeep 0 0
M .gitignore 3 0
.docs/overview.mddeleted
@@ -1,29 +0,0 @@
1
-# bensch — Project Overview
2
-
3
-## What
4
-
5
-bensch is a POSIX shell testing framework extracted from the [fortsh](https://github.com/FortranGoingOnForty/fortsh) project. It tests any shell binary for POSIX compliance, interactive feature correctness, and builtin command compatibility.
6
-
7
-## Why
8
-
9
-The fortsh project accumulated ~1014 interactive PTY tests and ~3800 POSIX compliance assertions as part of its CI. 93% of these tests are shell-agnostic — they test POSIX behavior and readline-compatible features, not fortsh-specific functionality. Extracting them into a standalone framework lets other shell projects benefit from the same rigor.
10
-
11
-## Origin
12
-
13
-The test infrastructure was developed over 2025-2026 during fortsh's push to achieve full cross-platform interactive parity (x86 Linux, ARM64 Linux, macOS ARM64). The extraction happened in April 2026 after fortsh v1.6.0 achieved 1014/1014 interactive tests passing on all three platforms.
14
-
15
-## Architecture Decisions
16
-
17
-**Fresh repo, not filter-branch.** fortsh's git history is about a Fortran compiler project. Carrying 1700+ commits of compiler work into a test framework repo would be noise. Each file was brought over as its own commit, preserving provenance in commit messages.
18
-
19
-**Shell profiles over runtime detection.** Rather than auto-detecting shell capabilities at runtime (fragile, slow), bensch uses YAML profiles that declaratively describe what each shell supports. This is explicit, testable, and easy to extend.
20
-
21
-**Comparison against reference shell.** POSIX tests don't check against a POSIX specification document — they compare against bash (or any reference shell). This is pragmatic: bash IS the de facto standard, and discrepancies between your shell and bash are the actionable findings.
22
-
23
-**Separate framework from test suites.** The Python PTY engine (`framework/`) is fully generic. The test specifications (`suites/`) are organized by portability level (POSIX-generic, bash-extended, fortsh-specific). Adding tests for a new shell means adding a profile and optionally a new suite directory.
24
-
25
-## Maintenance
26
-
27
-bensch and fortsh will co-evolve. Bugs found through testing fortsh will be fixed in bensch's framework code. New test cases written for fortsh's interactive features will be added to bensch if they're shell-agnostic.
28
-
29
-The sync is manual but low-friction: both repos share the same test specification format (YAML) and the same Python framework API. A diff between `fortsh/tests/interactive/` and `bensch/framework/` + `bensch/suites/interactive/` will show divergence.
.docs/sprints/.gitkeepdeleted
.gitignoremodified
@@ -14,6 +14,9 @@ reports/*.html
14
 .DS_Store
14
 .DS_Store
15
 Thumbs.db
15
 Thumbs.db
16
 
16
 
17
+# Internal docs
18
+.docs/
19
+
17
 # IDE
20
 # IDE
18
 .vscode/
21
 .vscode/
19
 .idea/
22
 .idea/