C4 C 4 Punk Developers

Contribute

Send the patch

What a good contribution looks like, how review works, and what we expect from each other.

You do not need permission

Fork the repository, make the change, open a pull request. If you want to check the direction first, open an issue and say what you intend to do. That is a courtesy, not a gate.

Good first contributions

  • Reproduce a benchmark. Run one of our published numbers on your own hardware and tell us what you got. Divergence is information.
  • Documentation that unblocked you. If you had to read the source to work something out, that is a documentation bug; write down what you learned.
  • Platform reports. Build on a BSD, an older glibc, a musl container, an Apple Silicon Mac, and tell us what broke.
  • Hard bug reports. A crash with a reproducer is worth more to us than a feature request.

What a pull request should contain

  1. A description of the problem, not only the fix. Reviewers need to be able to disagree with the framing.
  2. A test, or an explanation of why the change is not testable.
  3. For performance work: before and after numbers, the command used, and the machine they were taken on.
  4. Commit messages in English, imperative mood, one logical change each.

Code style

Follow the file you are editing. Across the organisation: C17, four-space indentation, no tabs, braces on the same line, snake_case for functions and types, a cwist_ or ttak_ prefix on anything exported. Public headers carry Doxygen comments describing ownership and failure modes. Who frees the pointer is part of the API, so write it down.

Review expectations

We review for correctness, ownership clarity, and whether an on-call engineer could follow the code under pressure. Expect questions about lifetimes. Expect to be asked for a measurement if you claim something is faster. None of that is personal.

Licensing your contribution

Whatever you send is accepted under the licence already on that repository: MIT for CWIST and for this site, BSD 3-Clause for libttak. There is no copyright assignment and no separate contributor licence agreement to sign. If you are adding third-party code, say so in the pull request and name its licence, because vendoring it changes what downstream users have to comply with.

Code of conduct

Be direct about code and decent about people. Harassment, and using the issue tracker to litigate something other than the software, will get you removed. Maintainers make that call.