Thank you for helping keep Unit alive.
- Bug reports — open an issue with reproduction steps
- Security fixes — see SECURITY.md
- PHP 8.5+ support — our primary focus
- Documentation — fixes and improvements always welcome
- CI/CD — help improve our build pipeline
$ git clone https://github.com/freeunitorg/freeunit
$ cd freeunit
$ ./configure --openssl --otel
$ make- Fork the repository
- Create a branch:
git checkout -b fix/your-fix - Make your changes
- Test your changes
- Submit a pull request against
master
Every issue and PR must carry labels so triage and release notes stay accurate. Maintainers (or the contributor, if able) apply at least:
- One type —
z-bug 🐞,z-enhancement ⬆️,z-question, or the upstreamT-Defect/T-Enhancement/T-Other. - One area — the language module (
z-php,z-python,z-rust, …) orz-cfor core C,z-infrastructure,z-packages,z-toolchain. - Severity, when it applies —
z-crasherfor a segfault/abort,X-Release-Blockerfor anything that must ship in the next release.
Run gh label list to see the full set. To apply labels to a PR:
$ gh pr edit <num> --add-label "z-bug 🐞" --add-label "z-c"If gh pr edit fails with a Projects-classic deprecation error, use
the REST API instead:
$ gh api repos/freeunitorg/freeunit/issues/<num>/labels -X POST \
-f "labels[]=z-bug 🐞" -f "labels[]=z-c"PR titles must follow Conventional Commits (see below), not the branch
name — rename a feature/foo PR to feat(scope): … before merge.
Follow the existing C code style in the project. Run the test suite before submitting:
$ sudo pytest-3 --print-log test/Use conventional commits format:
fix: correct PHP 8.5 SAPI initialization
feat: add otel trace_id to access log
docs: update installation instructions
- Discussions: github.com/freeunitorg/freeunit/discussions
- Chat: t.me/freeunit_support
- Contact: team@freeunit.org
By contributing, you agree your contributions will be licensed under the Apache 2.0 License.