Contributing to Apache Axis2/C¶
We welcome contributions to Apache Axis2/C! This guide explains how to get involved.
The Apache Way¶
"The Apache Way is primarily about Community, Merit, and Openness, backed up by Pragmatism and Charity."
Apache projects operate through community consensus and meritocracy. Contributions are valued, and consistent contributors earn recognition and responsibility within the project.
Becoming a Committer¶
If you have a significant stake in Apache Axis2/C—whether your organization depends on it for production systems, or you're actively contributing improvements—consider the path to becoming a committer. All Apache releases require a minimum of 3 binding votes from Project Management Committee (PMC) members, so having committed contributors ensures the project can continue to release updates.
For more information, see: Becoming a Committer
Ways to Contribute¶
- Bug Reports - Report issues you encounter
- Bug Fixes - Submit patches for known issues
- Documentation - Improve guides and API docs
- Features - Implement new functionality
- Code Review - Review pull requests from others
Getting Started¶
1. Fork the Repository¶
# Fork on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/axis-axis2-c-core.git
cd axis-axis2-c-core
git remote add upstream https://github.com/apache/axis-axis2-c-core.git
2. Create a Branch¶
3. Make Changes¶
- Follow the Coding Conventions
- Write tests for new functionality
- Update documentation as needed
4. Test Your Changes¶
Build and test following the instructions in the INSTALL file:
5. Commit and Push¶
6. Submit a Pull Request¶
- Go to your fork on GitHub
- Click "New Pull Request"
- Select your branch
- Fill out the PR template
- Submit for review
Pull Request Guidelines¶
Checklist¶
- [ ] Code follows coding conventions
- [ ] Tests added/updated for new functionality
- [ ] Documentation updated if needed
- [ ] Commit messages are clear and descriptive
- [ ] No unrelated changes included
PR Title Format¶
Or for non-JIRA issues:
Review Process¶
- A maintainer will review your PR
- Address any requested changes
- Once approved, a maintainer will merge
Code Style¶
See Coding Conventions for:
- Naming conventions
- Code formatting
- Memory management patterns
- Error handling
Testing¶
Running Tests¶
Writing Tests¶
- Place tests in the
test/directory - Use the existing test framework
- Cover both success and failure cases
Building the Documentation Site¶
The documentation site uses MkDocs with the Material theme.
Setup¶
# Create a Python virtual environment and install dependencies
python3 -m venv mkdocs-venv
./mkdocs-venv/bin/pip install mkdocs mkdocs-material
Preview Locally¶
# Start the development server
./mkdocs-venv/bin/mkdocs serve
# Or specify a different port
./mkdocs-venv/bin/mkdocs serve -a localhost:8080
Then open http://localhost:8000 in your browser. The site auto-reloads when you edit Markdown files.
Build Static Site¶
Documentation Structure¶
docs/
├── index.md # Home page
├── getting-started/ # Installation and quick start
├── guide/ # User and developer guides
├── api/ # API reference
├── community/ # Contributing, mailing lists
└── *.md # HTTP/2, security docs
Communication¶
- Developer List: c-dev@axis.apache.org
- User List: c-user@axis.apache.org
- Jira: issues.apache.org/jira/projects/AXIS2C for bug reports and feature requests
License¶
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Code of Conduct¶
All contributors must follow the Apache Code of Conduct.
Thank you for contributing to Apache Axis2/C!