Fortran-lang.org 包索引#
包装标准#
要编入索引的包需要满足以下条件:
相关性:软件包必须主要在 Fortran 中实现,或为现有软件包提供完整的 Fortran 接口,或仅用于 Fortran 软件开发。
成熟度:应实现包的主要功能。不接受原型、测试或部分完整的包装。如果包托管在 github 或类似网站上,它应该至少有 5 个“星”。
可用性:包源可免费在线浏览或克隆或下载
开源:软件包应在适当的开源许可下获得许可,许可文件明确包含在源代码中
唯一性:该软件包不应是现有软件包的分叉或次要修订
README:包应有某种形式的 README 或登陆页面,清楚地说明包的目的和功能。这还应该包含有关包依赖项以及构建和运行所需步骤的信息。
以下标准不是必需的,但建议:
文档:针对软件包用户的任何形式的书面文档。理想情况下,这应该包括:
支持/测试的编译器
依赖项
构建和安装过程
包中包含的模块
提供的程序及其接口
示例代码
Contributing:有关用户如何提交问题并为包的开发做出贡献的详细信息
测试:可用于验证包功能的任何形式的可执行测试
可移植性:没有非标准语言扩展或专有依赖项
FPM:支持通过 Fortran 包管理器安装 fpm
添加包的过程#
用户应确认他们的项目符合在 Fortran-lang 包索引中列出的最低要求,如本文档中所述
用户应使用“包索引请求”模板打开拉取请求
至少三名 Fortran 语言社区成员应根据上述标准审查请求
如果三个或更多的 Fortran-lang 社区成员同意该包应该被列出并且没有明显的反对意见,那么拉取请求将被合并
包索引请求#
包索引请求是通过对 fortran-lang.org 存储库 的拉取请求发出的。请参阅 本指南 以获取有关分叉和提出拉取请求的指南。
包的详细信息列在data/package_index.yml
data文件中。
要添加一个包,只需在该文件中创建一个新条目。数据文件按高级类别排序只是为了帮助导航;为你的包裹找到合适的类别并创建一个新条目。
将新条目添加到包索引后,在构建 sphinx 构建之前运行 github action (CI/CD,持续集成/部署) 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
:绘图和图形用户界面numerical
:矩阵、线性代数、求解器、求根、插值、优化、微分方程、统计、机器学习、随机数_等。_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 存储库指定许可证
成员审查清单#
社区成员审查包应包括以下几点:
确保包符合本文档中规定的最低标准
检查包元数据
存储库存在且可访问
描述清晰简洁地描述了包装
分配的类别是适当的
检查许可证信息
如果 license 字段被省略:检查 github 是否检测到 license
如果包含许可证字段:检查它是否与存储库许可证文件匹配
合并后:
检查包在预期类别中是否可用并搜索