Skip to content

Commit 2c9ff22

Browse files
authored
Merge pull request #44 from rustcoreutils/docs
update CONTRIBUTING
2 parents 192a495 + a92be35 commit 2c9ff22

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

CONTRIBUTING.md

+15-8
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ There are several ways to contribute to posixutils-rs:
1414
3. Test coverage: Integration tests, positive and negative, are complete, pass 100%
1515
4. Code coverage: Automated code coverage data indicates 100%
1616
5. Translated: All strings are internationalized, including common OS errors for common error cases.
17-
6. Audited: An external party has reviewed and tested for POSIX compliance.
17+
6. Audited: An external party has reviewed and tested for correctness,
18+
POSIX compliance, security, races and similar issues.
1819

1920
### Coding considerations
2021

@@ -31,18 +32,24 @@ There are several ways to contribute to posixutils-rs:
3132
2. Ideal goal: **Each utility should look like a standard Rust CLI program.**
3233
Small, lightweight utility with command line processing,
3334
core algorithm, and zero external crate dependencies.
34-
3. "only std" When an external crate is required, avoid mega-crates. Prefer std-only, or, tiny
35-
crates such as `atty` that perform a single, lightweight function.
35+
3. "only std" When an external crate is required, avoid mega-crates. Prefer
36+
std-only, or, tiny crates such as `atty` that perform a single,
37+
lightweight function.
3638
4. Correctness, readability, performance, in that order.
37-
Code should be readable by unfamiliar developers.
38-
Avoid dense, uncommented code.
39+
Code should be readable by unfamiliar developers. Avoid dense,
40+
uncommented code.
3941

40-
### Testing and POSIX compliance goals
42+
### Testing, POSIX compliance and programmaticgoals
4143

4244
* All utilities should have tests.
4345
* Only "quick" tests should be run automatically in `cargo test`
44-
* Goal #1: POSIX compliance
45-
* Goal #2: Support the most popular Linux/BSD extesnsions
46+
* Longer tests, or tests requiring root access, should be triggered
47+
via special environment variables.
48+
* POSIX compliance
49+
* Support the most widely used GNU/BSD extensions
50+
* If a system has an OS-specific feature that _must_ be
51+
exposed through a given utility, do so.
52+
* Race-free userland. `walker` crate should be able to help.
4653

4754
### Testing and Bug Reporting
4855

0 commit comments

Comments
 (0)