You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The easiest way for you to contribute right now is to use `fern` in your application, and see where it's lacking. The current library should have a solid base, but not many log adapters or niche features.
6
+
There's one thing I need right now, more than anything else: input on what fern does well, and what it should keep
7
+
doing well. See [Project Direction](#project-direction).
8
8
9
-
If you have a use case `fern` does not cover, filing an issue will be immensely useful to me, to anyone wanting to contribute to the project, and (hopefully) to you once the feature is implemented!
9
+
Besides that, I'm open to PRs! I'll probably review promptly, and I'm always open to being nudged if I don't.
10
10
11
-
If you've just filed an issue, or you want to approach one of our [existing ones](https://github.com/daboross/fern/issues), mentoring is available! Tag me with @daboross on an issue, or send me an email at daboross @ daboross.net, and I'll be available to help.
11
+
For small PRs, I'll mark anything I need changed in a review, and work with you on that.
12
12
13
-
As a note, all contributions are expected to follow [the Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html).
13
+
For larger PRs, I reserve the right to pull in your commits as they are, then fix things I want to be different myself.
14
+
In a workplace, I'd try to never do this - but this is a hobby project for me, and I'd rather be overly particular about
15
+
fern's implementation than be reasonable.
14
16
15
-
#### `fern` project structure
17
+
This is a change from my previous policy.
18
+
19
+
## Code of Conduct.
20
+
21
+
All interactions are expected to follow [the Rust Code of Conduct](https://www.rust-lang.org/en-US/conduct.html).
22
+
23
+
## `fern` project structure
16
24
17
25
Fern attempts to be an idiomatic rust library and to maintain a sane structure. All source code is located in `src/`, and tests are in `tests/`.
18
26
@@ -24,40 +32,29 @@ The source is split into four modules:
24
32
25
33
Hopefully these modules are fairly separated, and it's clear when you'll need to work on multiple sections. Adding a new log implementation, for instance, will need to touch `builders.rs` for configuration, and `log_impl.rs` for the implementation - both pieces of code will connect via `builders::Dispatch::into_dispatch`, but besides that, things should be fairly separate.
26
34
27
-
####Pull requests
35
+
## Pull requests
28
36
29
37
Pull requests are _the_ way to change code using git. If you aren't familiar with them in general, GitHub has some [excellent documentation](https://help.github.com/articles/about-pull-requests/).
30
38
31
39
There aren't many hard guidelines in this repository on how specifically to format your request. Main points:
32
40
33
41
- Please include a descriptive title for your pull request, and elaborate on what's changed in the description.
34
42
- Feel free to open a PR before the feature is completely ready, and commit directly to the PR branch.
35
-
- This is also great for review of PRs before merging
36
-
- All commits will be squashed together on merge, so don't worry about force pushing yourself.
37
43
- Please include at least a short description in each commit, and more of one in the "main" feature commit. Doesn't
38
44
have to be much, but someone reading the history should easily tell what's different now from before.
39
-
- If you have `rustfmt-nightly` installed, using it is recommended. I can also format the code after merging the code,
40
-
but formatting it consistently will make reviewing nicer.
41
-
42
-
### Testing
45
+
- Use `cargo fmt` to format your code.
43
46
47
+
## Testing
44
48
45
-
Building fern is as easy as is expected, `cargo build`.
46
-
47
-
As of fern 0.5, testing can also easily be done with `cargo test`.
48
-
49
-
To run and test the example programs, use:
49
+
To run build everything and run all tests, use:
50
50
51
51
```sh
52
-
cargo run --example cmd-program # test less logging
53
-
cargo run --example cmd-program -- --verbose # test more logging
54
-
cargo run --example colored --features=colored # test colored log levels
52
+
cargo build --all-features --all-targets
53
+
cargo test --all-features
55
54
```
56
55
57
-
Feel free to add tests and examples demonstrating new features as you see fit. Pull requests which solely add new/interesting example programs are also welcome.
58
-
59
-
### Mentoring
56
+
## Mentoring
60
57
61
-
With all that said, contributing to a library, especially if new to rust, can be daunting.
58
+
Contributing to a project can be daunting.
62
59
63
-
Feel free to email me at daboross @ daboross.net with any questions!
60
+
Email me at daboross @ daboross.net with any questions!
0 commit comments