Skip to main content

FoBiS — Fortran Building System

Latest Version GitHub tag Build Status Coverage GitHub issues Supported Python versions

License

Automatic dependency-resolving build tool for modern Fortran projects — no makefiles, no boilerplate. Package manger highly integrated with GitHub, install and fetch project dependencies. Add instrospective doctests to your Fortran project and exploit AI-powered programmatic buildings with the provided AI skill. Manage a whole ecosystem of interconnected repositories: dashboard, cross-repo checks, release train.

⚡ Zero-configuration builds
Drop FoBiS into any Fortran project and run fobis build. It scans sources, resolves all use, include, and module dependencies automatically, and compiles in the correct order — no makefiles, no boilerplate. Convention-based discovery finds src/, source/, and app/ directories automatically. First tutorial
📄 fobos — the FoBiS makefile
A concise INI-style configuration file replaces makefiles entirely. Define multiple build modes, templates, variables, custom rules, feature flags, multi-target sections, and hooks — all in one readable file. fobos reference
🌐 GitHub integration
Declare dependencies in a [dependencies] fobos section — fobis fetch clones, pins to branch/tag/rev/semver, and pre-builds them; fobis build picks them up automatically. The commits fetched are recorded in a lock file next to the dependencies. Install any GitHub-hosted FoBiS project directly with fobis install user/repo. Fetch deps · Lock file
🏗️ Named build profiles & feature flags
One-word compiler flag presets (debug, release, asan, coverage) for every supported compiler. Feature flags let you activate named compile-time options without separate build modes — mix and match freely. Build profiles · Feature flags
🧪 Integrated test runner & coverage
fobis test discovers, compiles, and runs all Fortran test programs — no external harness needed. fobis coverage generates HTML/XML reports via gcovr or lcov and can fail CI when coverage drops below a threshold. Test runner · Coverage
🔬 Introspective doctests
Embed micro-unit-tests directly inside Fortran comment docstrings. FoBiS generates, compiles, and runs volatile test programs automatically — inspired by Python's doctest module, no test harness needed. Doctests
⚡ Build cache
Content-addressed cache keyed on source commit, compiler, and flags — reuses object files across clean builds and branch switches. fobis cache list/clean for housekeeping. Build cache
🤖 Introspect & Claude Code skill
fobis introspect --all emits machine-readable JSON of the full project graph — sources, compiler flags, dependencies, targets. Powers the bundled /fobis Claude Code skill for AI-assisted builds right in your editor. introspect · Claude skill
📋 Scaffold — boilerplate sync
Keep CI workflows, docs configs, license files, and scripts identical across all your Fortran repos. fobis scaffold status shows drift; fobis scaffold sync fixes it; fobis scaffold init bootstraps new projects. All templates bundled inside FoBiS — no extra dependencies. Scaffold reference
🧠 LLM commit messages
Generate well-formed Conventional Commits messages for staged changes via a local LLM. Supports Ollama and any OpenAI-compatible endpoint (LM Studio, vLLM, llama.cpp) — no cloud account, no API key, no data leaving your machine. LLM commit guide
🧭 Ecosystem dashboard
Register your interconnected repositories once; fobis ecosystem dashboard shows them all at a glance — releases due (bump suggested from Conventional Commits), CI at HEAD, scaffold drift, dependency pins behind the upstream heads — in the terminal or as a themed HTML page with a live dependency diagram. Ecosystem guide
🚂 Check & release train
fobis ecosystem check LIB builds and tests every project downstream against your local, unreleased working copy. fobis ecosystem release releases everything due, dependencies first, refusing to start while any project is blocked and stopping safely at the first failure. ecosystem reference
🔎 Code quality
fobis lint checks the sources with rules for bug-prone, obsolescent and non-portable code and for OpenMP, OpenACC and MPI defects; fobis review reports only on the lines a change touches; fobis query answers who calls, writes or offloads what; fobis modernize applies fixes only when builds, tests and cases are unchanged. Code quality track
📐 Verified numerics
Declare cases and the quantities they compute; fobis verify compares them with accepted references within declared tolerances, fobis matrix across compilers and checked builds, fobis assess estimates the digits you can trust, fobis diff-run and fobis bench compare two revisions, fobis gate runs them all, locally or under Slurm. Verified numerics track
🧠 AI assistance, grounded
Local open models managed by FoBiS explain build failures and crashes, answer questions about the code with citations, generate tests that must build and pass, review changes and propose merge resolutions checked by the compiler; fobis mcp serves the same facts to AI agents. Facts first, model last. The AI design

