fgof-devloop Public
Go to file
T
Code
Use Git or checkout with SVN using the web URL.
No matching headings.
fgof-devloop
Watch-driven rebuild, restart, and smoke-loop helpers for modern Fortran tools.
fgof-devloop is intended to be a small standalone library for the reusable
parts of development loops: deciding when file changes should trigger work,
tracking run cycles, modeling restart policy, and eventually wiring those
decisions to fgof-watch, fgof-process, and fgof-jobs.
It is part of the FortranGoingOnForty lib-modules
catalog, but it is intended to stand on its own as a normal fpm package.
Current v1 target:
- stable dev-loop option and state types
- deterministic cycle and restart decision helpers
- watch-event shaping that can consume
fgof-watch - process-runner integration that can supervise rebuild and run commands
- examples for command-line tools and local service smoke loops
Status
Sprint 01 is in place.
Tracked today:
- package layout, CI, and standalone repo setup
- local sprint plan in ignored
.docs/sprints/ - stable option, trigger, cycle, decision, and state types
- pure run-cycle helpers for start, finish, stop, and restart decisions
- deterministic failure policy through
stop_on_failureandmax_failures - focused model coverage in
fpm test
Public API Shape
Primary modules:
fgof_devloopfgof_devloop_types
Current public procedures:
clear_devloop_optionsclear_devloop_triggerclear_devloop_cycleclear_devloop_decisiondevloop_backend_nameclear_devloop_statestart_devloopstop_devloopshould_start_on_opendevloop_start_triggerdevloop_change_triggerdevloop_manual_triggerbegin_devloop_cyclefinish_devloop_cycle
Current semantics:
devloop_optionscarries run-on-start, restart-on-change, stop-on-failure, and max-failure policydevloop_triggerrecords why work should begin, such as start, file change, or manual requestbegin_devloop_cycle()increments the cycle counter and starts work only when the loop is active, idle, and policy permits the triggerfinish_devloop_cycle()records success or failure and returns an explicit decision to idle, restart, or stop- negative
max_failuresvalues normalize to unlimited failures - Sprint 01 is intentionally process-free so later watch and process integration can build on deterministic state transitions
Build And Test
fpm test
Supported Platforms
- macOS
- Linux
Boundaries
- focused on reusable development-loop mechanics, not a full CLI app
- should remain useful on its own even if future tools wrap it with UI policy
- watch, process, and job integration should stay layered over stable state transitions
License
MIT