# Contributing * If you'd like to add something then raise an issue, fork the repo and submit a PR ## Local Tools ## justfile The [just](https://github.com/casey/just) command line runner is very useful for running a series of build steps/commands locally. In particular I like to use it to run a debug build (so the compiler can tell me about overflow errors and things), run all tests, generate documentation and compile the release library - all from typing `just b` in a terminal. ## Diagrams All diagrams should be generated from code or from screengrabs of `examples` When using code based diagrams puml (plantUML) is the preferred tool. To generate a diagram setup puml and use `just` with `just diagram [diagram_name]` to create the `.png`, or to generate all of them `just diagrams`. ## rustfmt.toml Controls formatting settings. I have a prefernce for using tabs simply because in shared projects individuals have their own preference for indentation depth and so automatic tab resizing can make a code base gentler on the eyes. ## clippy.toml Currently commented out, as I use clippy more I suspect to customise what it does. ## cliff.toml [git-cliff](https://github.com/orhun/git-cliff) is a very cool changelog generator which uses the style of [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). To generate a changelog based on what the next tag will be you can run `git cliff --tag v1.0.0 --output CHANGELOG.md` ## flamegraph on windows ```sh # https://crates.io/crates/blondie cargo install blondie # set env:DTRACE to location and exe blondie_trace.exe cargo install flmaegraph # build the app cargo build --profile=flamegraph cargo build cargo build --release # then must use admin terminal!!! $env:BEVY_ASSET_ROOT="C:\source\rust\bevy_flowfield_tiles_plugin" cargo flamegraph --package=bevy_flowfield_tiles_plugin --profile=flamegraph # release mode without stripping cargo flamegraph --package=bevy_flowfield_tiles_plugin --dev # dev mode ```