{"id":50400005,"url":"https://github.com/Fortran-FOSS-Programmers/ford","last_synced_at":"2026-06-16T14:00:41.346Z","repository":{"id":25309082,"uuid":"28735723","full_name":"Fortran-FOSS-Programmers/ford","owner":"Fortran-FOSS-Programmers","description":"Automatically generates FORtran Documentation from comments within the code.","archived":false,"fork":false,"pushed_at":"2026-02-05T16:46:41.000Z","size":9400,"stargazers_count":456,"open_issues_count":94,"forks_count":138,"subscribers_count":37,"default_branch":"master","last_synced_at":"2026-06-11T16:00:02.180Z","etag":null,"topics":["documentation-generator","documentation-tool","fortran","fortran-documenter","fortran-language","static-analysis"],"latest_commit_sha":null,"homepage":"https://forddocs.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fortran-FOSS-Programmers.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-01-03T05:17:15.000Z","updated_at":"2026-06-08T21:46:51.000Z","dependencies_parsed_at":"2023-02-17T18:31:10.475Z","dependency_job_id":"d84d365d-9d29-45e1-946b-332fd79db4d0","html_url":"https://github.com/Fortran-FOSS-Programmers/ford","commit_stats":{"total_commits":1168,"total_committers":60,"mean_commits":"19.466666666666665","dds":0.4417808219178082,"last_synced_commit":"1b95d4ae3e911066f399fb392856da470cde21b7"},"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"purl":"pkg:github/Fortran-FOSS-Programmers/ford","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortran-FOSS-Programmers%2Fford","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortran-FOSS-Programmers%2Fford/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortran-FOSS-Programmers%2Fford/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortran-FOSS-Programmers%2Fford/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fortran-FOSS-Programmers","download_url":"https://codeload.github.com/Fortran-FOSS-Programmers/ford/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fortran-FOSS-Programmers%2Fford/sbom","scorecard":{"id":52171,"data":{"date":"2025-08-11","repo":{"name":"github.com/Fortran-FOSS-Programmers/ford","commit":"d9daaca62029bddc4afe4727eaeebf9121a8fd66"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":3,"reason":"Found 4/12 approved changesets -- score normalized to 3","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/black.yml:1","Warn: no topLevel permission defined: .github/workflows/corpus_regressions.yml:1","Warn: no topLevel permission defined: .github/workflows/python_publish.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/black.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/black.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/black.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/black.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/black.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/black.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/corpus_regressions.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/corpus_regressions.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/corpus_regressions.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/corpus_regressions.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_publish.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/python_publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python_publish.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/python_publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python_publish.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/python_publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/Fortran-FOSS-Programmers/ford/test.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/black.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/black.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/corpus_regressions.yml:16","Warn: pipCommand not pinned by hash: .github/workflows/corpus_regressions.yml:17","Warn: pipCommand not pinned by hash: .github/workflows/corpus_regressions.yml:18","Warn: pipCommand not pinned by hash: .github/workflows/python_publish.yml:18","Warn: pipCommand not pinned by hash: .github/workflows/python_publish.yml:19","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:22","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:23","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   9 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python_publish.yml:8"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":5,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'master'","Warn: 'stale review dismissal' is disabled on branch 'master'","Warn: required approving review count is 1 on branch 'master'","Warn: codeowners review is not required on branch 'master'","Warn: 'last push approval' is disabled on branch 'master'","Warn: no status checks found to merge onto branch 'master'","Info: PRs are required in order to make changes on branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"11 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2019-217 / GHSA-462w-v97r-4m45","Warn: Project is vulnerable to: PYSEC-2014-8 / GHSA-8r7q-cvjq-x353","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: PYSEC-2014-82 / GHSA-fqh9-2qgg-h84h","Warn: Project is vulnerable to: PYSEC-2021-66 / GHSA-g3rq-g295-4j3m","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: PYSEC-2019-220 / GHSA-hj2j-77xm-mc5v","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: PYSEC-2017-74"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T23:56:03.322Z","repository_id":25309082,"created_at":"2025-08-14T23:56:03.322Z","updated_at":"2025-08-14T23:56:03.322Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34408788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation-generator","documentation-tool","fortran","fortran-documenter","fortran-language","static-analysis"],"created_at":"2026-05-30T23:00:23.257Z","updated_at":"2026-06-16T14:00:41.338Z","avatar_url":"https://github.com/Fortran-FOSS-Programmers.png","language":"Python","funding_links":[],"categories":["Build Systems \u0026 Tooling"],"sub_categories":[],"readme":"# FORD\n[![Latest Version](https://img.shields.io/pypi/v/ford.svg)](https://pypi.python.org/pypi/FORD)\n[![Latest homebrew version](https://img.shields.io/homebrew/v/ford.svg?maxAge=2592000)](http://braumeister.org/formula/ford)\n[![PyPI Total Downloads](https://static.pepy.tech/badge/ford)](https://pepy.tech/project/ford)\n[![GitHub license](https://img.shields.io/badge/license-GPL_v3-blue.svg)](./LICENSE)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1422473.svg)](https://doi.org/10.5281/zenodo.1422473)\n\nThis is an automatic documentation generator for modern Fortran programs.\nFORD stands for FORtran Documenter. As you may know, \"to ford\" refers to\ncrossing a river (or other body of water). It does not, in this context, refer\nto any company or individual associated with cars.\n\nFord was written due to [Doxygen](http://www.doxygen.org/)'s\npoor handling of Fortran and the lack of comparable alternatives.\n[ROBODoc](https://rfsber.home.xs4all.nl/Robo/index.html) can't actually extract\nany information from the source code and just about any other automatic\ndocumentation software I found was either proprietary, didn't work very well\nfor Fortran, or was limited in terms of how it produced its output.\n[f90doc](http://erikdemaine.org/software/f90doc/) is quite good and I managed\nto modify it so that it could handle most of Fortran 2003, but it produces\nrather ugly documentation, can't provide as many links between different parts\nof the documentation as I'd like, and is written in Perl (which I'm not that\nfamiliar with and which lacks the sort of libraries found in Python for\nproducing HTML content).\n\nThe goal of FORD is to be able to reliably produce documentation for modern\nFortran software which is informative and nice to look at. The documentation\nshould be easy to write and non-obtrusive within the code. While it will never\nbe as feature-rich as Doxygen, hopefully FORD will be able to provide a good\nalternative for documenting Fortran projects.\n\n## Capabilities\nCurrent features include:\n\n- the ability to extract information about variables, procedures, procedure\n  arguments, derived types, programs, and modules from the source code.\n- the ability to extract documentation from comments in the source code.\n- LaTeX support in documentation using [MathJax](https://www.mathjax.org/).\n- searchable documentation, using [Lunr Search](https://lunrjs.com).\n- author description and social media (including Github!) links.\n- links to download the source code.\n- links to individual files, both in their raw form or in HTML with syntax\n  highlighting.\n- use of Markdown to type-set documentation.\n- links between related parts of the software.\n- Bootstrap CSS for the documentation, making it both functional and pretty.\n- configurable settings.\n- ability to create a hierarchical set of pages containing general information,\n  not associated with any particular part of the source code.\n- display an entry for non-Fortran source files with file-level documentation\n  and syntax highlighted code.\n\n## Installation\n\nThe simplest way to install FORD is using [pip](https://pip.pypa.io/en/latest/):\n\n    pip install ford\n\nPip will automatically handle all dependencies for you. By default this will\nplace `ford` in `~/.local/bin` -- you might need to add this to your `PATH`.\n\nAlternatively, FORD is available through the [Homebrew](https://brew.sh) package\nmanager for Mac OS X. To update Homebrew and install FORD, run these commands in\na terminal:\n\n    brew update\n    brew install FORD\n\nIf you would like to install the latest development (master) branch from github,\nsimply add the `--HEAD` flag: `brew install --HEAD FORD`\n\nFORD is also available through several system package managers:\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/ford.svg)](https://repology.org/project/ford/versions)\n\n## Documentation\nMore complete documentation can be found in the [docs](https://forddocs.readthedocs.io).\n\n## License\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut **without any warrenty**; without even the implied warranty of\n**merchantability** or **fitness for a particular purpose**.  See the\nGNU General Public License for more details.\n\nYou should have received a [copy](./LICENSE) of the GNU General Public License\nalong with this program.  If not, see the [GNU website](https://www.gnu.org/licenses/gpl.html).\n\nDocuments produced by FORD are derivative works derived from the input used in their production;\nthey are not affected by this license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFortran-FOSS-Programmers%2Fford","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFortran-FOSS-Programmers%2Fford","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFortran-FOSS-Programmers%2Fford/lists"}