We're thrilled that you're interested in contributing! This guide will help you get started.
We expect all contributors to abide by our Code of Conduct. Assume good intentions, be respectful, and if you experience violations, report them via Slack.
- Review our Product Statement - We focus on circuit simulation, community interaction, and educational tools. We prioritize maintainability, efficient development, and UX over UI complexity.
- Follow the setup guide
- Check existing issues to avoid duplicates
- Join Slack or Discussions for questions
The simulator directory no longer accepts contributions. All simulator work has moved to cv-frontend-vue. Platform contributions are still welcome here.
Status:
pending triage- New issue not yet verified. Don't work on these until the label is removedgood first issue- Great for newcomershelp wanted- Contributor needs assistance
Type:
🌟 feature- New features/enhancements🐞 bug- Errors in existing codedocumentation- Docs improvements
Priority: high > medium > low
Difficulty: easy (isolated changes) → medium (broader changes) → hard (architectural changes)
Scope:
platform- Website issues (contributions welcome)simulator- DEPRECATED (use cv-frontend-vue)
- Find an issue without the
pending triagelabel - Check that no one else has claimed it
- Leave a comment: "I'd like to work on this"
- Start working immediately - no need to wait for assignment
- Comment if you can no longer work on it
- Search for duplicates first
- Use the appropriate template (Bug Report, Feature Request)
- Write a clear, descriptive title
- Provide detailed information (steps to reproduce, screenshots, use cases)
- For features, explain alignment with our Product Statement
Your issue will get the pending triage label. Once maintainers verify and remove it, contributors can claim the issue.
Note
If the issue is about minor spelling mistakes, you may create pull request directly, do not create separate issue for that
# Fork on GitHub, then clone
git clone https://github.com/YOUR_USERNAME/CircuitVerse.git
cd CircuitVerse
# Add upstream
git remote add upstream https://github.com/CircuitVerse/CircuitVerse.git
# Keep your fork updated
git fetch upstream
git checkout master
git pull upstream master
# Create feature branch (format: feature-name#issue-number)
git checkout -b forgot-password#44
# After changes, push to your fork
git push origin forgot-password#44# Format: <type>: <description> (#issue-number)
git commit -m "feat: add password reset (#44)"Types: feat, fix, docs, style, refactor, test, chore
Use present tense, imperative mood, keep first line under 72 characters.
# Run tests before pushing
bundle exec rspec
bundle exec rubocop # if applicable- ✅ All tests pass
- ✅ Code follows project style
- ✅ Documentation updated
- ✅ Commits follow convention
- ✅ PR addresses single concern
- ✅ PR template filled out
- ✅ Screenshots for UI changes
- Click "Compare & pull request" on GitHub
- Reference the issue:
Fixes #44orCloses #44 - Fill out the PR template completely
- Request review from maintainers
- Keep PRs small and focused
- Use Draft PRs for work in progress
- Don't resolve reviewer comments unless asked
- Re-request review after making changes
- Be patient - reviews typically take 3-7 days
under-review- Being reviewed by core teamwaiting for contributor- Awaiting your responsewaiting for design- Awaiting UI/UX reviewno activity- Inactive for 2+ months (may be closed)blocked- Cannot proceed with reviewdo not merge- Should not merge yet
git checkout master && git pull upstream master
git checkout your-feature-branch
git merge master
# Resolve conflicts, then:
git add . && git commit -m "resolve merge conflicts"
git push origin your-feature-branch- Comment on the issue/PR with
@username - Ask in Slack
- Post in Discussions
- Add
help wantedlabel
Join our discussions and connect with contributors:
- GitHub Discussions - Questions and general discussions
- Slack - Real-time community chat
- Issues/PRs - Technical discussions
Become a financial contributor to help sustain our community.
- Always work on feature branches, never on master
- Keep your fork's master synced with upstream
- Write descriptive commit messages
- Test thoroughly before submitting
- Be respectful and patient
- Ask questions when unsure
We are all humans working together to improve this community. Always be kind and appreciate the need for tradeoffs. ❤️
Thank you for contributing to CircuitVerse!