Thank you for your interest in contributing to Sootup!
We welcome contributions of all kinds — from small bug fixes to major improvements and new features.
Start by forking the Sootup repository to your own GitHub account.
Click the "Fork" button at the top-right of the repository page.
Clone your forked repository to your local machine:
git clone https://github.com/<your-username>/sootup.git
cd sootupCreate a branch for your feature or bug fix:
git checkout -b feature/your-feature-nameUse clear and descriptive branch names, such as:
feature/new-parserfix/null-pointerdocs/update-readme
Make your modifications and ensure that:
- All existing tests pass.
- New functionality is covered by tests.
- Code adheres to the Sootup Coding Standards (see below).
Write clear, concise, and descriptive commit messages:
git commit -m "Fix: handle null pointer in CFG builder"Push your branch to your fork:
git push origin feature/your-feature-nameThen, open a Pull Request (PR) from your branch to the main Sootup repository’s main branch.
Include a short summary of what you changed, why, and any related issue references (e.g., “Fixes #123”).
- Your PR will be reviewed by a Sootup maintainer.
- You may be asked to make adjustments before it can be merged.
- Once approved, a maintainer will merge your changes into the main branch.
Please be patient and respectful during the review process — maintainers are volunteers too!
To maintain code quality and consistency, please follow these standards:
- Follow the Google Java Style Guide.
- Write clean, modular, and readable code.
- Use meaningful variable, method, and class names.
- Avoid code duplication; prefer reusable methods or utilities.
- Add Javadoc comments for all public classes and methods.
- Keep methods short and focused — ideally under 30 lines.
- Write unit tests for all new functionality.
- Use the existing test framework (e.g., JUnit 5).
- Ensure 100% test pass rate before submitting your PR.
- Include edge cases and negative tests where applicable.
- Update documentation if your change affects the public API or usage.
- Add examples and explanations in
README.mdor/docswhere helpful. - Keep commit and PR descriptions concise but informative.
- Open an issue first if you plan a large or breaking change — to discuss design and implementation ideas.
- Keep PRs small and focused — they’re easier to review and merge.
- Stay consistent with the existing project structure and naming conventions.
Your contributions help make Sootup better for everyone.
We appreciate your time, effort, and collaboration!