deno/tools
Luca Casonato 8d82ba7299
build: require safety comments on unsafe code (#13870)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2022-06-26 00:13:24 +02:00
..
bench chore: use local copy of std in tools/bench/ scripts (#14251) 2022-04-11 11:46:23 +02:00
release fix(scripts/release): add unstable flag when running ./tools/format.js (#14743) 2022-05-27 12:14:37 -04:00
wpt fix(ext/fetch): add accept-language default header to fetch (#14882) 2022-06-19 23:33:24 +02:00
build_benchmark_jsons.js chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
cut_a_release.md chore: improve release docs (#14506) 2022-05-06 15:09:33 -04:00
deno.lock.json chore: use lock file for tooling scripts (#14253) 2022-04-13 18:51:16 +02:00
flamebench.js refactor: use spawn API across codebase (#14414) 2022-05-18 22:00:11 +02:00
format.js refactor: use spawn API across codebase (#14414) 2022-05-18 22:00:11 +02:00
lint.js build: require safety comments on unsafe code (#13870) 2022-06-26 00:13:24 +02:00
README.md chore: re-enable wgpu_sync (#13453) 2022-01-24 23:47:05 +01:00
update_typescript.md fix(cli): add dom.extras lib (#14430) 2022-04-29 13:47:58 +10:00
upload_wptfyi.js chore(ci): update dependency for upload_wptfyi (#12587) 2021-10-29 16:29:37 +11:00
util.js refactor: use spawn API across codebase (#14414) 2022-05-18 22:00:11 +02:00
wgpu_sync.js refactor: use spawn API across codebase (#14414) 2022-05-18 22:00:11 +02:00
wpt.ts refactor: use spawn API across codebase (#14414) 2022-05-18 22:00:11 +02:00

Tools

Documentation for various tooling in support of Deno development.

format.js

This script will format the code (currently using dprint, rustfmt). It is a prerequisite to run this before code check in.

To run formatting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/format.js

lint.js

This script will lint the code base (currently using dlint, clippy). It is a prerequisite to run this before code check in.

To run linting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/lint.js

Tip: You can also use cargo to run the current or pending build of the deno executable

cargo run -- run --allow-read --allow-write --allow-run --unstable ./tools/<script>

flamebench.js

flamebench.js facilitates profiling and generating flamegraphs from benchmarks.

General usage:

 ./tools/flamebench.js
flamebench <bench_name> [bench_filter]

Available benches:
op_baseline
ser
de

To profile the op_baseline bench, run ./tools/flamebench.js op_baseline, this will run all 3 benches in `op_baseline.

Often when profiling/optimizing, you'll want to focus on a specific sub-bench, flamebench supports a bench/test filter arg like the regular cargo commands. So you can simply run ./tools/flamebench.js op_baseline bench_op_async or ./tools/flamebench.js op_baseline bench_op_nop to profile specific benches.

Tip: the [bench_filter] argument doesn't have to be an exact bench name, you can use a shorthand or a partial match to profile a group of benches, e.g: ./tools/flamebench.js de v8

wgpu_sync.js

wgpu_sync.js streamlines updating deno_webgpu from gfx-rs/wgpu.

It essentially vendors the deno_webgpu tree with a few minor patches applied on top, somewhat similar to git subtree.

  1. Update COMMIT or V_WGPU in ./tools/wgpu_sync.js
  2. Run ./tools/wgpu_sync.js
  3. Double check changes, possibly patch
  4. Commit & send a PR with the updates