11# Dev Guide
22
3- This document covers tips and guidance for working on the rules_python code
4- base. A primary audience for it is first time contributors.
3+ This document covers tips and guidance for working on the ` rules_python ` code
4+ base. Its primary audience is first- time contributors.
55
66## Running tests
77
@@ -12,8 +12,8 @@ bazel test //...
1212```
1313
1414And it will run all the tests it can find. The first time you do this, it will
15- probably take long time because various dependencies will need to be downloaded
16- and setup . Subsequent runs will be faster, but there are many tests, and some of
15+ probably take a long time because various dependencies will need to be downloaded
16+ and set up . Subsequent runs will be faster, but there are many tests, and some of
1717them are slow. If you're working on a particular area of code, you can run just
1818the tests in those directories instead, which can speed up your edit-run cycle.
1919
@@ -22,14 +22,14 @@ the tests in those directories instead, which can speed up your edit-run cycle.
2222Most code should have tests of some sort. This helps us have confidence that
2323refactors didn't break anything and that releases won't have regressions.
2424
25- We don't require 100% test coverage, testing certain Bazel functionality is
25+ We don't require 100% test coverage; testing certain Bazel functionality is
2626difficult, and some edge cases are simply too hard to test or not worth the
2727extra complexity. We try to judiciously decide when not having tests is a good
2828idea.
2929
3030Tests go under ` tests/ ` . They are loosely organized into directories for the
3131particular subsystem or functionality they are testing. If an existing directory
32- doesn't seem like a good match for the functionality being testing , then it's
32+ doesn't seem like a good match for the functionality being tested , then it's
3333fine to create a new directory.
3434
3535Re-usable test helpers and support code go in ` tests/support ` . Tests don't need
@@ -72,9 +72,9 @@ the rule. To have it support setting a new flag:
7272
7373An integration test is one that runs a separate Bazel instance inside the test.
7474These tests are discouraged unless absolutely necessary because they are slow,
75- require much memory and CPU, and are generally harder to debug. Integration
76- tests are reserved for things that simple can't be tested otherwise, or for
77- simple high level verification tests.
75+ require a lot of memory and CPU, and are generally harder to debug. Integration
76+ tests are reserved for things that simply can't be tested otherwise, or for
77+ simple high- level verification tests.
7878
7979Integration tests live in ` tests/integration ` . When possible, add to an existing
8080integration test.
@@ -98,9 +98,9 @@ integration test.
9898
9999## Updating tool dependencies
100100
101- It's suggested to routinely update the tool versions within our repo - some of the
102- tools are using requirement files compiled by ` uv ` and others use other means. In order
103- to have everything self-documented, we have a special target -
104- ` //private:requirements.update ` , which uses ` rules_multirun ` to run in sequence all
105- of the requirement updating scripts in one go. This can be done once per release as
101+ It's suggested to routinely update the tool versions within our repo. Some of the
102+ tools are using requirement files compiled by ` uv ` , and others use other means. In order
103+ to have everything self-documented, we have a special target,
104+ ` //private:requirements.update ` , which uses ` rules_multirun ` to run all
105+ of the requirement- updating scripts in sequence in one go. This can be done once per release as
106106we prepare for releases.
0 commit comments