Skip to content

Conversation

@jvepsalainen-nv
Copy link
Contributor

@jvepsalainen-nv jvepsalainen-nv commented Nov 17, 2025

Adds comprehensive GitHub issue and PR analysis tools to identify quality gaps in the Slang codebase:

Tools:

  • fetch_github_issues.py: Fetch issues/PRs from GitHub API with enrichment
  • analyze_issues.py: General quality analysis (3,535 issues, 5,392 PRs)
  • analyze_critical_issues.py: Deep dive on crashes and ICEs
  • analyze_bugfix_files.py: File-level hotspot analysis

Documentation:

  • README.md: Quick start guide and usage

Related issue #9039

Adds comprehensive GitHub issue and PR analysis tools to identify quality
gaps in the Slang codebase:

Tools:
- fetch_github_issues.py: Fetch issues/PRs from GitHub API with enrichment
- analyze_issues.py: General quality analysis (3,535 issues, 5,392 PRs)
- analyze_critical_issues.py: Deep dive on crashes and ICEs
- analyze_bugfix_files.py: File-level hotspot analysis

Documentation:
- README.md: Quick start guide and usage
- SUMMARY.md: Executive summary with top 3 quality gaps
- GENERAL_FINDINGS.md: Complete analysis with backend comparison
- CRITICAL_FINDINGS.md: Critical issues analysis (1,049 issues)
- ANALYSIS_PLAN.md: Analysis methodology
- DATA_FORMAT.md: Data structure reference

Key Findings:
- slang-lower-to-ir.cpp: shader-slang#1 crash source (83 critical fixes)
- SPIRV: 827 issues, highest volume
- HLSL: 292 days avg fix time
- Test coverage: 43.7% of PRs lack tests

Data included for immediate analysis (61 MB):
- Pre-fetched issues and PRs (Nov 2025)
- Processed CSV files for Excel/custom analysis
@jvepsalainen-nv jvepsalainen-nv self-assigned this Nov 17, 2025
@jkwak-work
Copy link
Collaborator

Do we have a github issue for this?
I am not sure what the goal of this PR is.

Enhances bug detection, component categorization, and user experience:

- Bug detection: Include infrastructure bugs, improve pattern matching
  * Now detects 1,913 bug fix PRs (35.5%) with better accuracy
  * Recognize crashes, ICEs, validation errors, correctness issues

- Component categorization: Expand to 30+ categories, reduce "other" by 92.7%
  * Add build-system, gfx-rhi, reflection, language-server, etc.
  * Show source file breakdown by component

- Fetch workflow: Simplify CLI, remove timeline API, add instant issue refs
  * Single --incremental flag for fast updates
  * Always fetch PR files, extract issue refs without API calls

- Documentation: Rewrite README
- Repository: Exclude 61MB data/ directory, add .gitignore
@jvepsalainen-nv
Copy link
Contributor Author

Do we have a github issue for this? I am not sure what the goal of this PR is.

Related issue is #9039. Goal is to extract data from issues and PRs (and test coverage data) to identify common bug types and components where to concentrate on improving testing quality.

Track bug fix frequency (fixes per 1000 LOC) to identify files that
require frequent bug fixes, helping distinguish truly problematic files
from simply large files.

- Add get_file_loc() to calculate lines of code
- Filter reports to source/ directory only
- Use correct terminology: "bug fix frequency" (counts PRs, not bugs)
- Remove trailing whitespace
Extract common code into analyze_common.py for better maintainability:
- Shared functions: get_file_loc, get_component_from_file, data loading
- Unified component categorization across all analysis scripts
- Reduces code duplication and ensures consistency

Update analysis methodology to be resource-agnostic:
- Add ANALYZE_RESULTS_PLAN.md
- Replace timeline-based recommendations (0-3mo, 3-6mo, 6-12mo)
  with short-term and long-term priorities ordered by impact
- No assumptions about available resources or timelines

Enhance executive summary with comprehensive metrics:
- Expand from top 3 to top 5 risk areas
- Add new section: top 5 areas in open issues and PRs
- Provides current status alongside historical analysis

Update README documentation to reflect latest tool features
and simplified workflow.
@jvepsalainen-nv
Copy link
Contributor Author

Archiving for later use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Analyze GitHub issues for quality improvement identification

2 participants