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.
- 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.
- 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.
- 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
- Run compiler check:
- Keep your commits organized with clear messages.
- Push your branch to GitHub and open a Pull Request.
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.
- 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.
- Use functional components with hooks.
- Follow TypeScript best practices (avoid using
anytype). - Keep component styles defined in unified styles or specific layouts rather than inline.
- 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
finallyblock of your handlers.
We expect all contributors to adhere to our Code of Conduct. Please be respectful and professional in all communications.