Fortran-lang.org 包索引#

包装标准#

要编入索引的包需要满足以下条件:

  • 相关性:软件包必须主要在 Fortran 中实现,或为现有软件包提供完整的 Fortran 接口,或仅用于 Fortran 软件开发。

  • 成熟度:应实现包的主要功能。不接受原型、测试或部分完整的包装。如果包托管在 github 或类似网站上,它应该至少有 5 个“星”。

  • 可用性:包源可免费在线浏览或克隆或下载

  • 开源:软件包应在适当的开源许可下获得许可,许可文件明确包含在源代码中

  • 唯一性:该软件包不应是现有软件包的分叉或次要修订

  • README:包应有某种形式的 README 或登陆页面,清楚地说明包的目的和功能。这还应该包含有关包依赖项以及构建和运行所需步骤的信息。

以下标准不是必需的,但建议:

  • 文档:针对软件包用户的任何形式的书面文档。理想情况下,这应该包括:

    • 支持/测试的编译器

    • 依赖项

    • 构建和安装过程

    • 包中包含的模块

    • 提供的程序及其接口

    • 示例代码

  • Contributing:有关用户如何提交问题并为包的开发做出贡献的详细信息

  • 测试:可用于验证包功能的任何形式的可执行测试

  • 可移植性:没有非标准语言扩展或专有依赖项

  • FPM:支持通过 Fortran 包管理器安装 fpm

添加包的过程#

  1. 用户应确认他们的项目符合在 Fortran-lang 包索引中列出的最低要求,如本文档中所述

  2. 用户应使用“包索引请求”模板打开拉取请求

  3. 至少三名 Fortran 语言社区成员应根据上述标准审查请求

  4. 如果三个或更多的 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 存储库指定许可证

成员审查清单#

社区成员审查包应包括以下几点:

  1. 确保包符合本文档中规定的最低标准

  2. 检查包元数据

    • 存储库存在且可访问

    • 描述清晰简洁地描述了包装

    • 分配的类别是适当的

  3. 检查许可证信息

    • 如果 license 字段被省略:检查 github 是否检测到 license

    • 如果包含许可证字段:检查它是否与存储库许可证文件匹配

合并后:

  • 检查包在预期类别中是否可用并搜索