A suite of tools for representing and solving electromagnetic simulation problems.
| pkgs | ||
| .editorconfig | ||
| .gitignore | ||
| .licensesnip | ||
| .pre-commit-config.yaml | ||
| .tombi.toml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| cog.toml | ||
| LICENSE | ||
| README.md | ||
| rustfmt.toml | ||
hopsim
A suite of tools for representing and solving electromagnetic simulation problems.
Policies
Developer Tooling
-
Testing (
cargo test): Run the test suite for the entire workspace.- Usage: Run
cargo test.
- Usage: Run
-
Micro-Benchmarking (
criterion): Microbenchmarking to track performance changes over time.- Usage: Run
cargo bench(criterionis an internal library).
- Usage: Run
-
License Headers (
licensesnip): Add license headers to all source files.- Installation:
cargo install licensesnip. - Usage: Use
licensesnipto add headers. Uselicensesnip removeto remove headers. - Alternative: Manually add license headers (
prekchecks this).
- Installation:
-
Pre-Commit Checks (
prek): Simple checks run before every commit.- Installation:
cargo install --locked prek. - Usage: Use
prek installto install hooks, runningprekbefore every commit in this localgitrepo (undo w/prek uninstall). - Alternative: Manually enforce all rules in
.pre-commit-config.yml(CI will runprek)
- Installation:
-
Commit Message Hygiene (
cocogitto): Enforce conventional commits, automatic versioning, and changelog management.- Installation:
cargo install cocogitto - Usage: Use
cog commitinstead ofgit commit. - Alternative: Manually write messages w/conventional commits syntax (
prekchecks this).
- Installation:
-
CI (not yet implemented): Enforces all of the above
Commit-Message Policy
The following types must be represented in cog.toml and .pre-commit-config.yaml:
- Standard:
fix,feat,refactor,perf,ux,revert. - Auxiliary:
deps,docs,test,lang. - DX:
style,build,tool,ci. - Workflow:
hotfix,dump,wip,experiment,chore. - Purpose:
init,merge.
The following scopes must be represented in .pre-commit-config.yaml:
- Interfaces:
cli. - Support:
emsim,miniexpr,minigrid. - Solvers:
fdtd-cpu,fdtd-cuda,fdtd-naive. - Sim Data:
simdata-hdf5.