Thank you for your interest in contributing to nwipe.
Nwipe is a widely used disk wiping tool that prioritizes reliability, correctness and portability.
Because the software is used in system administration and data sanitization environments, stability and careful review are essential.
This document describes the preferred workflow for contributing changes.
To build nwipe for development:
./configure --prefix=/usr CFLAGS='-O0 -g -Wall -Wextra'
make format
makeExplanation of flags:
-
-O0 -g
Disables optimisation and includes debug symbols.
This is important when debugging with tools such asgdb -
-Wall -Wextra
Enables most useful compiler warnings.
Please ensure new code compiles without warnings.
The project uses clang-format.
The style is defined in:
.clang-format
Before submitting a pull request run:
make formatThis ensures consistent formatting across the codebase.
If clang-format is missing, install it via your distribution package manager.
To build a normal optimized binary:
./configure --prefix=/usr
makeTo keep review manageable, please follow these guidelines:
Large changes to core parts of the codebase can be difficult to review and test.
If you plan a large feature or architectural change, please open an issue first to discuss the idea.
Before submitting a PR:
-
build the project
-
test the functionality on real or virtual devices where possible
-
ensure no compiler warnings are introduced
Testing is often more important as writing the code.
A good pull request description should explain:
-
what the change does
-
why it is needed
-
how it was tested
For algorithmic or architectural changes, additional documentation is appreciated.
Maintainers review contributions in their spare time.
Submitting many large PRs in a short time can create unnecessary review pressure.
AI tools (such as ChatGPT, Copilot, or similar systems) may be used to assist development.
However, contributors remain fully responsible for their submissions.
Requirements:
-
Contributors must fully understand all submitted code.
-
All code must be tested before submission.
-
Contributors remain responsible for correctness, security and quality.
AI assistance is treated the same as any other external source of code.
If AI tools were used in generating part of a contribution, please disclose this in the pull request description.
This is purely informational and helps reviewers set expectations for review and testing.
Example:
AI assistance: yes
Used for: initial draft of documentation / hrefactoring suggestion
Manually reviewed and tested by contributor
Disclosure is encouraged regardless of contribution size.
This policy is not intended to judge contributors, but to improve transparency and review efficiency.
Contributions should aim to maintain the project's long-standing reputation for stability.
Please ensure:
-
no compiler warnings
-
readable code
-
minimal unnecessary complexity
-
portability across supported platforms
When in doubt, prioritize clarity and maintainability over cleverness.
Nwipe is a specialized tool used in data sanitization workflows.
Features should align with the project's goals:
-
reliable disk wiping
-
predictable behavior
-
stable releases
Changes that significantly alter behavior may require extended discussion before merging.
All contributions code, testing, documentation, or discussion are appreciated.
Maintainers and contributors work together to keep nwipe stable, reliable, and useful for system administrators worldwide.