-
-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Debugging
We do a lot of debugging at Oppia, whether because tests are failing on a PR or because of a tricky bug that was found during release testing. These guides will help you get started debugging and offer useful tips:
Start here if failing tests are stopping you from pushing or merging a PR:
Unless the bug you are trying to fix is trivial, we recommend creating a debugging doc to organize your work. This must be done if you plan to ask for help from the community:
Here are some debugging guides for particular kinds of issues you might encounter or types of tests:
- Finding which commit introduced a bug
- Debugging end-to-end tests
- Debugging backend tests
- Debugging frontend tests
- Debugging lighthouse Tests
- Debugging custom ESLint check tests
- Debugging custom Pylint check tests
Finally, see these debugging stories to learn more about how debugging works in practice:
Have an idea for how to improve the wiki? Please help make our documentation better by following our instructions for contributing to the wiki.
Core documentation
- Oppia's mission
- Code of Conduct
- Get involved!
- How to report a bug
- Google Summer of Code 2026
- Hacktoberfest 2025
Developing Oppia
- FAQs
- How to get help
- Getting started with the project
- How the codebase is organized
- Making your first PR
- Debugging
- Testing
- Codebase policies and processes
- Guidelines for launching new features
- Guidelines for making an urgent fix (hotfix)
- Testing jobs and other features on production
- Guidelines for Developers with Write Access to the Oppia Repository
- Release schedule and other information
- Revert and Regression Policy
- Privacy aware programming
- Code review:
- Project organization:
- QA Testing:
- Design docs:
- Team-Specific Guides
Developer Reference
- Oppiabot
- Git cheat sheet
- Frontend
- Backend
- Backend Type Annotations
- Writing state migrations
- Calculating statistics
- Storage models
- Coding for speed in GAE
- Adding a new page
- Adding static assets
- Wipeout Implementation
- Notes on NDB Datastore transactions
- How to handle merging of change lists for exploration properties
- Instructions for editing roles or actions
- Protocol buffers
- Webpack
- Third-party libraries
- Extension frameworks
- Oppia-ml Extension
- Mobile development
- Performance testing
- Build process
- Best practices for leading Oppia teams
- Past Events