From 990b278e1c51082f77aa555ff5ce2448efa72da8 Mon Sep 17 00:00:00 2001 From: Tim Bray Date: Fri, 3 May 2024 13:42:35 -0700 Subject: [PATCH] kaizen: Add CONTRIBUTING.md Signed-off-by: Tim Bray --- CONTRIBUTING.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..0548345 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,56 @@ +# Contributing to `Topfew` + +Topfew is hosted in this GitHub repository +at `github.com/timbray/topfew` and welcomes +contributions. + +As of mid-2024, Topfew is probably more or +less complete. It is well-tested. Its performance at +processing streams can keep up with most streams +and it is dramatically faster when processing files, +where it processes multiple segments in parallel. + +If you disagree and want to contribute to Topfew, +the first step in making a change is typically to +raise an Issue to allow for discussion of the idea. +This is important because possibly Topfew already +does what you want, in which case perhaps what’s +needed is a documentation fix. Possibly the idea +has been raised before but failed to convince Topfew’s +maintainers. (Doesn’t mean it won’t find favor now; +times change.) + +Assuming there is agreement that a change in Topfew +is a good idea, the mechanics of forking the repository, +committing changes, and submitting a pull request are +well-described in many places; there is nothing +unusual about Topfew. + +### Code Style + +The coding style suggested by the Go community is +used in Topfew. See the +[style doc](https://go.dev/wiki/CodeReviewComments) for details. + +Try to limit column width to 120 characters for both code and markdown documents +such as this one. + +### Signing commits + +Commits should be signed (not just the `-s` “signd off on”) with +any of the [styles GitHub supports](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits). +Note that you can use `git config` to arrange that your commits are +automatically signed with the right key. + +### Running Tests + +In the repository root `go test ./...` runs unit tests +with all the defaults, which is a decent check for basic +sanity and correctness. + +The following command runs the Go linter; submissions +need to be free of lint errors. + +```shell +golangci-lint run +```