Contributing
NecrassRs welcomes bug reports, design discussions, documentation improvements, and code contributions. Before changing the repository, read the relevant issue, architecture, and AI usage policy. Use an issue’s specified branch when it has one, and keep unrelated changes in separate commits.
Validate changes
Section titled “Validate changes”Start with the smallest check that exercises the changed behavior. Rust changes must pass the workspace baseline before review:
cargo fmt --all -- --checkcargo test --workspace --lockedcargo clippy --workspace --all-targets --locked -- -D warningsRun the documentation checks after changing this website:
cd docspnpm install --frozen-lockfilepnpm lintpnpm fmt:checkpnpm checkpnpm buildBug fixes and nontrivial behavior changes need a runnable regression check. Generator changes must also compile a generated consumer. Report checks that could not run and do not replace a failing assertion with an incorrect expectation.
Releases and versioning
Section titled “Releases and versioning”The eight public Reed and NecrassRs packages share one workspace version and release together. Contributors normally do not edit the workspace version, package dependency requirements, changelog, release workflow, or release-plz configuration. Include those files only when an issue explicitly changes the release process.
After a contribution reaches main, release-plz prepares a separate release
pull request. Maintainers review and merge that pull request to publish the
coordinated release. An ordinary contribution pull request does not publish a
package.
Describe public API changes and compatibility risks clearly in the contribution pull request. Do not rely on automated SemVer checks to communicate a breaking change. When a change affects packaged files or manifest metadata, inspect the affected archive before review:
cargo package --list -p <package>cargo package -p <package> --locked