|
| 1 | +# Contributing to `Topfew` |
| 2 | + |
| 3 | +Topfew is hosted in this GitHub repository |
| 4 | +at `github.com/timbray/topfew` and welcomes |
| 5 | +contributions. |
| 6 | + |
| 7 | +As of mid-2024, Topfew is probably more or |
| 8 | +less complete. It is well-tested. Its performance at |
| 9 | +processing streams can keep up with most streams |
| 10 | +and it is dramatically faster when processing files, |
| 11 | +where it processes multiple segments in parallel. |
| 12 | + |
| 13 | +If you disagree and want to contribute to Topfew, |
| 14 | +the first step in making a change is typically to |
| 15 | +raise an Issue to allow for discussion of the idea. |
| 16 | +This is important because possibly Topfew already |
| 17 | +does what you want, in which case perhaps what’s |
| 18 | +needed is a documentation fix. Possibly the idea |
| 19 | +has been raised before but failed to convince Topfew’s |
| 20 | +maintainers. (Doesn’t mean it won’t find favor now; |
| 21 | +times change.) |
| 22 | + |
| 23 | +Assuming there is agreement that a change in Topfew |
| 24 | +is a good idea, the mechanics of forking the repository, |
| 25 | +committing changes, and submitting a pull request are |
| 26 | +well-described in many places; there is nothing |
| 27 | +unusual about Topfew. |
| 28 | + |
| 29 | +### Code Style |
| 30 | + |
| 31 | +The coding style suggested by the Go community is |
| 32 | +used in Topfew. See the |
| 33 | +[style doc](https://go.dev/wiki/CodeReviewComments) for details. |
| 34 | + |
| 35 | +Try to limit column width to 120 characters for both code and markdown documents |
| 36 | +such as this one. |
| 37 | + |
| 38 | +### Signing commits |
| 39 | + |
| 40 | +Commits should be signed (not just the `-s` “signd off on”) with |
| 41 | +any of the [styles GitHub supports](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits). |
| 42 | +Note that you can use `git config` to arrange that your commits are |
| 43 | +automatically signed with the right key. |
| 44 | + |
| 45 | +### Running Tests |
| 46 | + |
| 47 | +In the repository root `go test ./...` runs unit tests |
| 48 | +with all the defaults, which is a decent check for basic |
| 49 | +sanity and correctness. |
| 50 | + |
| 51 | +The following command runs the Go linter; submissions |
| 52 | +need to be free of lint errors. |
| 53 | + |
| 54 | +```shell |
| 55 | +golangci-lint run |
| 56 | +``` |
0 commit comments