Full documentation: tutorials · cookbook · reference

Why FoBiS?

Modern Fortran's module system is powerful — but tracking inter-module compilation order by hand in a makefile quickly becomes a nightmare as project size grows. Every time you add a module, rename a file, or restructure directories, the makefile needs manual updates.

FoBiS solves this completely. It parses source files on every invocation, rebuilds the dependency graph from scratch, and compiles in the correct order — with no configuration required for simple projects.

# That's it. FoBiS finds all programs, resolves all dependencies, compiles.
fobis build

Starting from nothing, fobis new writes a project that builds and tests at once:

fobis new demo && cd demo && fobis build && fobis test

For complex projects, a single fobos file in the project root replaces makefiles entirely:

[modes]
modes = debug release

[debug]
compiler  = gnu
cflags    = -c -O0 -g -Wall
build_dir = ./build/debug/

[release]
compiler  = gnu
cflags    = -c -O3
build_dir = ./build/release/
fobis build --mode release
zero-configuration build simplify complex dependency
basic build complex dependancy
GH integration, project install GH integration, dependancies fetch
project install dependancies fetch
ecosystem: graph and dashboard ecosystem: check before releasing
ecosystem dashboard ecosystem check

Ecosystem — manage interconnected projects

Several Fortran libraries, each in its own repository, depending on each other? Register them once and fobis ecosystem handles them as a whole — read-only unless you ask it to act, and nothing is ever pushed without your confirmation.

fobis ecosystem discover                    # FoBiS repos under your root not registered yet
fobis ecosystem add PENF FACE BeFoR64       # register them (your config keeps its comments)
fobis ecosystem graph                       # release order and dependency tree
fobis ecosystem dashboard                   # releases due, CI, drift, stale pins (--format html for a page)
fobis ecosystem exec -- 'fobis clean && fobis build'   # any command, every project, dependencies first
fobis ecosystem check PENF                  # does my local PENF break anything downstream?
fobis ecosystem release --dry-run           # what needs a release, with which version
fobis ecosystem release                     # the release train

ecosystem HTML dashboard

pre-release impact check release train
ecosystem check ecosystem release

See the ecosystem guide for the concepts, a one-minute demo you can run locally, and recipes.

Scaffold — boilerplate management

fobis scaffold keeps CI workflows, docs configs, license files, and other boilerplate in sync across all your Fortran repos. All templates are bundled inside FoBiS — no external dependencies.

fobis scaffold status          # drift report: OK / OUTDATED / MISSING per file
fobis scaffold sync --dry-run  # preview diffs without writing
fobis scaffold sync --yes      # apply all updates silently
fobis scaffold init            # bootstrap a new project (creates src/, docs/, .github/, …)
fobis scaffold list            # list all managed files and their categories

Project variables ({{NAME}}, {{AUTHORS}}, {{REPOSITORY}}, …) are resolved from the fobos [project] section, the git remote URL, and git config. See the scaffold reference for full details.

AI assistance, on your machine

