stdlib-js / stdlib-js/stdlib

[RFC]: automated/make recipe for generation of manifest files for C implementation of a package

未关闭
#2,154 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
JavaScript
星标
6k
派生
1.3k
平均合并
1 天 3 小时
30 天内合并 PR
611

描述

### Description

This RFC proposes a make recipe `genmanifest*` that can be used to generate `include.gypi` , `binding.gyp` and `manifest.json`

> * *: name can be subjected to change in future

Right now, the creation of these files has been manual, that is, for every C implementation for a package such as `@stdlib/math/base/special/fast/abs` we need to create these files manually, copying the includes and binding gyp files from existing related packages and create manifest.json depending on the dependencies used by the package

automating this can help in easing these tasks and also lessen the burden on the contributor as well as new comers.

A working prototype for this would be :

![image](https://github.com/stdlib-js/stdlib/assets/73595362/b02f0fb7-ac84-4858-868f-d5ea27d17d84)

this prototype extracts dependencies used in C files from src, benchmark and examples folder and generate the related manifest.json , include.gypi and binding.gyp for that package

this can be further expanded to support blas as blas manifest.json also follows a similiar pattern based on the related file name like `ccopy.f` is being used in mac and there are 5 os based confs

### Related Issues

n/a

### Questions

No.

### Other

No.

### Checklist

- [X] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with `RFC:`.

贡献指南

打开贡献指南

调研方向

Start by reviewing the proposed genmanifest* make recipe and the prototype that scans src, benchmark, and examples. Compare the generated include.gypi, binding.gyp, and manifest.json with manually created package files, then determine how BLAS-related manifests would fit. Done means an agreed automated generation approach covering the stated package files and dependencies.

由索引模型根据 Issue 内容生成。

评估

技术栈
c, javascript
领域
build-system, tooling
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
28/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。