重置工具
repo-tools 是一个带有这些子命令用于寄存器的命令行工具 :
| 子命令 | 任务 |
|---|---|
map | 写入TypeScript/JavaScript,Python,C#或Rust寄存器的依赖图和架构报告. |
depgraph | 贬值的别名: map (通过 2.x. |
check | 检查 ## Verification 与新图表相比较的Markdown文档表格,在漂移时失败. |
docs | 测量 TypeScript, JavaScript, Python, C#, Rust, Go, Java, Kotlin, C, C++, PHP 和 Ruby 等文件的 doc 注释, 规划缺失的文件, 并打开结果. |
chunk | 将一个大文件分割成块, 将块合并后, 并显示哪些块已更改 . |
compress | 为模型上下文编写文件的紧凑副本,并恢复. |
query | 解答来自 map,并撰写两份衍生报告. |
clones | 列出TypeScript或JavaScript寄存器的功能,并找到互相复制的功能. |
ste | 对照简化技术英语检查Markdown或docstring道具. |
状态: 2.6.0版本.
map, (中文(简体) ),check财务报告和审定财务报表query从repo-tools.config.json入于根间. 这个 节map实值map(它的旧名,depgraph页:1.--config=<file>制造任何 3⁄4 ̄ ̧漯b.clones从clones区域。 旗子会覆盖 文件,文件将覆盖默认值.repo-tools depgraph打印一行并运行map它接受1.x 扫描镜旗 (--src, (中文(简体) ),--tests, (中文(简体) ),--exclude, (中文(简体) ),--also-exclude, (中文(简体) ),--all, (中文(简体) ),--reachable-only, (中文(简体) ),--include-tests)和警告,因为它们在2.0.0.map1号出口.compress -d只恢复 JSON 文件.
安装
安装两个表单中的一个.
npm 软件包
Npm 包需要节点 20 或 后 :
npm i -g @danielsimonjr/repo-tools
repo-tools --version
已编译可执行文件
可执行文件持有工具和 Bun 运行时间 。 它不需要Bun,节点或 node_modules。 。 。 .
为您的平台下载文件 SHA256SUMS 从
GitHub 发布数字 :
| 平台 | 文件 |
|---|---|
| 视窗 x64 | repo-tools-windows-x64.exe |
| Linux x64 函数 | repo-tools-linux-x64 |
| 马可斯臂64 | repo-tools-darwin-arm64 |
校验文件对照 SHA256SUMS 在运行前:
# Linux
sha256sum --ignore-missing -c SHA256SUMS
# macOS: compare the output with the line of the file in SHA256SUMS
shasum -a 256 repo-tools-darwin-arm64
# Windows (PowerShell): compare the output with the line of the file in SHA256SUMS
Get-FileHash repo-tools-windows-x64.exe -Algorithm SHA256
在Linux和macOS上,一个已下载的文件没有执行位. 执行文件没有签名, 所以 macOS 也标记浏览器下载的文件。 在第一次运行前运行这些命令 :
chmod +x repo-tools-linux-x64 # or repo-tools-darwin-arm64
xattr -d com.apple.quarantine repo-tools-darwin-arm64 # macOS only
从源头运行
用 Bun 运行源工具 :
bun install
bun src/bin.ts --help
构建可执行文件
所编译的可执行文件是主要产品:一个持有工具的文件和Bun运行时间.
它不需要Bun,节点或 node_modules 在运行它的机器上.
先决条件: 邦 1.4.2 或 后期, 以及此寄存器的克隆.
-
从锁文件安装依赖性 :
bun install --frozen-lockfile每次拉后都这样 可执行文件捆绑已安装的依赖关系, 因此构建 首先比较
node_modules与bun.lock不同的是,1号出口的建筑停了下来 并命名每个软件包。 被冻结的安装不会移除一个包bun.lock不再继续 名称。 当构建中命名这样的软件包时, 删除node_modules并再次安装. -
编译此计算机的可执行文件 :
bun run compile要编译到另一个平台,请给出目标:
bun scripts/build.ts --compile --target bun-linux-x64文件进入
bin/启用--outdir <dir>选择另一个文件夹.目标 文件 大小( 大约) bun-windows-x64bin/repo-tools-windows-x64.exe108 个 MB bun-linux-x64bin/repo-tools-linux-x64103 MB 设备 bun-darwin-arm64bin/repo-tools-darwin-arm6484 MB 设备 -
运行可执行文件 :
bin/repo-tools-windows-x64.exe --version bin/repo-tools-windows-x64.exe map --root=path/to/repo -
测试可执行文件,而不仅仅是来源. 可执行文件是船舶的文物:
bun run smoke -- bin/repo-tools-windows-x64.exe
bun run build 写入第二个频道,节点捆绑 dist/cli.js (单位:千美元)node dist/cli.js --help, (中文(简体) ),
带有树保姆语法文件( e)dist/*.wasm旁边.
报告
repo-tools map 将报告写入 docs/architecture/ 树根下(--out=<dir>
命名另一个文件夹; --out=../reports 写出根外. 每个文件生成: do
不用手编辑它。 运行 repo-tools map 重新更新它。 每份Markdown报告开头
a "GENERTED FILE-不要用手来编辑"标语.
人口普查是一串出自git音轨的源文件(出自一出git工作树,一出被打出行走).
使用最多文件的语言决定 map 读取寄存器。 输入文件从不来
从输出文件夹中。 重复许可清单、重复基准和覆盖政策
包含 docs/architecture/,或者在配置给出的路径上. 一个已经拥有的仓库
必须设置自己的许可列表 map.duplicateAllowlist (旧密钥 depgraph.duplicateAllowlist
也读取)到该文件。 Mathts有283个允许列入清单的名字. 以默认路径
重复的门在这些名称上失败 .
字面相对 import() 是一个图边。 活猫 repo_map.py 没有记录。 均等
记录在 docs/parity-2.0.0.md 给出规则和判决.
| 文件 | 它的答案是什么 |
|---|---|
dependency-graph.json | 核心图:每个文件按区域分列,包括进口、出口和边缘;可达到性;周期计数;以及统计. |
file-inventory.json | 每个源文件在哪里,是什么? 包,面积和处理(可到达,构建条目,仅测试,孤儿,测试,工具,配置,实例,板凳),以及普查没有遵循的链接. |
duplicate-symbols.json | 哪些名称可以定义两个或多个文件 ? 对于TypeScript,也包含分类列表. |
unused-analysis.json | 哪些导出和文件不导入 ? |
dependency-layers.json | 子系统视图: src 按模块、切入点、地层和循环组件分列的文件. |
DEPENDENCY_GRAPH.md | 文件与模块如何互相依赖? 每个文件的进出口、依赖矩阵、循环组件(运行时间和只类型)、人鱼图和统计. |
dependency-graph.yaml | dependency-graph.json 作为YAML. |
dependency-summary.compact.json | 以短键对图作小总结,以给模型. |
FILE_INVENTORY.md, (中文(简体) ), duplicate-symbols.md, (中文(简体) ), unused-analysis.md | 上面三个JSON报告, 一个人读. |
TEST_COVERAGE.md | 哪些源文件进行测试负载(直接通过枪管,通过副作用导入,或 import()),而哪些文件没有测试到达? |
test-coverage.json | 相同的覆盖数据,有测试到源地图. |
package-export-surfaces.json | 每个软件包公开导出哪些名称 ? 不为C写作#. |
docs/parity-2.0.0.md 记录这些报告如何与 Python 工具进行比较,并与
分页 1.x.
repo-tools query --emit 在同一文件夹中再写两个文件。 它们也是产生的.
| 文件 | 它的答案是什么 |
|---|---|
dependency-reverse.json | 哪些文件导入每个文件? 图中的倒缘. |
node-safety.json | 哪些软件包是浏览器安全, 哪些文件导入一个 node: 内建,其中哪些文件使用 . 每个浏览器安全软件包的条目 ? |
对照图表检查文档
repo-tools check --docs=<dir> 读取每个 *.md 文件夹的文件。 支票读取
## Verification 表格。 每行 | claim | value | source | 名称 :
图表totalFiles, (中文(简体) ), orphanedFiles, (中文(简体) ), runtimeCircularDeps (见A/CN.9/WG.III/WP.III/WP.1号文件)。 值为
编号,文档中表示。 检查会再次构建图表, 因此无法隐藏 stale 报表
漂来漂去。 一个亲戚 --docs 路径与根相对.
## Verification
| Claim | Value | Source |
|---|---|---|
| totalFiles | 243 | file-inventory.json |
repo-tools check --docs=docs/architecture
# check passed: every claim matches the graph (1 claim in 1 document).
当一个值漂移时,退出代码是1,标准错误列出每个问题,每行一个:
OVERVIEW.md: totalFiles claims 243 but actual is 244
某文件的行号准确无误时,无需检查即可通过
<!-- repo-map:no-verification -->。标记必须在其线上单独站立:
句子,代码跨度或表格单元格不计数.
repo-tools map 在每次生成的报表上方写出此行。 每一个其他差距都是
失败。 缺少文件文件夹, 没有文件夹 *.md 文件,没有验证的文档
区域,和无行区域都是失败。 一个未知的索赔名称也是失败。 也一样
显示图建件不可靠. docs/design.md (第15节)规定了规则和
与 Python 工具的不同. docs/parity-check.md 记录与该工具的比较
11个仓库.
打开文件评论
repo-tools docs 读取 TypeScript, JavaScript, Python, C#, Rust, Go, Java, Kotlin, C, C++, PHP 和 Ruby 等带有 git 音轨的文件. 这个
查找每个函数,类,界面,类型别名和方法,以及每个函数的 doc 注释. 单位
C#和Rust也发现了每个结构,enum,特质和财产. 它不需要Python、.NET或Rust工具链
电脑.
repo-tools docs scan . # writes docs/code-docs/COVERAGE.md and coverage.json
repo-tools docs check . # the gate: exit 1 on a MUST issue
repo-tools docs stub . --path=src/api # a dry run: lists the stubs and writes nothing
repo-tools docs stub . --path=src/api --apply
repo-tools docs stub . --style=numpy --apply # Python: google (default), numpy, rest
C# 文件的分贝样式是 xmldoc (单位:千美元)/// <summary>),以及一个Rust文件 rustdoc (单位:千美元)/// 与
# Arguments 财务报告和审定财务报表 # Returns (第2款)。 Go 文件的根样式是 godoc页:1 // 线条
从名称开始。 Java 文件的根样式是 javadoc,以及一个 Kotlin 文件 kdoc两者
写入 @param 财务报告和审定财务报表 @return。 C 或 C++ 文件的根样式是 doxygen它写着 @brief 线条,
@param 财务报告和审定财务报表 @returnPHP 文件的根样式是: phpdoc (单位:千美元)@param $x) (中文(简体) ). 鲁比的花花样
文件为 yard (单位:千美元)# 线条 @param x 财务报告和审定财务报表 @return。 C 或 C++ 页眉 (.h, (中文(简体) ), .hpp, (中文(简体) ), .hh, (中文(简体) ), .hxx已经
导出符号。 源文件( R).c, (中文(简体) ), .cpp, (中文(简体) ), .cc, (中文(简体) ), .cxx)没有,因为头是合同.
规则是:
| 规则 | 级别 | 规则 |
|---|---|---|
| M1级 | 必须 | 导出符号有文件注释 。 测试文件被豁免 . |
| M2级 | 必须 | 博士评论有摘要一行. |
| M3级 | 必须 | Doc 注释中没有签名缺少的参数 . |
| M4级 | 必须 | 医生的评论为否 TODO: 标记. |
| M5型导弹 | 必须 | 文件使用一个 doc 方言: google, (中文(简体) ), numpy 或者说 rest 以蟒蛇盟誓, tsdoc 或者说 jsdoc 用于类型脚本, xmldoc 为C#, rustdoc 为罗斯, godoc 为去, javadoc 对于爪哇, kdoc 为克特林, doxygen 用于C和C++, phpdoc 用于 PHP, yard 为鲁比. |
| 2号 | 应该 | 摘要以全站为结束. |
| 第5条 | 应该 | 文件注释不重复签名所持有的类型 . |
| 6号 | 应该 | 散文采用简化后的技术英语(英语: repo-tools ste) (中文(简体) ). |
只有 MUST 的出站代码更改 check不解析的文件也是失败,
因为一个未知的文件不是一个干净的文件。 没有源文件的寄存器也失败 。 也一样
另一种语言(例如斯维夫特)的文件多于所有语言的文件的寄存器
上面一起来。 命令命名语言和出入口 1.
stub 是一个干燥,直到你通过 --apply。每个柱子都拿着标记 TODO:这样 check 失败
直到你用真正的道具取而代之 命令在更改后再次解析文件 .
一个不再分析的文件 保持不变。 命令跳过链接或链接的文件
解析出根外,并命名已跳过的文件.
--style=<style> 选择根的窗体 : tsdoc (违约)或 jsdoc 用于类型脚本和
Java 脚本, google (违约), numpy 或者说 rest 为彼菩萨. --style=auto 跟着一个方言
每个文件.
要满足拉动请求 而不是全部积压,给 check 更改的文件 :
git diff --name-only origin/main... > changed.txt
repo-tools docs check . --paths-from=changed.txt
A 类 .code-docs.json 选项。 每个条目都需要一个理由,输出
名称 :
{ "exclude": [ { "path": "assembly/", "reason": "AssemblyScript" } ] }
docs/design.md (第16节)给出规则,出站代码和与Python的区别
工具. docs/parity-docs.md 9个储存库记录了与该工具的比较.
查询图表
repo-tools query 回答来自 dependency-graph.json (和
package-export-surfaces.json 页:1 is-public) (中文(简体) ). 它不分析源文件, 因此运行
repo-tools map 先说 它读取了图中的每个区域,以及一个不是文件的路径
1. 实例使用副本 tests/fixtures/depgraph/mono-repo数字 :
repo-tools map
repo-tools query dependents packages/core/src/math.ts
# packages/core/src/index.ts
# packages/core/src/worker.ts
# packages/core/tests/math.test.ts
repo-tools query symbol-users add
# packages/cli/src/main.ts
# packages/core/src/index.ts
# packages/core/tests/math.test.ts
repo-tools query is-public packages/core add
# PUBLIC: add is exported from packages/core
repo-tools query is-public packages/core double
# INTERNAL: double is not in the public export surface of packages/core
repo-tools query cycles
# 0 simple cycles
repo-tools query cycles --components
# runtime: 0 cyclic components
# type-only: 0 cyclic components
浏览器安全命令只服务于TypeScript/JavaScript. 软件包是上方的文件夹
src/index.ts 文件( 编号. 为根文件。 每个软件包是
浏览器安全, 除非 --node-runtime=<pkg,...> 或配置密钥 query.nodeRuntimes 列出它.
这个 . 浏览器安全软件包的输入不得到达导入文件 node: 内置 :
repo-tools query node-safety
# packages/core: clean (the . entry reaches no node: code)
repo-tools query --check-browser-safety
# browser-safety check passed: the . entries of 1 browser-safe package reach no node: code.
repo-tools query --emit
# Written: docs/architecture/dependency-reverse.json (4 files)
# Written: docs/architecture/node-safety.json (0 node files, 0 leaks)
--check-browser-safety 漏出1号出口 查询其报告来源于 --out,则
配置密钥 query.out,则 map.out,则 docs/architecture运行
repo-tools query --help 每一个选项.
查找互相复制的函数
repo-tools clones 列出 TypeScript 或 JavaScript 寄存器的功能。 它发现
互相复制的函数。 命令只读取寄存器 。 它只写文件时
您指定了一个输出文件夹.
repo-tools clones . # prints the summary and writes no file
repo-tools clones . --src=src --out=reports/clones
repo-tools clones . --min-nodes=30 --near=0.7
一个函数是一个单位,当它有一个名称,它的正文至少有50个标签. 标签是一个节点 身体的形状。 姓名、文字、类型和评论没有详细内容,所以与其他姓名一起复制一份 火柴。 比赛。 命令发现了两种结果:
| 结果 | 含义 |
|---|---|
| 精确组 | 标签序列相同的单位. |
| 近对 | 两个单位共享足够运行 6个标签. |
--src=<path>... 指定要读取的文件夹。 默认 auto 读取文档 src 区域.
--out=<dir> 写入 inventory.jsonl (每个单位一行)和 clones.json (各集团和
将两个)输入文件夹。 将文件夹作为相对于根的路径。 运行 repo-tools clones --help 对于每个极限.
退出代码:运行完成后为0,即使没有找到副本. 当根没有源文件时 1 读取。 2在用法错误,配置文件错误或不是文件夹的根上.
结果是候选人名单。 在你改变任何事情之前,先看两具尸体.
该命令在重构过程中为一个寄存器的所有者服务. 得分排名为一跑的对分. 别 比较寄存器、设置或工具版本之间的计数或分数.
docs/design.md (第17节)给出了规则. docs/parity-clones.md 记录与
记忆审计的原型 记忆和深思熟虑的Mcp 记录显示,两个解析器
说吧 该记录未对其他储存库提出任何索赔.
开发
| 命令 | 任务 |
|---|---|
bun test | 运行单元测试. |
bun run typecheck | 运行 TypeScript 类型检查. |
bun run lint | 运行标识和格式检查. |
bun run build | 写入节点捆绑 dist/cli.js。 。 。 . |
bun run compile | 将此平台的编译可执行文件写入 bin/。 。 。 . |
bun run smoke -- <command...> | 运行烟雾测试 以一种方式运行工具. |
bun run privacy | 运行跟踪文件的隐私检查和任务信息. |
bun run hooks | 安装 commit-msg 钩子,运行每个消息的隐私检查. |
bun run audit:ledger | 还原每个固定 docs/fix-ledger-2.0.0.md 在抓取副本和检查 测试该修复失败. |
bun run compare:docs | 比较两个 docs scan 报告,写一行对等,或给每个未分解的文件一个原因. |
bun run check:design | 查找每个引用 docs/design.md 上面没有那个号码. |
文档
| 文档 | 目录 |
|---|---|
| 文件/建筑/OffioEW.md | 该项目、其衡量尺度和布局. |
| 文件/建筑/建筑/建筑 | 层层,关键决策,构建和测试策略. |
| 文献/建筑/COMPENTS.md | 每个模块都有其出口的实际签名. |
| 文件/档案/档案/档案 | 每个副指挥各跑一跑,分步走. |
| 文献/建筑/API.md | 命令,旗帜,配置密钥,退出代码和报告文件. |
| 文件/建筑/资料 | 每个源文件都有它的面积和处置. 生成. |
| 文献/建筑/技术、技术和科学司 | 源文件是测试导入的 。 生成. |
| 文献/建筑/建筑/建筑 | 谁进口谁. 生成. |
| 文件/建筑/未用分析 | 没有进口商的文件和导出 。 生成. |
| 文件/建筑/复制-符号.md | 多个文件定义的名称 。 生成. |
| 文件/设计 | 每个子命令的设计, 逐个节. |
运行 repo-tools check . --docs=docs/architecture 比较文档中的数字和代码.
设计
docs/design.md 描述模块,输出规则,配置,扩展合同,
隐私检查和核实。 它的"2.0引擎"一节描述 map。 。 。 .
许可证
麻省理工学院. 见 LICENSE。 。 。 .
第三方通知: NOTICE 持有薄荷/作曲许可证(MIT),其中部分内容来自:
repo-tools docs 来源.