FoBiS runs open models itself — llama.cpp's server, a pinned release, and a model pulled once — so there is no service to install, no account, and no code leaving the machine. Every answer is built on the project's facts (the compiler's message, the code, the interfaces) and cites the sources it comes from.

fobis llm runtime install && fobis llm pull coder-7b   # once
fobis build --explain     # why the build failed: facts first, then a cited cause and fix
fobis ask -p src "What does simpson require of the number of intervals?"
fobis commit              # a Conventional Commits message for the staged changes

fobis build --explain and fobis ask with coder-7b, run locally on the CPU

Recorded with coder-7b on 6 CPU cores and no GPU: each answer takes about 45 s there (cut from the recording), a few seconds on a GPU. Ollama and any OpenAI-compatible server work too. Guides: explaining failures, asking questions, commit messages, the local runtime.

Showcases

Projects using FoBiS:

  • ADAM — Accelerated fluid Dynamics on Adaptive Mesh refinement grids  |  GitHub
  • BeFoR64 — Base64 encoding/decoding library for Fortran  |  GitHub
  • FACE — Fortran ANSI Colors and Escape sequences  |  GitHub
  • FiNeR — Fortran INI ParseR and generator  |  GitHub
  • FLAP — Fortran command Line Arguments Parser  |  GitHub
  • FUNDAL — Fortran UNified Device Acceleration Library  |  GitHub
  • FOSSIL — FOrtran Stereo (si) Litography parser  |  GitHub
  • MORTIF — MORTon Indexer (Z-order) Fortran environment  |  GitHub
  • MOTIOn — Modular (HPC) Optimized Toolkit (for) IO (in fortra)n  |  GitHub
  • PENF — Portability Environment for Fortran  |  GitHub
  • StringiFor — Strings Fortran Manipulator with steroids  |  GitHub
  • VecFor — Vector algebra class for Fortran  |  GitHub
  • VTKFortran — pure Fortran VTK (XML) API  |  GitHub

Author

Stefano Zaghi — stefano.zaghi@gmail.com · GitHub

Copyrights

FoBiS is an open source project distributed under the GPL v3 license. Anyone interested in using, developing, or contributing to FoBiS is welcome — see the contributing guidelines.

Metadata

Release files for FoBiS.py 3.9.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for FoBiS.py 3.9.10
File Size Uploaded
fobis_py-3.9.10.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for FoBiS.py 3.9.10
File Interpreter ABI Platform
fobis_py-3.9.10-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / fobis_py-3.9.10.tar.gz

Download URL fobis_py-3.9.10.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
493e54dcec9fbaf2d64d2af178e10efa3b7f7d6536fa9c7ffdb3a80f375d1d24
BLAKE2b-256 checksum
How to use checksums
1cc4bff90736291afc440e13460538f9b8b27a6a763977c1934fc55bfa437b56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / fobis_py-3.9.10-py3-none-any.whl

Download URL fobis_py-3.9.10-py3-none-any.whl
Size 905.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a6c86fa66a76d417037f5802dab96561043f2f04428b5bdacfee2760ec97c3a
BLAKE2b-256 checksum
How to use checksums
8da256f6752e56221850c3699b0a2b3044b38a623a9748101526781e41bea9b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

3.9.11

2 release files

This release

3.9.10 This release

2 release files

3.9.9

2 release files

3.9.8

2 release files

3.9.7

2 release files

3.9.6

2 release files

3.9.5

2 release files

3.9.4

2 release files

3.9.3

2 release files

3.9.2

2 release files

3.9.1

2 release files

3.9.0

2 release files

3.8.20

2 release files

3.8.19

2 release files

3.8.18

2 release files

3.8.17

2 release files

3.8.16

2 release files

3.8.15

2 release files

3.8.14

2 release files

3.8.13

2 release files

3.8.12

2 release files

3.8.11

2 release files

3.8.9

2 release files

3.8.8

2 release files

3.8.7

2 release files

3.8.6

2 release files

3.8.5

2 release files

3.8.4

2 release files

3.8.3

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.10

2 release files

3.7.9

2 release files

3.7.8

2 release files

3.7.7

2 release files

3.7.5

2 release files

3.7.3

2 release files

3.7.2

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.11

2 release files

3.6.10

2 release files

3.6.8

2 release files

3.6.4

1 release file

3.6.3

1 release file

3.6.2

1 release file

3.6.1

1 release file

3.6.0

1 release file

3.5.4

1 release file

3.5.3

1 release file

3.5.2

1 release file

3.5.1

1 release file

3.5.0

1 release file

3.4.1

1 release file

3.4.0

1 release file

3.3.4

1 release file

3.3.3

1 release file

3.3.2

1 release file

3.3.1

1 release file

3.3.0

1 release file

3.2.2

1 release file

3.2.1

1 release file

3.2.0

1 release file

3.1.0

1 release file

3.0.6

1 release file

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.9.7

1 release file

2.9.5

1 release file

2.9.4

1 release file

2.9.3

1 release file

2.9.2

1 release file

2.2.9.1

1 release file

2.2.8

1 release file

2.2.7

1 release file

2.2.6

1 release file

2.2.5

1 release file

2.2.4

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.9.6

1 release file

1.9.5

1 release file

1.9.4

1 release file

1.9.3

1 release file

1.9.2

1 release file

1.9.1

1 release file

1.9.0

1 release file

1.8.4

1 release file

1.8.3

1 release file

1.8.2

1 release file

1.8.0

1 release file

1.7.5

1 release file

1.7.4

1 release file

1.7.3

1 release file

1.7.2

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.9

1 release file

1.6.8

1 release file

1.6.7

1 release file

1.6.6

1 release file

1.6.5

1 release file

1.6.4

1 release file

1.6.3

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.9

1 release file

1.5.8

1 release file

1.5.7

1 release file

1.5.6

1 release file

1.5.5

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.5.2

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.3

1 release file

1.4.2

1 release file

1.4.1

1.4.0

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.9

1 release file

1.2.8

1 release file

1.2.7

1 release file

1.2.6

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page