Contributing to A2A

Greetings! 👋 We’re grateful for your interest in contributing to the A2A project, part of the KubeStellar ecosystem. Your contributions — whether raising issues, enhancing documentation, fixing bugs, or improving the UI — are essential to our success.

This document adapts the main KubeStellar contributing guidelines to A2A, focusing on website, UI, and docs contributions.


📌 General Practices


🐞 Issues

  • Before opening a new issue, search the A2A issue tracker (open + closed).
  • If no existing issue matches your problem, feel free to create one.
  • We label beginner-friendly items as good first issue and broader items as help wanted.
  • To claim an issue, comment /assign. To release it, comment /unassign.

Slash Commands

A2A (via Prow bots) supports slash commands:

  • Issue commands: /assign, /unassign, /good-first-issue, /help-wanted
  • PR commands: /lgtm, /approve, /hold, /unhold, /retest

🔀 Git & Branching Workflow

  1. Fork this repo and clone your fork.

  2. Keep your main branch in sync:

    git checkout main
    git pull upstream main
  3. Create a feature/fix branch:

    git checkout -b fix/button-hover
  4. Make your changes, then commit with sign-off:

    git add .
    git commit -s -m "🐛 fix: improve hover visibility for 'View on GitHub' button"
  5. Push your branch:

    git push origin fix/button-hover

📝 Commit & PR Guidelines

  • Use Conventional Commits with emoji prefixes:

    • ✨ feat: new feature
    • 🐛 fix: bug fix
    • 📖 docs: documentation
    • 💄 style: UI/style updates
    • ♻️ refactor: refactor
  • Keep commits focused and descriptive.

  • All commits must be signed (git commit -s) to comply with CNCF’s Developer Certificate of Origin.

When opening a PR:

  • Reference the related issue (Fixes #123).
  • Fill in the PR template (problem, solution, screenshots if UI).
  • Keep PRs small and scoped.
  • Use an emoji in the title (e.g., 🐛 fix: footer contributing link).

🔍 Reviews & Approval

  • PRs require /lgtm from a reviewer and /approve from a maintainer before merging.

  • You cannot /lgtm your own PR.

  • Reviewers check:

    • Issue is resolved
    • Code follows guidelines
    • UI works in light/dark modes
    • Build/lint/tests pass

🧪 Testing Locally

Most contributions here are UI and docs. Please:

  • Run locally with

    npm install
    npm start
  • Test on desktop, tablet (~768px), and mobile (~375px).

  • Check both light and dark themes.

  • Run build:

    npm run build

📜 Licensing

This project is Apache 2.0 licensed. By contributing, you agree to the Developer Certificate of Origin (DCO).

To sign commits:

git commit -s -m "your message"

🙌 Thank you for contributing to A2A and helping the KubeStellar community grow!