Thank you for your interest in contributing to GraphTea! This document explains how to get started.
- Getting Started
- Development Setup
- How to Contribute
- Submitting a Pull Request
- Reporting Bugs
- Requesting Features
- Code Style
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/GraphTea.git cd GraphTea - Set upstream remote:
git remote add upstream https://github.com/rostam/GraphTea.git
- Java JDK 8 or higher
- Apache Ant
# Build
cd src/scripts
ant
# Run
java -jar graphtea-main.jar
# or use the convenience script:
./run.sh # Linux/macOS
run.bat # WindowsThe fastest way to contribute an algorithm is to copy and modify the sample:
- Open
src/graphtea/extensions/algorithms/SampleAlgorithm.java - Copy it to a new file with your algorithm name
- Implement the
GraphAlgorithminterface - Drop the compiled
.classfile in theextensions/directory
| Type | Branch naming |
|---|---|
| Bug fix | fix/short-description |
| New feature | feature/short-description |
| Documentation | docs/short-description |
Always branch off master:
git checkout master
git pull upstream master
git checkout -b feature/my-new-feature- Make sure your code builds (
ant) and does not break existing functionality - Keep commits focused — one logical change per commit
- Write a clear PR description: what it does and why
- Reference any related issue:
Fixes #42 - Open the PR against the
masterbranch
Use GitHub Issues and include:
- GraphTea version (or commit SHA)
- Java version (
java -version) - Operating system
- Steps to reproduce
- Expected vs. actual behavior
- Screenshot or error output if applicable
Open an issue with the enhancement label. Describe:
- The use case (why is this useful?)
- A sketch of the expected behavior
- Any graph-theoretic background that would help
- Follow standard Java conventions (camelCase methods, PascalCase classes)
- Keep methods short and focused
- Add a one-line Javadoc comment to public methods
- No trailing whitespace
Questions? Open an issue or email rostamiev@gmail.com.