Skip to main content

a Fortran Building System

Project description

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.

⚡ 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. Quick start
📄 fobos — the FoBiS makefile
A concise INI-style configuration file replaces makefiles entirely. Define multiple build modes, templates, variables, and custom rules — all in one readable file. fobos reference
🌐 GitHub integration
Declare dependencies in a [dependencies] fobos section — fobis fetch clones, pins to branch/tag/rev, and pre-builds them; fobis build picks them up automatically. Install any GitHub-hosted FoBiS project directly with fobis install user/repo. Fetch deps · GitHub install
🔬 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
🤖 JSON output & Claude Code skill
Pass --json to fobis build, fobis clean, or fobis fetch for machine-readable structured output — ideal for CI and AI agent workflows. Install the bundled /fobis Claude Code skill for expert AI assistance right in your editor. JSON output · Claude skill
🆓 Free and open source
Released under the GNU GPL v3 license. Free to use, study, modify, and distribute. Contributions welcome — see the contributing guidelines
📋 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

Full documentation

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

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

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.

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 Zaghistefano.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.

Project details


Release history Release notifications | RSS feed

This version

3.7.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fobis_py-3.7.5.tar.gz (94.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fobis_py-3.7.5-py3-none-any.whl (111.0 kB view details)

Uploaded Python 3

File details

Details for the file fobis_py-3.7.5.tar.gz.

File metadata

  • Download URL: fobis_py-3.7.5.tar.gz
  • Upload date:
  • Size: 94.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fobis_py-3.7.5.tar.gz
Algorithm Hash digest
SHA256 fa85b7b01c8f8fb4f026a8cd29febef2c44828cb516f84b1354c6ac3a3763609
MD5 0d980e7839ea867810f260c3921ef301
BLAKE2b-256 83239f5682fa8fe7a2561347d58b4a444f5bbc3f788398ac487b49df5b6bf68c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fobis_py-3.7.5.tar.gz:

Publisher: python-package.yml on szaghi/FoBiS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fobis_py-3.7.5-py3-none-any.whl.

File metadata

  • Download URL: fobis_py-3.7.5-py3-none-any.whl
  • Upload date:
  • Size: 111.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fobis_py-3.7.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fa3f65fc7c28e594068ea1fb9940caebd28db0636919b2db01b8a8f569eb29a9
MD5 84a53fa47d059ecee65cd07142407774
BLAKE2b-256 a8d90c94c1118bf7b1a7b37e88c527a9cfcadf80b38290009496ddd20d3fae5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fobis_py-3.7.5-py3-none-any.whl:

Publisher: python-package.yml on szaghi/FoBiS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page