fortrangoingonforty/lib-modules / a9e768d

Browse files

Refresh umbrella docs

Authored by espadonne
SHA
a9e768d366ac21ae9cf49a783fe9c245646d264a
Parents
1061b61
Tree
ef0fa54

2 changed files

StatusFile+-
M LANDSCAPE.md 45 27
M README.md 6 4
LANDSCAPE.mdmodified
@@ -14,6 +14,8 @@ Package names in this document are provisional and only meant to make the backlo
1414
 
1515
 Candidate count: `48`
1616
 
17
+Status note: `fgof-process`, `fgof-fs`, `fgof-pty`, and `fgof-lineedit` have now shipped as `v0.1.0` packages. They remain in the backlog tables as completed reference points so the original scoring context stays visible.
18
+
1719
 ## Contents
1820
 
1921
 - [Executive Summary](#executive-summary)
@@ -30,6 +32,7 @@ Candidate count: `48`
3032
 
3133
 ### What The Current Landscape Looks Like
3234
 
35
+- The first FortranGoingOnForty wave is now real, not hypothetical: `fgof-process`, `fgof-fs`, `fgof-pty`, and `fgof-lineedit` are shipped and establish a credible baseline for process, filesystem, PTY, and interactive editing work.
3336
 - The official package index already has credible coverage for config and serialization formats, CLI parsing, logging, regex, ncurses bindings, raw POSIX wrappers, SQLite bindings, libcurl bindings, compression bindings, and many scientific utilities.
3437
 - `stdlib` is also expanding into general-purpose territory. Its published scope includes utilities, logging, strings, containers, and OS or environment integration, and the current `stdlib_system` spec already covers path operations plus synchronous and asynchronous process execution.
3538
 - The big gap is not "nothing exists." The big gap is that many systems-oriented areas are still split between:
@@ -40,50 +43,65 @@ Candidate count: `48`
4043
 
4144
 ### Highest-Signal Conclusion
4245
 
43
-The strongest opportunity is still the same cluster:
46
+The first wave is now shipped:
47
+
48
+1. subprocess and process control via `fgof-process`
49
+2. filesystem ergonomics via `fgof-fs`
50
+3. PTY session control via `fgof-pty`
51
+4. line editing primitives via `fgof-lineedit`
4452
 
45
-1. filesystem ergonomics
46
-2. subprocess and process control
47
-3. PTY and terminal state control
48
-4. file watching
53
+The strongest remaining opportunity cluster now looks like:
54
+
55
+1. file watching
56
+2. terminal state and key normalization
57
+3. expect-style testing and process-test tooling
58
+4. temp, cache, clipboard, and app-state helpers
4959
 5. archive and compression ergonomics
50
-6. platform helpers like clipboard, "open with default app", temp files, and app-state persistence
5160
 
5261
 These are the places where:
5362
 
5463
 - real apps need the functionality repeatedly
55
-- the Fortran ecosystem has pieces, but not yet an obvious default
64
+- the Fortran ecosystem still lacks an obvious default
5665
 - your own codebase already contains extractable proof that the need is real
5766
 
5867
 ### Top Gaps
5968
 
60
-- There is no obvious "default" app-author-friendly filesystem toolkit for Fortran even though filesystem APIs are actively being discussed and implemented in `stdlib`.
61
-- There is no obvious default high-level subprocess library with the kind of DX people expect from Python's `subprocess`, Rust's `std::process`, or Go's `exec`.
62
-- PTY and interactive terminal work remains very underpackaged despite being crucial for shells, terminal emulators, test harnesses, and text UIs.
63
-- File watching looks especially under-served: there are tools around the ecosystem, but no obvious reusable Fortran library that normal app authors would pull in.
64
-- Compression and archive support exists mostly as low-level bindings, not as a clean general-purpose package surface.
65
-- Persistent local app state, cache management, and workspace-state helpers are still mostly hand-rolled.
69
+- File watching still looks like the single biggest remaining library hole: there are tools around the ecosystem, but no obvious reusable Fortran default that normal app authors would pull in.
70
+- Terminal mode handling and key decoding are still brittle, low-level, and repeatedly reinvented across interactive apps.
71
+- Expect-style PTY automation and process-test tooling remain unusually thin despite clear value for shells, TUIs, and CI.
72
+- Temp files, clipboard helpers, cache helpers, and app-state persistence are still mostly hand-rolled even though they are common practical needs.
73
+- Compression and archive support still exists mostly as bindings rather than as a small ergonomic package surface.
74
+- SQLite and local-data ergonomics remain promising, but they now look like a second-tier priority behind watch and interactive tooling.
75
+
76
+### Shipped First Wave
77
+
78
+These packages are no longer just candidates. They are shipped `v0.1.0` packages and form the current baseline of the library family.
79
+
80
+| Project | What It Covers | Repo |
81
+| --- | --- | --- |
82
+| `fgof-process` | argv-first subprocess helpers, capture, cwd and env overrides, timeouts | [fgof-process](https://github.com/FortranGoingOnForty/fgof-process) |
83
+| `fgof-fs` | paths, metadata, traversal, copy or move, lookup helpers | [fgof-fs](https://github.com/FortranGoingOnForty/fgof-fs) |
84
+| `fgof-pty` | PTY sessions, reads or writes, resize, lifecycle helpers | [fgof-pty](https://github.com/FortranGoingOnForty/fgof-pty) |
85
+| `fgof-lineedit` | line editing core, history, actions, completions, render snapshots | [fgof-lineedit](https://github.com/FortranGoingOnForty/fgof-lineedit) |
6686
 
67
-### Strongest Bets Right Now
87
+### Strongest Remaining Bets Right Now
6888
 
69
-These are the best "start here" candidates if the goal is maximum ecosystem value rather than novelty for its own sake.
89
+These are the best "start here next" candidates now that the first wave exists.
7090
 
7191
 Scores are `Impact / Gap severity / Feasibility / Local leverage / Maintenance burden`. Lower maintenance burden is better.
7292
 
7393
 | Project | Why It Stands Out | Existing Leverage | Scores | Verdict |
7494
 | --- | --- | --- | --- | --- |
75
-| `fgof-process` | Repeated need across shells, CLIs, test tools, and editors; current options are fragmented | [fortsh system interface](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/fortsh/src/system/interface.f90:1) | `5/5/4/5/3` | Strong candidate |
76
-| `fgof-pty` | Rarely packaged well in Fortran, but essential for interactive tooling | [fifftty PTY manager](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/fifftty/src/pty_manager.f90:1), `fortsh` interactive tests | `5/5/4/5/4` | Strong candidate |
77
-| `fgof-fs` | Biggest general-purpose gap after processes; would benefit multiple app types immediately | [sniffert file system](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/sniffert/src/file_system.f90:1), [fortress filesystem ops](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/fortress/src/filesystem/fs_ops.f90:1) | `5/5/4/5/3` | Strong candidate |
7895
 | `fgof-watch` | Genuine ecosystem hole; useful for dev loops, editors, sync tools, live reload | no obvious default local package yet | `5/5/3/3/4` | Strong candidate |
79
-| `fgof-lineedit` | Shells and CLIs repeatedly need it; current options are narrow or app-local | `fortsh` readline stack, editor input work | `5/5/4/5/4` | Strong candidate |
96
+| `fgof-termios` | Terminal mode handling is still low-level and easy to get wrong; it would strengthen the interactive stack immediately | [fortsh system interface](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/fortsh/src/system/interface.f90:1), `fit` keyboard handling | `4/4/5/5/2` | Strong candidate |
8097
 | `fgof-keys` | Terminal key handling is a pain point that many apps re-solve badly | `fit`, `fortsh`, `facsimile` input handling | `4/5/4/4/3` | Strong candidate |
98
+| `fgof-expect` | PTY automation is valuable for interactive testing, demos, and CI, and the local leverage is strong | [fifftty PTY manager](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/fifftty/src/pty_manager.f90:1), `fortsh` interactive YAML specs | `4/5/4/5/3` | Strong candidate |
99
+| `fgof-proc-test` | Process-fixture tooling would be useful immediately on top of `fgof-process` | [fortsh system interface](/Users/mfwolffe/GithubOrgs/FortranGoingOnForty/fortsh/src/system/interface.f90:1) and executor stack | `4/5/4/5/3` | Strong candidate |
81100
 | `fgof-clipboard` | Small, very practical, and clearly underpackaged | local clipboard code in `facsimile` | `4/5/4/4/3` | Strong candidate |
82101
 | `fgof-temp` | Temp files, temp dirs, atomic writes, and safe replacement show up everywhere | `fit`, `fortress`, `facsimile` backup flows | `4/4/5/4/2` | Strong candidate |
83102
 | `fgof-cache` | Local caches are useful for tools and usually hand-written badly | `fuss` cache module, command tooling | `4/5/4/4/2` | Strong candidate |
84103
 | `fgof-state` | Workspace and session persistence is a repeated app need with no obvious default package | `facsimile` workspace vision | `4/5/5/4/2` | Strong candidate |
85104
 | `fgof-sqlite` | Bindings exist, but an ergonomic layer would be broadly useful | existing SQLite bindings in ecosystem | `4/4/4/2/3` | Strong candidate |
86
-| `fgof-posix-core` | A curated binding layer would reduce reinvention across many future packages | `fortsh`, `sniffert`, `fit`, `fifftty` | `5/4/4/5/3` | Strong candidate |
87105
 | `fgof-devloop` | There is already `fpm-watch` as a tool, but not a reusable library surface | process and watch primitives can feed it | `4/4/5/3/2` | Strong candidate |
88106
 
89107
 ### Crowded Or Lower-Priority Areas
@@ -379,15 +397,15 @@ Example:
379397
 
380398
 ### Practical Sequencing
381399
 
382
-If you decide to build from this document later, the most sensible first-wave sequence looks like:
400
+With the first wave already shipped, the most sensible next-wave sequence now looks like:
383401
 
384
-1. `fgof-posix-core`
385
-2. `fgof-fs`
386
-3. `fgof-process`
387
-4. `fgof-pty`
388
-5. `fgof-lineedit` or `fgof-watch`
402
+1. `fgof-watch`
403
+2. `fgof-termios`
404
+3. `fgof-keys`
405
+4. `fgof-expect` or `fgof-proc-test`
406
+5. `fgof-temp` or `fgof-clipboard`
389407
 
390
-That sequence maximizes reuse and minimizes duplicate low-level work.
408
+That sequence adds the most obvious missing value on top of what is already shipped without jumping too early into crowded territory.
391409
 
392410
 ## Local Extraction Evidence
393411
 
README.mdmodified
@@ -23,6 +23,8 @@ Go straight to the first standalone package if you already know what you want:
2323
 - [fgof-pty](https://github.com/FortranGoingOnForty/fgof-pty)
2424
 - [fgof-lineedit](https://github.com/FortranGoingOnForty/fgof-lineedit)
2525
 
26
+The current next library target is `fgof-watch`, with `fgof-termios` and `fgof-keys` close behind in the backlog.
27
+
2628
 ## Why This Structure
2729
 
2830
 This repo exists to answer two different needs cleanly:
@@ -60,10 +62,10 @@ lib-modules/
6062
 
6163
 | Package | Status | Repo Model | Notes |
6264
 | --- | --- | --- | --- |
63
-| [`fgof-process`](https://github.com/FortranGoingOnForty/fgof-process) | active | standalone repo + submodule | POSIX-first process helpers, mounted at `packages/fgof-process` |
64
-| [`fgof-fs`](https://github.com/FortranGoingOnForty/fgof-fs) | active | standalone repo + submodule | filesystem and path helpers, mounted at `packages/fgof-fs` |
65
-| [`fgof-pty`](https://github.com/FortranGoingOnForty/fgof-pty) | active | standalone repo + submodule | POSIX-first PTY helpers, mounted at `packages/fgof-pty` |
66
-| [`fgof-lineedit`](https://github.com/FortranGoingOnForty/fgof-lineedit) | scaffolded | standalone repo + submodule | Fortran-native line editing helpers, mounted at `packages/fgof-lineedit` |
65
+| [`fgof-process`](https://github.com/FortranGoingOnForty/fgof-process) | released `v0.1.0` | standalone repo + submodule | POSIX-first process helpers, mounted at `packages/fgof-process` |
66
+| [`fgof-fs`](https://github.com/FortranGoingOnForty/fgof-fs) | released `v0.1.0` | standalone repo + submodule | filesystem and path helpers, mounted at `packages/fgof-fs` |
67
+| [`fgof-pty`](https://github.com/FortranGoingOnForty/fgof-pty) | released `v0.1.0` | standalone repo + submodule | POSIX-first PTY helpers, mounted at `packages/fgof-pty` |
68
+| [`fgof-lineedit`](https://github.com/FortranGoingOnForty/fgof-lineedit) | released `v0.1.0` | standalone repo + submodule | Fortran-native line editing helpers, mounted at `packages/fgof-lineedit` |
6769
 
6870
 As packages are created:
6971