Thank you for your interest in contributing to zThread! This document provides guidelines and instructions for contributing.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Before creating a bug report, please check existing issues to avoid duplicates. When filing a bug report, include:
- A clear and descriptive title
- Steps to reproduce the behavior
- Expected behavior vs actual behavior
- Your environment (Java version, Linux distribution, kernel version)
- Relevant log output
Feature requests are welcome. Please provide:
- A clear description of the feature
- The motivation and use case
- Any alternative solutions you've considered
- Fork the repository and create your branch from
main - Follow the existing code style (Google Java Style, enforced by Spotless)
- Add tests for any new functionality
- Ensure all tests pass:
./mvnw clean verify - Run quality checks:
./mvnw verify -Pquality - Update documentation as needed
- Write a clear PR description
- Java 25 or later
- Linux (Ubuntu, Fedora, Arch, Debian, or RHEL)
- Git
# Clone the repository
git clone https://github.com/namanoncode/zThread.git
cd zThread
# Build (uses Maven Wrapper, no Maven installation needed)
./mvnw clean verify
# Run with quality checks
./mvnw clean verify -Pquality# Unit tests only
./mvnw test
# Integration tests (requires Linux)
./mvnw verify -pl zthread-linux
# All tests with coverage
./mvnw verify- Follow Google Java Style Guide
- Spotless is configured to auto-format:
./mvnw spotless:apply - Every public class and method must have Javadoc
- No magic numbers — use named constants
- Prefer immutability
- Use composition over inheritance
By contributing, you agree that your contributions will be licensed under the Apache License, Version 2.0.