Understand how code reviews work in Apache Superset and how to participate effectively.
Code review is a critical part of maintaining code quality and sharing knowledge across the team. Every change to Superset goes through peer review before merging.
# View your changes git diff upstream/master # Check for common issues: # - Commented out code # - Debug statements (console.log, print) # - TODO comments that should be addressed # - Hardcoded values that should be configurable # - Missing error handling # - Performance implications
GitHub will automatically request reviews based on CODEOWNERS file.
For specific expertise, request additional reviewers:
@reviewer This PR implements [feature]. Could you please review: 1. The approach taken in [file] 2. Performance implications of [change] 3. Security considerations for [feature] Thanks!
# Acknowledging "Good catch! Fixed in [commit hash]" # Explaining "I chose this approach because [reason]. Would you prefer [alternative]?" # Questioning "Could you elaborate on [concern]? I'm not sure I understand the issue." # Disagreeing respectfully "I see your point, but I think [current approach] because [reason]. What do you think?"
# ✅ Good: Specific and actionable "This query could cause N+1 problems. Consider using `select_related('user')` to fetch users in a single query." # ❌ Bad: Vague "This doesn't look right."
// ✅ Good: Suggests improvement "Consider using useMemo here to prevent unnecessary re-renders when dependencies haven't changed." // ❌ Bad: Just criticism "This is inefficient."
Use GitHub's comment types:
Prefix conventions:
nit: Minor issue (non-blocking)suggestion: Recommended improvementquestion: Seeking clarificationblocker: Must be fixedpraise: Highlighting good worknit: Consider renaming `getData` to `fetchUserData` for clarity suggestion: This could be simplified using Array.reduce() question: Is this intentionally not handling the error case? blocker: This SQL is vulnerable to injection. Please use parameterized queries. praise: Excellent test coverage! 👍
If no response after 3 days:
# Backend performance import cProfile import pstats # Profile the code cProfile.run('function_to_profile()', 'stats.prof') stats = pstats.Stats('stats.prof') stats.sort_stats('cumulative').print_stats(10)
// Frontend performance // Use React DevTools Profiler // Chrome DevTools Performance tab // Lighthouse audits