Contributing
YAPTIDE is spread across multiple repositories. This guide covers the shared workflow for contributing to any of them.
Repositories
Section titled “Repositories”| Repository | Description |
|---|---|
yaptide | Backend — Flask API, Celery workers, database |
ui | Frontend — React editor, Three.js viewport |
converter | Python converter — JSON to simulator input |
Pull Request Workflow
Section titled “Pull Request Workflow”1. Fork and Branch
Section titled “1. Fork and Branch”git clone https://github.com/yaptide/<repo>.gitcd <repo>git checkout -b feature/my-change2. Make Changes
Section titled “2. Make Changes”- Write code following the code style guide.
- Add or update tests.
- Update documentation if behaviour changes.
3. Push and Open PR
Section titled “3. Push and Open PR”git push origin feature/my-changeOpen a pull request on GitHub against the default branch (master for yaptide, ui and converter repos, main for docs and for_developers repos). Include:
- What the change does (one sentence)
- Why it’s needed
- How to test it
- Link to any related issues
4. Code Review
Section titled “4. Code Review”- At least one approval is required before merge.
- CI must pass: tests, linting, type checks.
Issue Tracking
Section titled “Issue Tracking”Issues are tracked in the respective GitHub repositories. When opening an issue:
- Use a descriptive title.
- Include steps to reproduce (for bugs).
- Include the expected vs actual behaviour.
- Tag with appropriate labels (
bug,enhancement,docs).
CI / CD
Section titled “CI / CD”Each repository has GitHub Actions workflows that run on pull requests:
| Check | Backend | Frontend | Converter |
|---|---|---|---|
| Unit tests | pytest | jest | pytest |
| Linting | pre-commit | eslint | pre-commit |
| Build | Docker image | npm run build | — |