Skip to content

Commit fa1868a

Browse files
committed
[skip ci] doc: update generated wiki pages (wiki/Interface.md,wiki/Linter.md,wiki/[Linting Rule] Absolute File Paths.md,wiki/Analyzer.md)
1 parent 23aac74 commit fa1868a

4 files changed

Lines changed: 75 additions & 75 deletions

File tree

wiki/Analyzer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
_This document was generated from '[src/documentation/wiki-analyzer.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/wiki-analyzer.ts)' on 2026-07-06, 06:59:05 UTC presenting an overview of flowR's analyzer (v2.10.10, using R v4.6.0). Please do not edit this file/wiki page directly._
1+
_This document was generated from '[src/documentation/wiki-analyzer.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/wiki-analyzer.ts)' on 2026-07-06, 07:19:33 UTC presenting an overview of flowR's analyzer (v2.10.10, using R v4.5.0). Please do not edit this file/wiki page directly._
22

33
- [Overview](#Overview)
44
- [Overview of the Analyzer](#Overview_of_the_Analyzer)
@@ -284,7 +284,7 @@ Currently, flowR supports the following plugin types built-in:
284284
| <code>versions:description</code> | <a href="https://github.com/flowr-analysis/flowr/tree/main/src/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.ts#L15"><code><span title="This plugin extracts package versions from R DESCRIPTION files. It looks at the Depends and Imports fields to find package names and their version constraints.">FlowrAnalyzerPackageVersionsDescriptionFilePlugin</span></code></a> | package-versions | This plugin extracts package versions from R `DESCRIPTION` files. It looks at the `Depends` and `Imports` fields to find package names and their version constraints. |
285285
| <code>versions:pkgdb</code> | <a href="https://github.com/flowr-analysis/flowr/tree/main/src/project/plugins/package-version-plugins/flowr-analyzer-package-versions-pkgdb-plugin.ts#L53"><code><span title="Resolves library(pkg) / use(pkg, fn) from precomputed flowr-pkgdb databases: the one bundled with flowR plus any extra sources (constructor args or $FLOWR_PKGDB). Extra sources are consulted first, so they override the bundle; packages only in the bundle still resolve. Everything is loaded lazily on the first miss (never touched if a project uses no external packages). On by default; opt out via u...">FlowrAnalyzerPackageVersionsPkgDbPlugin</span></code></a> | package-versions | Resolves `library(pkg)` / `use(pkg, fn)` from precomputed `flowr-pkgdb` databases: the one bundled with flowR plus any extra sources (constructor args or `$FLOWR_PKGDB`). Extra sources are consulted first, so they override the bundle; packages only in the bundle still resolve. Everything is loaded lazily on the first miss (never touched if a project uses no external packages). On by default; opt out via `unregisterPlugins(PkgDbPluginName)` or `$FLOWR_DISABLE_DEFAULT_PKGDB`. A source may be an `http(s)` URL to a downloadable summary; call <code>preload</code> once at the analyzer boundary to fetch it, so resolution falls through to it for packages not in the bundle. |
286286
| <code>versions:renv</code> | <a href="https://github.com/flowr-analysis/flowr/tree/main/src/project/plugins/package-version-plugins/flowr-analyzer-package-versions-lockfile-plugin.ts#L22"><code><span title="Reads package versions from an renv.lock (JSON). renv pins are exact.">FlowrAnalyzerPackageVersionsRenvPlugin</span></code></a> | package-versions | Reads package versions from an `renv.lock` (JSON). renv pins are exact. |
287-
| <code>versions:rv</code> | <a href="https://github.com/flowr-analysis/flowr/tree/main/src/project/plugins/package-version-plugins/flowr-analyzer-package-versions-lockfile-plugin.ts#L48"><code><span title="Reads package versions from an rv.lock (the resolved rv project lockfile, TOML).">FlowrAnalyzerPackageVersionsRvPlugin</span></code></a> | package-versions | Reads package versions from an `rv.lock` (the resolved rv project lockfile, TOML). |
287+
| <code>versions:rv</code> | <a href="https://github.com/flowr-analysis/flowr/tree/main/src/project/plugins/package-version-plugins/flowr-analyzer-package-versions-lockfile-plugin.ts#L46"><code><span title="Reads package versions from an rv.lock (the resolved rv project lockfile, TOML).">FlowrAnalyzerPackageVersionsRvPlugin</span></code></a> | package-versions | Reads package versions from an `rv.lock` (the resolved rv project lockfile, TOML). |
288288

289289

290290
<h3 id="Plugin_Types">Plugin Types</h3>

wiki/Interface.md

Lines changed: 32 additions & 32 deletions
Large diffs are not rendered by default.

wiki/Linter.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
_This document was generated from '[src/documentation/wiki-linter.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/wiki-linter.ts)' on 2026-07-06, 06:31:34 UTC presenting an overview of flowR's linter (v2.10.10, using R v4.6.0). Please do not edit this file/wiki page directly._
1+
_This document was generated from '[src/documentation/wiki-linter.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/wiki-linter.ts)' on 2026-07-06, 07:19:32 UTC presenting an overview of flowR's linter (v2.10.10, using R v4.5.0). Please do not edit this file/wiki page directly._
22
This page describes the flowR linter, which is a tool that utilizes flowR's dataflow analysis to find common issues in R scripts. The linter can currently be used through the linter [query](https://github.com/flowr-analysis/flowr/wiki/query-api).
33
Some rules also draw on the [package database](https://github.com/flowr-analysis/flowr/wiki/package-database).
44
For example:
@@ -16,15 +16,15 @@ R> :query @linter "read.csv(\"/root/x.txt\")"
1616

1717

1818
```text
19-
Query: linter (4 ms)
19+
Query: linter (3 ms)
2020
╰ Deprecated Functions (deprecated-functions):
2121
╰ Metadata: totalCalls: 0, totalFunctionDefinitions: 0, searchTimeMs: 1, processTimeMs: 0
2222
╰ File Path Validity (file-path-validity):
2323
╰ certain:
2424
╰ Path `/root/x.txt` at 1.1-23
25-
╰ Metadata: totalReads: 1, totalUnknown: 0, totalWritesBeforeAlways: 0, totalValid: 0, searchTimeMs: 1, processTimeMs: 0
25+
╰ Metadata: totalReads: 1, totalUnknown: 0, totalWritesBeforeAlways: 0, totalValid: 0, searchTimeMs: 0, processTimeMs: 1
2626
╰ Seeded Randomness (seeded-randomness):
27-
╰ Metadata: consumerCalls: 0, callsWithFunctionProducers: 0, callsWithAssignmentProducers: 0, callsWithNonConstantProducers: 0, callsWithOtherBranchProducers: 0, searchTimeMs: 1, processTimeMs: 0
27+
╰ Metadata: consumerCalls: 0, callsWithFunctionProducers: 0, callsWithAssignmentProducers: 0, callsWithNonConstantProducers: 0, callsWithOtherBranchProducers: 0, searchTimeMs: 0, processTimeMs: 0
2828
╰ Absolute Paths (absolute-file-paths):
2929
╰ certain:
3030
╰ Path `/root/x.txt` at 1.1-23
@@ -59,7 +59,7 @@ Query: linter (4 ms)
5959
╰ Metadata: totalChecked: 0, searchTimeMs: 0, processTimeMs: 0
6060
╰ Undefined Symbol (undefined-symbol):
6161
╰ Metadata: totalCalls: 1, searchTimeMs: 0, processTimeMs: 0
62-
All queries together required ≈4 ms (1ms accuracy, total 6 ms)
62+
All queries together required ≈3 ms (1ms accuracy, total 3 ms)
6363
```
6464

6565

@@ -81,35 +81,35 @@ Formatted more nicely, this returns:
8181

8282
_Results (prettified and summarized):_
8383

84-
Query: **linter** (43 ms)\
84+
Query: **linter** (5 ms)\
8585
&nbsp;&nbsp;&nbsp;**Deprecated Functions** (deprecated-functions):\
86-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalCalls: 0, totalFunctionDefinitions: 0, searchTimeMs: 8, processTimeMs: 0</code>\
86+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalCalls: 0, totalFunctionDefinitions: 0, searchTimeMs: 1, processTimeMs: 0</code>\
8787
&nbsp;&nbsp;&nbsp;**File Path Validity** (file-path-validity):\
8888
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;╰ certain:\
8989
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;╰ Path `/root/x.txt` at 1.1-23\
90-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalReads: 1, totalUnknown: 0, totalWritesBeforeAlways: 0, totalValid: 0, searchTimeMs: 26, processTimeMs: 1</code>\
90+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalReads: 1, totalUnknown: 0, totalWritesBeforeAlways: 0, totalValid: 0, searchTimeMs: 2, processTimeMs: 0</code>\
9191
&nbsp;&nbsp;&nbsp;**Seeded Randomness** (seeded-randomness):\
9292
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>consumerCalls: 0, callsWithFunctionProducers: 0, callsWithAssignmentProducers: 0, callsWithNonConstantProducers: 0, callsWithOtherBranchProducers: 0, searchTimeMs: 0, processTimeMs: 0</code>\
9393
&nbsp;&nbsp;&nbsp;**Absolute Paths** (absolute-file-paths):\
9494
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;╰ certain:\
9595
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;╰ Path `/root/x.txt` at 1.1-23\
96-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalConsidered: 1, totalUnknown: 0, searchTimeMs: 1, processTimeMs: 0</code>\
96+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalConsidered: 1, totalUnknown: 0, searchTimeMs: 0, processTimeMs: 1</code>\
9797
&nbsp;&nbsp;&nbsp;**Unused Definitions** (unused-definitions):\
9898
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalConsidered: 0, searchTimeMs: 0, processTimeMs: 0</code>\
9999
&nbsp;&nbsp;&nbsp;**Naming Convention** (naming-convention):\
100100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>numMatches: 0, numBreak: 0, searchTimeMs: 0, processTimeMs: 0</code>\
101101
&nbsp;&nbsp;&nbsp;**Network Functions** (network-functions):\
102-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalCalls: 0, totalFunctionDefinitions: 0, searchTimeMs: 1, processTimeMs: 0</code>\
102+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalCalls: 0, totalFunctionDefinitions: 0, searchTimeMs: 0, processTimeMs: 0</code>\
103103
&nbsp;&nbsp;&nbsp;**Dataframe Access Validation** (dataframe-access-validation):\
104-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>numOperations: 0, numAccesses: 0, totalAccessed: 0, searchTimeMs: 0, processTimeMs: 4</code>\
104+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>numOperations: 0, numAccesses: 0, totalAccessed: 0, searchTimeMs: 0, processTimeMs: 1</code>\
105105
&nbsp;&nbsp;&nbsp;**Dead Code** (dead-code):\
106-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>searchTimeMs: 1, processTimeMs: 0</code>\
106+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>searchTimeMs: 0, processTimeMs: 0</code>\
107107
&nbsp;&nbsp;&nbsp;**Useless Loops** (useless-loop):\
108108
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>numOfUselessLoops: 0, searchTimeMs: 0, processTimeMs: 0</code>\
109109
&nbsp;&nbsp;&nbsp;**Problematic inputs** (problematic-inputs):\
110110
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>searchTimeMs: 0, processTimeMs: 0</code>\
111111
&nbsp;&nbsp;&nbsp;**Stop without call.=False argument** (stop-call):\
112-
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>consideredNodes: 0, searchTimeMs: 0, processTimeMs: 1</code>\
112+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>consideredNodes: 0, searchTimeMs: 0, processTimeMs: 0</code>\
113113
&nbsp;&nbsp;&nbsp;**Roxygen Arguments** (roxygen-arguments):\
114114
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>searchTimeMs: 0, processTimeMs: 0</code>\
115115
&nbsp;&nbsp;&nbsp;**Software Has License** (software-has-license):\
@@ -124,11 +124,11 @@ Query: **linter** (43 ms)\
124124
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalChecked: 0, searchTimeMs: 0, processTimeMs: 0</code>\
125125
&nbsp;&nbsp;&nbsp;**Undefined Symbol** (undefined-symbol):\
126126
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Metadata_: <code>totalCalls: 1, searchTimeMs: 0, processTimeMs: 0</code>\
127-
_All queries together required ≈43 ms (1ms accuracy, total 45 ms)_
127+
_All queries together required ≈5 ms (1ms accuracy, total 5 ms)_
128128

129129
<details> <summary style="color:gray">Show Detailed Results as Json</summary>
130130

131-
The analysis required _45.4 ms_ (including parsing and normalization and the query) within the generation environment.
131+
The analysis required _5.3 ms_ (including parsing and normalization and the query) within the generation environment.
132132

133133
In general, the JSON contains the Ids of the nodes in question as they are present in the normalized AST or the dataflow graph of flowR.
134134
Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Interface) wiki page for more information on how to get those.
@@ -145,7 +145,7 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
145145
".meta": {
146146
"totalCalls": 0,
147147
"totalFunctionDefinitions": 0,
148-
"searchTimeMs": 8,
148+
"searchTimeMs": 1,
149149
"processTimeMs": 0
150150
}
151151
},
@@ -168,8 +168,8 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
168168
"totalUnknown": 0,
169169
"totalWritesBeforeAlways": 0,
170170
"totalValid": 0,
171-
"searchTimeMs": 26,
172-
"processTimeMs": 1
171+
"searchTimeMs": 2,
172+
"processTimeMs": 0
173173
}
174174
},
175175
"seeded-randomness": {
@@ -200,8 +200,8 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
200200
".meta": {
201201
"totalConsidered": 1,
202202
"totalUnknown": 0,
203-
"searchTimeMs": 1,
204-
"processTimeMs": 0
203+
"searchTimeMs": 0,
204+
"processTimeMs": 1
205205
}
206206
},
207207
"unused-definitions": {
@@ -226,7 +226,7 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
226226
".meta": {
227227
"totalCalls": 0,
228228
"totalFunctionDefinitions": 0,
229-
"searchTimeMs": 1,
229+
"searchTimeMs": 0,
230230
"processTimeMs": 0
231231
}
232232
},
@@ -237,13 +237,13 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
237237
"numAccesses": 0,
238238
"totalAccessed": 0,
239239
"searchTimeMs": 0,
240-
"processTimeMs": 4
240+
"processTimeMs": 1
241241
}
242242
},
243243
"dead-code": {
244244
"results": [],
245245
".meta": {
246-
"searchTimeMs": 1,
246+
"searchTimeMs": 0,
247247
"processTimeMs": 0
248248
}
249249
},
@@ -267,7 +267,7 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
267267
".meta": {
268268
"consideredNodes": 0,
269269
"searchTimeMs": 0,
270-
"processTimeMs": 1
270+
"processTimeMs": 0
271271
}
272272
},
273273
"roxygen-arguments": {
@@ -333,11 +333,11 @@ Please consult the [Interface](https://github.com/flowr-analysis/flowr/wiki/Inte
333333
}
334334
},
335335
".meta": {
336-
"timing": 43
336+
"timing": 5
337337
}
338338
},
339339
".meta": {
340-
"timing": 43
340+
"timing": 5
341341
}
342342
}
343343
```
@@ -368,7 +368,7 @@ The following linting rules are available:
368368

369369

370370

371-
**[Absolute Paths](https://github.com/flowr-analysis/flowr/wiki/%5BLinting%20Rule%5D%20Absolute%20File%20Paths):** Checks whether file paths are absolute. [see <a href="https://github.com/flowr-analysis/flowr/tree/main/src/linter/rules/absolute-path.ts#L134">src/linter/rules/absolute-path.ts</a>]\
371+
**[Absolute Paths](https://github.com/flowr-analysis/flowr/wiki/%5BLinting%20Rule%5D%20Absolute%20File%20Paths):** Checks whether file paths are absolute. [see <a href="https://github.com/flowr-analysis/flowr/tree/main/src/linter/rules/absolute-path.ts#L135">src/linter/rules/absolute-path.ts</a>]\
372372
<span title="This rule is used to detect issues that do not directly affect the semantics of the code, but are still considered bad practice."><a href='#smell'>![smell](https://img.shields.io/badge/smell-yellow) </a></span> <span title="This rule may provide quickfixes to automatically fix the issues it detects."><a href='#quickfix'>![quickfix](https://img.shields.io/badge/quickfix-lightgray) </a></span> <span title="This rule is used to detect issues that are related to the reproducibility of the code. For example, missing or incorrect random seeds, or missing data."><a href='#reproducibility'>![reproducibility](https://img.shields.io/badge/reproducibility-teal) </a></span> <span title="This rule is used to detect issues that are related to the portability of the code. For example, platform-specific code, or code that relies on specific R versions or packages."><a href='#robustness'>![robustness](https://img.shields.io/badge/robustness-teal) </a></span>
373373

374374
**[Dataframe Access Validation](https://github.com/flowr-analysis/flowr/wiki/%5BLinting%20Rule%5D%20Dataframe%20Access%20Validation):** Validates the existence of accessed columns and rows of dataframes. [see <a href="https://github.com/flowr-analysis/flowr/tree/main/src/linter/rules/dataframe-access-validation.ts#L56">src/linter/rules/dataframe-access-validation.ts</a>]\

0 commit comments

Comments
 (0)