Thank you for considering contributing to c-argparse! This document provides guidelines for contributing to the project.
If you find a bug, please open an issue on GitHub with:
- A clear description of the bug
- Steps to reproduce the issue
- Expected vs. actual behavior
- Your environment (OS, compiler version, etc.)
Enhancement suggestions are welcome! Please open an issue describing:
- The enhancement you'd like to see
- Why it would be useful
- Example usage (if applicable)
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Ensure all tests pass (
make test) - Add tests for new functionality
- Update documentation as needed
- Commit your changes with clear commit messages
- Push to your fork
- Open a pull request
- Follow C99 standard
- Use consistent indentation (4 spaces)
- Keep functions focused and small
- Add comments for complex logic
- Document all public APIs
- Add unit tests for new features
- Ensure all existing tests pass
- Test on multiple platforms if possible (Linux, macOS, Windows)
- Include edge cases and error conditions
- Update README.md for API changes
- Add inline documentation in header files
- Include usage examples for new features
- Keep documentation clear and concise
- Use only standard C99 features
- Avoid platform-specific code
- Test on multiple compilers (GCC, Clang, MSVC)
- Do not introduce external dependencies
# Build everything
make all
# Run tests
make test
# Clean build artifacts
make clean- Be respectful and constructive
- Welcome newcomers
- Focus on collaboration
- Accept constructive criticism
If you have questions, feel free to open an issue or discussion on GitHub.
Thank you for contributing!