Development - Linbojun99/faofishingreport GitHub Wiki
开发说明 · Development
代码结构 · Repository layout
| 路径 Path | 内容 Contents |
|---|---|
R/ |
函数代码;帮助页面用roxygen2注释(Markdown模式)编写 |
man/ |
由roxygen2生成的帮助页面,不要手工修改 |
inst/extdata/ |
包内自带数据:FAO数据、渔区边界、FishBase特征表、海表温度、图表标签(chart_labels.csv)、报告模板(report_text.csv、report_references.csv) |
inst/cmsy/ |
官方CMSY++代码、神经网络和用户手册 |
vignettes/articles/ |
网站英文文章;zh/为中文版;zh/reference/为中文函数参考(自动生成) |
pkgdown/ |
网站样式与脚本(extra.css、extra.js:中英文切换、函数参考前后页)、图标、中文函数说明的翻译(zh-reference/*.json) |
data-raw/ |
生成包内数据、README图片和中文函数参考的脚本 |
tests/testthat/ |
测试 |
修改函数后 · After changing a function
-
修改
R/中的代码和roxygen注释,然后生成帮助页面:roxygen2::roxygenise() -
更新中文函数参考(需在UTF-8环境中运行):
LC_ALL=en_US.UTF-8 Rscript data-raw/make_zh_reference.R extract帮助页面有变化的函数,其
pkgdown/zh-reference/<函数>.json会标记"stale": true;对照en中的英文更新zh中的翻译,再把stale改为false。新函数会得到一个空白的翻译文件。LC_ALL=en_US.UTF-8 Rscript data-raw/make_zh_reference.R build生成
vignettes/articles/zh/reference/中的页面。测试test-zh-reference.R会检查每个函数都有完整、最新的中文说明。 -
新函数要加入
_pkgdown.yml的reference分组;extra.js中的GROUPS_ZH给出分组的中文名。 -
运行测试和检查:
testthat::test_local()R CMD build . && R CMD check --no-manual faofishingreport_*.tar.gz
网站 · Website
- 本地构建:
pkgdown::build_site()(需要pandoc,例如RStudio自带的)。 - 推送到
main后,GitHub Actions(.github/workflows/pkgdown.yaml)自动构建网站并发布到gh-pages分支。 - 文章开头的
source("../_setup.R")加载本包、设置图表并显示所用的FAO版本;中文文章额外运行fao_settings(lang = "zh")。 - README图片由
data-raw/make_readme_figures.R生成,保存在man/figures/。
分支与发布 · Branches and releases
main:发布版本,网站由此构建。dev:开发分支,较大的新功能先在这里完成和测试(例如CMSY++的三系统检验),再合并到main。- 其他分支为单独的测试任务。
- 发布新版本:更新
DESCRIPTION的Version、inst/CITATION和NEWS.md,运行检查后推送main。 - 提交信息用中文描述改动内容。
持续集成 · Continuous integration
| 工作流 Workflow | 作用 |
|---|---|
R-CMD-check.yaml |
在Windows、macOS和Linux上运行R CMD check |
test-coverage.yaml |
测试覆盖率(Codecov) |
pkgdown.yaml |
构建并发布网站 |
cmsy-cross-platform.yaml |
在三个系统上实际运行CMSY++ |