DunneFlow · Tutorial
A mixed-language repository without Node
Map the Python half of a Python and TypeScript repository on a machine with no Node.js, and see how the map records what it declined.
DunneFlow reads TypeScript with TypeScript's own compiler, which needs Node.js 20 or newer. If your repository mixes Python and TypeScript and the machine has no Node, you can still map everything else. In this tutorial you meet the refusal, decline TypeScript explicitly, and see where the map records that you did.
You'll need#
- DunneFlow, from source or the application.
- A repository containing both Python and TypeScript, for example
~/code/some-project. - A machine without Node.js 20 or newer (or you can follow along just to see the flag).
Steps#
-
Analyse as usual.
uv run dunneflow analyze ~/code/some-project --name some-projectBefore reading anything, DunneFlow refuses:
typescript needs `node` ≥ 20.0.0 and nothing answers `node --version` on this machine. Install it (brew install node, or nodejs.org), or run again with `--without typescript` and the map will say those files were declined.Nothing has been written, so there is no half-made map to clean up.
-
Decline TypeScript.
uv run dunneflow analyze ~/code/some-project --name some-project --without typescript -
Read the summary. The run ends with a line like:
declined by you: 11 typescript — this build has a reader for that language; drop --without to read themDeclined by you is a different fact from no reader claims these files, with the opposite remedy, so it has its own line.
-
Open the map and check About this map.
uv run dunneflow serve output/some-projectClick the source directory button in the top bar to open About this map. The It was told row records that TypeScript was declined. A map made this way and a map of a program with no TypeScript would otherwise look identical, and this row is how you tell them apart.
-
Know the limits of the flag.
--withoutis repeatable (for example--without typescript --without cpp). It is refused for a language the build has no reader for, and refused if it would decline every language, since that would be a map with no code in it. -
Read the whole tree later. Install Node.js 20 or newer and analyse again without
--without. Unchanged Python files are cached, so only the TypeScript is new work.
What you've learned#
- Only TypeScript needs a toolchain, and DunneFlow checks for it before reading anything.
--without typescriptproduces a map of everything else, and says so in the run summary and in About this map.- A declined language is never silent.
Next#
- Gate CI with dunneflow check, where a runner without Node is common.
- Reference: Installing.
Something unclear or out of date? Tell us.