This repository is the umbrella catalog for reusable Fortran packages developed under the FortranGoingOnForty umbrella.
It is intentionally not a traditional code monorepo.
The goal is:
- keep shared docs, roadmap, and package discovery in one place
- keep each package in its own repository with its own history, releases, issues, and CI
- collect those package repos here as Git submodules under
packages/
That gives us the discoverability and organization benefits of one home page without burying every package inside a giant top-level repo.
Start here if you want the big-picture package map:
Go straight to the first standalone package if you already know what you want:
- fgof-process
- fgof-fs
- fgof-pty
- fgof-lineedit
- fgof-watch
- fgof-termios
- fgof-keys
- fgof-expect
- fgof-proc-test
- fgof-temp
- fgof-cache
- fgof-state
- fgof-clipboard
- fgof-screen
- fgof-jobs
- fgof-devloop
The most recently released library target is fgof-devloop, with
fgof-archive and fgof-snapshot close behind in the backlog.
If you want local comparison checkouts for already-served or deferred areas,
use ./scripts/sync-refs.sh to populate .refs/ from the curated reference
set in docs/REFERENCE-LIBS.md.
This repo exists to answer two different needs cleanly:
- People should be able to land on one GitHub repo and understand the whole library family.
- People should also be able to find, clone, star, release, and depend on one package at a time.
Git submodules are the best fit here because they preserve:
- independent package history
- independent package versioning
- independent package visibility on GitHub
- easy standalone consumption by
fpmusers
lib-modules/
README.md
LANDSCAPE.md
docs/
REPO-STRUCTURE.md
packages/
README.md
fgof-process/ # git submodule
fgof-fs/ # git submodule
fgof-pty/ # git submodule
fgof-lineedit/ # git submodule
fgof-expect/ # git submodule
fgof-proc-test/ # git submodule
fgof-temp/ # git submodule
fgof-cache/ # git submodule
fgof-state/ # git submodule
fgof-clipboard/ # git submodule
fgof-screen/ # git submodule
fgof-jobs/ # git submodule
fgof-devloop/ # git submodule
...
scripts/
add-package-submodule.sh
sync-refs.sh
| Package | Status | Repo Model | Notes |
|---|---|---|---|
fgof-process |
released v0.1.1 |
standalone repo + submodule | POSIX-first process helpers, mounted at packages/fgof-process |
fgof-fs |
released v0.1.0 |
standalone repo + submodule | filesystem and path helpers, mounted at packages/fgof-fs |
fgof-pty |
released v0.1.0 |
standalone repo + submodule | POSIX-first PTY helpers, mounted at packages/fgof-pty |
fgof-lineedit |
released v0.1.0 |
standalone repo + submodule | Fortran-native line editing helpers, mounted at packages/fgof-lineedit |
fgof-watch |
released v0.1.0 |
standalone repo + submodule | polling-first watch helpers, mounted at packages/fgof-watch |
fgof-termios |
released v0.1.0 |
standalone repo + submodule | terminal mode helpers, mounted at packages/fgof-termios |
fgof-keys |
released v0.1.0 |
standalone repo + submodule | terminal key decoding helpers, mounted at packages/fgof-keys |
fgof-expect |
released v0.1.0 |
standalone repo + submodule | expect-style PTY automation helpers, mounted at packages/fgof-expect |
fgof-proc-test |
released v0.1.0 |
standalone repo + submodule | process-test fixtures, mounted at packages/fgof-proc-test |
fgof-temp |
released v0.1.0 |
standalone repo + submodule | temp files, temp dirs, and atomic write helpers, mounted at packages/fgof-temp |
fgof-cache |
released v0.1.0 |
standalone repo + submodule | disk cache helpers, mounted at packages/fgof-cache |
fgof-state |
released v0.1.0 |
standalone repo + submodule | persistent app and workspace state helpers, mounted at packages/fgof-state |
fgof-clipboard |
released v0.1.0 |
standalone repo + submodule | clipboard text helpers, mounted at packages/fgof-clipboard |
fgof-screen |
released v0.1.0 |
standalone repo + submodule | virtual screen buffer helpers, mounted at packages/fgof-screen |
fgof-jobs |
released v0.1.0 |
standalone repo + submodule | background job and wait-model helpers, mounted at packages/fgof-jobs |
fgof-devloop |
released v0.1.0 |
standalone repo + submodule | watch-driven development loop helpers, mounted at packages/fgof-devloop |
As packages are created:
- each package gets its own repository
- each package is added here under
packages/as a submodule - this table should be updated with its repo URL and current status
Clone the umbrella repo when you want the catalog, landscape docs, and package submodules together:
git clone --recurse-submodules git@github.com:FortranGoingOnForty/lib-modules.gitGo directly to an individual package repo when you only want one library.
- Root repo holds docs, shared conventions, and package discovery.
- Package code should live in standalone repos, not directly in the root repo.
- The
packages/directory is reserved for Git submodules and package-specific notes. - Cross-package dependencies should stay shallow and optional.
- Every package should remain usable as a standalone
fpmdependency.
fgof-process: POSIX-first process and subprocess helpersfgof-fs: filesystem and path helpersfgof-pty: POSIX-first PTY and terminal session helpersfgof-lineedit: Fortran-native line editing helpers for interactive CLIsfgof-watch: polling-first watch helpers for tools and dev loopsfgof-termios: terminal mode helpers for interactive toolsfgof-keys: terminal key decoding helpers for interactive toolsfgof-expect: expect-style PTY automation helpers for interactive tools and testsfgof-proc-test: process-test fixtures for command-line tools and integration suitesfgof-temp: temp files, temp directories, and atomic write helpersfgof-cache: disk cache helpers for command-line tools and local developer workflowsfgof-state: persistent app and workspace state helpersfgof-clipboard: clipboard text helpers for command-line and interactive toolsfgof-screen: virtual screen buffer helpers for future TUIs and prompt layersfgof-jobs: background job and wait-model helpers for shells, supervisors, and tool hostsfgof-devloop: watch-driven development loop helpers for rebuild, restart, and smoke workflows
See LANDSCAPE.md for the broader ecosystem assessment and package backlog.