We're thrilled you're interested in contributing to Dirac. Whether you're fixing a bug, adding a feature, or improving our docs, every contribution makes Dirac smarter! To keep our community vibrant and welcoming, all members must adhere to our Code of Conduct.
Bug reports help make Dirac better for everyone! Before creating a new issue, please search existing ones to avoid duplicates. When you're ready to report a bug, head over to our issues page where you'll find a template to help you with filling out the relevant information.
🔐 Important: If you discover a security vulnerability, please use the Github security tool to report it privately.
Looking for a good first contribution? Check out issues labeled "good first issue" or "help wanted". These are specifically curated for new contributors and areas where we'd love some help!
We also welcome contributions to our documentation! Whether it's fixing typos, improving existing guides, or creating new educational content - we'd love to build a community-driven repository of resources that helps everyone get the most out of Dirac. You can start by diving into /docs and looking for areas that need improvement.
If you plan to work on a larger feature, please first create a feature request so we can discuss if it aligns with Dirac's vision.
- When opening the project, VS Code will prompt you to install recommended extensions.
- These extensions are required for development - please accept all installation prompts.
- If you dismissed the prompts, you can install them manually from the Extensions panel.
- Clone the repository:
git clone https://github.com/dirac-run/dirac.git
- Install dependencies for the extension and webview:
npm run install:all
- Generate Protocol Buffer files (required before first build):
npm run protos
- Launch by pressing
F5(orRun->Start Debugging) to open a new VS Code window with the extension loaded.
Anyone can contribute code to Dirac, but we ask that you follow these guidelines to ensure your contributions can be smoothly integrated:
- Limit PRs to a single feature or bug fix.
- Split larger changes into smaller, related PRs.
- Break changes into logical commits that can be reviewed independently.
- Run
npm run lintto check code style. - Run
npm run formatto automatically format code. - All PRs must pass CI checks which include both linting and formatting.
- Follow TypeScript best practices and maintain type safety.
- Add tests for new features.
- Run
npm testto ensure all tests pass. - Update existing tests if your changes affect them.
- Write clear, descriptive commit messages.
- Use conventional commit format (e.g., "feat:", "fix:", "docs:").
- Reference relevant issues in commits using #issue-number.
- Rebase your branch on the latest main.
- Ensure your branch builds successfully.
- Double-check all tests are passing.
- Review your changes for any debugging code or console logs.
- Clearly describe what your changes do.
- Include steps to test the changes.
- List any breaking changes.
- Add screenshots for UI changes.
By submitting a pull request, you agree that your contributions will be licensed under the same license as the project (Apache 2.0).
Let's build something amazing together! 🚀