Skip to content

Latest commit

 

History

History
67 lines (51 loc) · 3.29 KB

File metadata and controls

67 lines (51 loc) · 3.29 KB

Contributing to C++ Notebook 📓

Thank you for your interest in contributing to C++ Notebook! We welcome contributions of all forms, including bug reports, feature suggestions, code edits, and documentation updates.

Please follow these guidelines to make the contribution process smooth and productive for everyone.


🙋 How to Contribute

1. Reporting Bugs

  • Search existing issues to ensure the bug hasn't been reported yet.
  • If you find a new bug, open an issue using the bug template. Include:
    • Your operating system and environment (Browser or Tauri).
    • Clear steps to reproduce the bug.
    • Expected vs. actual behavior.
    • Screenshots or log files where applicable.

2. Suggesting Features

  • Open an issue describing the feature you'd like to see.
  • Explain the use case and why it would benefit other users.
  • Outline how you think the feature could be implemented.

3. Submitting Pull Requests (PRs)

  • Fork the repository and clone it locally.
  • Create a new branch for your feature or bugfix:
    git checkout -b feature/my-amazing-feature
  • Write your code changes.
  • Ensure the project builds successfully and runs without errors:
    • Run compiler check: npx tsc --noEmit
    • Test Tauri desktop mode: npm run tauri dev
    • Test Web browser mode: npm run dev
  • Keep your commits organized with clear messages.
  • Push your branch to GitHub and open a Pull Request.

🏷️ Finding an Issue to Work On

If you are a new contributor looking for a place to start, check out the following labels in our issue tracker:

  • good first issue: Beginner-friendly issues that require minimal background context about the architecture and codebase.
  • help wanted: Issues where the maintainers would love extra assistance or a dedicated champion to implement the solution.
  • documentation: Improving user guides, architectural diagrams, README documentation, or code comments.

Great Areas for First-Time Contributors

  • Example Notebooks & Cells: Add more C++ configuration samples, default cells, or template exercises.
  • UI Enhancements: Refine glassmorphism CSS styling, add smooth transitions, or improve dark/light mode contrasts.
  • Typo Fixes & Docstrings: Ensure public methods in the React frontend and Python backend have proper TypeScript/Python documentation.

🎨 Coding Standards

Frontend (React + TypeScript)

  • Use functional components with hooks.
  • Follow TypeScript best practices (avoid using any type).
  • Keep component styles defined in unified styles or specific layouts rather than inline.

Backend (Python)

  • Format code using PEP 8 guidelines.
  • Always include try/except blocks around external execution calls (subprocess, tempfile).
  • Ensure all resources and processes are properly cleaned up inside the finally block of your handlers.

🧑‍💻 Code of Conduct

We expect all contributors to adhere to our Code of Conduct. Please be respectful and professional in all communications.