Fortran-lang.org 包索引#
包标准#
以下标准是包被索引的必要条件
相关性:该包必须主要用 Fortran 实现,或为现有包提供完整的 Fortran 接口,或专门用于 Fortran 软件开发。
成熟度:包的主要功能应已实现。不会接受原型、测试或部分完成的包。如果包托管在 github 或类似平台上,则应至少有 5 个“星标”。
可用性:包源代码应可在线浏览、克隆或下载。
开源:包应在适当的开源许可证下许可,并且许可证文件应明确包含在源代码中。
唯一性:该包不得是现有包的派生或次要修改。
README:该包应具有一些形式的 README 或登陆页面,清楚地说明包的目的和功能。这还应包含有关包依赖项以及构建和运行所需步骤的信息。
以下标准不是必需的,但建议使用
文档:任何针对包用户的书面文档形式。理想情况下,这应该涵盖
支持/测试的编译器
依赖项
构建和安装过程
包中包含的模块
提供的过程及其接口
示例代码
贡献:有关用户如何提交问题并为包开发做出贡献的详细信息
测试:任何可用于验证包功能的可执行测试。
可移植性:没有非标准语言扩展或专有依赖项。
FPM:支持 Fortran 包管理器 fpm 安装。
添加包的过程#
用户应确认其项目满足本文件中所述的 Fortran-lang 包索引的最低要求。
用户应使用“包索引请求”模板打开拉取请求。
至少三名 Fortran-lang 社区成员应根据上述标准审查请求。
如果三名或更多 Fortran-lang 社区成员同意应列出该包并且没有重大异议,则将合并拉取请求。
包索引请求#
包索引请求通过针对 fortran-lang.org 存储库 的拉取请求提出。有关分叉和发出拉取请求的指南,请参阅 本指南。
包详细信息列在 data/package_index.yml
数据文件中。
要添加包,只需在此文件中创建一个新条目。数据文件按高级别类别排序,仅是为了帮助导航;找到适合您包的类别并创建一个新条目。
在向包索引添加新条目后,在构建 sphinx 构建之前运行 github 操作 fortran_packages。#
GitHub 托管的包#
- name: <Package_name>
github: <github_user>/<repository_name>
description: <single_line_description>
categories: <category1> [category2]
tags: [tag1] [tag2] [tag3]
version: [version]
license: [license]
有效类别
libraries
:通用库interfaces
:提供与其他库、软件或设备接口的库programming
:通用编程实用程序:错误、日志记录、测试、文档等。data-types
:提供高级数据类型的库:容器、日期时间、可调整大小的数组等。strings
:字符串处理库io
:解析和生成各种文件格式的库graphics
:绘图和 GUInumerical
:矩阵、线性代数、求解器、寻根、插值、优化、微分方程、统计、机器学习、随机数等。scientific
:特定领域的科学库或应用程序examples
:提供语言特性演示、教程和基准的存储库
列出多个类别的项目必须在拉取请求中提供良好的理由。
注释
包描述应使用一个句子清楚地描述包的功能。
标签(可选)应包含名称或描述中未包含的任何用户可能直接搜索的术语。标签应以空格分隔。
包版本
如果在 github 上创建了版本化版本,则可以自动确定。
如果指定了版本,它将覆盖任何检测到的 github 版本。
如果版本为“none”,则不会显示任何版本信息。(如果您的包没有版本,请使用此选项。)
包许可证
如果 github 能够检测到已知的许可证,则可以自动确定。
如果 github 无法检测到已知的许可证,则必须指定许可证。
非 GitHub 托管的包#
- name: <Package_name>
url: <repo_url>
description: <single_line_description>
categories: <category1> [category2]
tags: [tag1] [tag2] [tag3]
version: [version]
license: <license>
注释
无法自动检测非 github 存储库的许可证和版本信息。
如果您的包没有版本,则省略版本字段。
必须为非 github 存储库指定许可证。
成员审查清单#
审查包的社区成员应涵盖以下要点
确保包满足本文件中所述的最低标准。
检查包元数据。
存储库存在且可访问。
描述清楚简洁地描述了包。
分配的类别合适。
检查许可证信息。
如果省略了许可证字段:检查 github 是否已检测到许可证。
如果包含许可证字段:检查它是否与存储库许可证文件匹配。
合并后
检查包是否在预期类别和搜索中可用。