Contribution Guidelines
Categories:
Thank you for your interest in contributing to Texera! This guide explains how to contribute to both Texera’s codebase and documentation.
We follow a fork-based workflow and adopt the Conventional Commits standard for commit messages.
Contributing to Texera
Texera welcomes contributions from everyone — whether you’re fixing a small bug, improving documentation, or adding new features.
👥 Roles in the Project
| Role | Key Permissions | How to Join |
|---|---|---|
| Contributor | Submit issues & PRs, join discussions | Start contributing — no formal process |
| Committer | Merge PRs, push code, vote on code changes | Nominated by PPMC based on quality contributions |
| PPMC Member | Governance, release voting, new committer approvals | Voted by existing PPMC members |
| Mentor | Guide project and ensure Apache compliance | Appointed by the Incubator PMC |
🛠 How to Contribute Code
1. Fork the Repository
Fork the Texera repository on GitHub and clone it locally.
2. Find or Open an Issue
- Pick an existing issue or create a new one describing your proposal or bug.
- Discuss your approach with committers before coding to reach consensus.
3. Create and Submit a Pull Request
- Develop in a new branch of your fork.
- When ready, submit a PR to the main Texera repository.
- Allow edits from maintainers to let committers make small fixes if needed.
PR Title and Commit Format
We use Conventional Commits:
- Example PR titles:
feat: add new join operatorfix(ui): resolve workflow panel crashchore(deps): bump dependency versions
- The PR title becomes the final squashed commit message upon merge.
PR Description Should Include:
- Purpose: use
Closes #1234to auto-close an issue. - Summary: short overview of your changes.
- Optional: design document, technical diagram, or screenshots.
Avoid including:
- Local config files (e.g.,
python_udf.conf) - Secrets or credentials
- Binary or build artifacts
🧪 Testing and Quality Checks
Backend (Scala)
- Run lint:Fix with:
sbt "scalafixAll --check"sbt scalafixAll - Run formatter:Fix with:
sbt scalafmtCheckAllsbt scalafmtAll - Execute tests:
cd core sbt test
For IntelliJ users: ensure the working directory matches the module (
amberfor engine tests,corefor services).
Frontend (Angular)
- Run unit tests:
cd core/gui ng test --watch=false - Format code:
yarn format:fix
Write .spec.ts tests for new functionality to ensure future safety.
🔍 Pull Request Review Process
- Request a committer to review your PR.
- Add labels (e.g.,
fix,enhancement,docs). - Wait for CI to pass (GitHub Actions).
- Mark your PR as draft if it’s not ready.
- Once approved, a committer will merge your PR.
📝 Apache License Header
All new files must include the Apache License header.
To automate this in IntelliJ:
- Go to Settings → Editor → Copyright → Copyright Profiles.
- Create a profile named Apache and add:
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership... - Set this as the default profile for the project.
✍️ Contributing to Documentation
Texera uses Hugo and the Docsy theme to build its website.
All documentation is stored in the Texera GitHub repository.
Quick Steps
- Click Edit this page at the top of any doc page to edit directly on GitHub.
- Make your edits and open a Pull Request.
- The site auto-deploys a preview for review via Netlify.
- Wait for approval and merge.
Preview Locally
To preview locally:
hugo server
Visit http://localhost:1313 to view the site as you edit.
📚 Resources
- Texera GitHub Repository
- Conventional Commits Spec
- Hugo Documentation
- Docsy Guide
- GitHub Pull Request Docs
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.