docs: add whl_from_dir to dev guide docs (#3067)
Mentions the whl_from_dir repository rule in our dev guide.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8f985c5..e1bd11b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -234,11 +234,13 @@
## Binary artifacts
Checking in binary artifacts is not allowed. This is because they are extremely
-problematic to verify and ensure they're safe
+problematic to verify and ensure they're safe. This is true even in
+test contexts.
Examples include, but aren't limited to: prebuilt binaries, shared libraries,
zip files, or wheels.
+See the dev guide for utilities to help with testing.
(breaking-changes)=
## Breaking Changes
diff --git a/docs/devguide.md b/docs/devguide.md
index 345907b..43120bf 100644
--- a/docs/devguide.md
+++ b/docs/devguide.md
@@ -37,6 +37,12 @@
factored into a more generally reusable piece. Copying and pasting is fine. It's
more important for tests to balance understandability and maintainability.
+### Test utilities
+
+General code to support testing is in {gh-path}`tests/support`. It has a variety
+of functions, constants, rules etc, to make testing easier. Below are some
+common utilities that are frequently used.
+
### sh_py_run_test
The {gh-path}`sh_py_run_test <tests/support/sh_py_run_test.bzl` rule is a helper to
@@ -68,6 +74,12 @@
list, then modify the transition's logic to check the attribute and set
the flag value if the attribute is set.
+### whl_from_dir_repo
+
+The `whl_from_dir_repo` repository rule in {gh-path}`tests/support/whl_from_dir`
+takes a directory tree and turns it into a `.whl` file. This can be used to
+create arbitrary whl files to verify functionality.
+
### Integration tests
An integration test is one that runs a separate Bazel instance inside the test.