Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions .github/analyze-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Issue Analysis Template

## Overview
Analyze the GitHub issue for the swagger-parser project and provide a comprehensive assessment.

## Analysis Structure

### 1. Issue Summary
- **Issue Number**: [Issue number from CSV]
- **Title**: [Issue title]
- **Type**: [Bug/Feature/Question/Enhancement]
- **Status**: [Open/Closed]
- **URL**: [GitHub issue URL]

### 2. Problem Description
Provide a clear and concise summary of the issue. What is the user trying to accomplish? What is not working as expected?

### 3. Technical Analysis

#### Affected Components
List the specific modules, classes, or files that are likely affected:
- Module/Package name
- Specific classes or methods (if identifiable)
- Configuration or parsing options involved

#### Root Cause (if identifiable)
Based on the issue description, what appears to be the underlying cause?

#### Impact Assessment
- **Severity**: Critical/High/Medium/Low
- **User Impact**: How many users are likely affected?
- **Workaround Available**: Yes/No - describe if available

### 4. Reproduction
Can this issue be reproduced based on the provided information?
- **Reproducible**: Yes/No/Partial
- **Steps**: List the reproduction steps if provided
- **Test Case Available**: Yes/No

### 5. Related Issues and Context

#### Dependencies
- Does this issue depend on or relate to other issues?
- Are there similar or duplicate issues?

#### Version Information
- Affected version(s)
- Fixed version (if closed)

### 6. Solution Approach

#### Proposed Solution
Based on the issue description and analysis, what would be the recommended approach to address this?

#### Implementation Complexity
- **Effort Estimate**: Low/Medium/High
- **Risks**: Any potential risks or breaking changes?

#### Testing Requirements
- Unit tests needed
- Integration tests needed
- Backward compatibility considerations

### 7. Additional Notes
Any other relevant observations, concerns, or recommendations.

---

## Instructions for Analysis

1. Read the complete issue description including all comments
2. Identify the core problem and any related symptoms
3. Analyze the technical context (OpenAPI version, parser options, etc.)
4. Assess the impact and priority
5. Propose a solution approach if possible
6. Note any missing information or clarifications needed

Focus on providing accurate, actionable analysis that helps maintainers understand and prioritize the issue.
34 changes: 34 additions & 0 deletions data/swagger-parser/issues.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
number,title,state,url
2275,[Feature]: Cache the result of deserialization when loading ref,open,https://github.com/swagger-api/swagger-parser/issues/2275
2271,[Bug]: Validation behavior change between openapi-generator 7.13.0 and 7.14.0 against an OpenAPI 3.1 schema with external references,open,https://github.com/swagger-api/swagger-parser/issues/2271
2216,[Bug]: Parameters components shouldn't be inlined with resolve option set to true,open,https://github.com/swagger-api/swagger-parser/issues/2216
2149,OpenAPIV3Parser.resolve() should handle all errors in the entire spec,open,https://github.com/swagger-api/swagger-parser/issues/2149
2148,Request for a Simplified Swagger Parser with Minimal Dependencies,open,https://github.com/swagger-api/swagger-parser/issues/2148
2147,cannot deserialize from Object value (Grallvm native executable),open,https://github.com/swagger-api/swagger-parser/issues/2147
2145,[Bug]: additionalProperties not resolved fully with resolveFully,open,https://github.com/swagger-api/swagger-parser/issues/2145
2144,[Open API 3.1] Json31 is incorrectly assuming that property containing anyOf is of type: object,open,https://github.com/swagger-api/swagger-parser/issues/2144
2134,Error: 'There are duplicate parameter values' encountered when parsing OpenAPI spec,open,https://github.com/swagger-api/swagger-parser/issues/2134
2087,"Fix ref handling in CB, AnyOf & examples (fixes : #2086)",closed,https://github.com/swagger-api/swagger-parser/pull/2087
2060,resolveFully breaks 3.0 spec for headers via $ref in request and response,open,https://github.com/swagger-api/swagger-parser/issues/2060
2052,[Bug]: When using ResolveFully Schema references to other files are replaced twice,open,https://github.com/swagger-api/swagger-parser/issues/2052
2032,[Bug]: Resolving fails when local component of a nested reference does not contain the #,open,https://github.com/swagger-api/swagger-parser/issues/2032
2006,ResolveFully + ResolveAllOf doesn't fully resolve schema with type: object when allOf refs have items,open,https://github.com/swagger-api/swagger-parser/issues/2006
1975,Referenced examples are never resolved,open,https://github.com/swagger-api/swagger-parser/issues/1975
1958,[Bug]: Schema example gets dropped during parsing when using compose,open,https://github.com/swagger-api/swagger-parser/issues/1958
1950,"[Bug]: Infinite loop when parsing openapi.yaml using ParseOptions(resolve:true, resolveFully:true, resolveCombinators:false)",open,https://github.com/swagger-api/swagger-parser/issues/1950
1946,[Bug]: resolveFully option does not work with nullable allOf references,open,https://github.com/swagger-api/swagger-parser/issues/1946
1938,[Bug]: swagger-parser doesn't handle not: properly when inside anyOf: / oneOf: / allOf:,open,https://github.com/swagger-api/swagger-parser/issues/1938
1920,[Feature]: support examples by reference in parameters,open,https://github.com/swagger-api/swagger-parser/issues/1920
1919,[Bug]: References in callbacks are not resolved when using ParseOptions.setResolve(true),open,https://github.com/swagger-api/swagger-parser/issues/1919
1897,"[Bug]: Schema with oneOf/anyOf/allOf and type: string, null (OpenAPI 3.1) is resolved incorrectly",open,https://github.com/swagger-api/swagger-parser/issues/1897
1874,Local refs between different files not being resolved,open,https://github.com/swagger-api/swagger-parser/issues/1874
1861,[Bug]: Invalid $ref causes Exception instead of message,open,https://github.com/swagger-api/swagger-parser/issues/1861
1857,Parser is mixing examples from multiple files,open,https://github.com/swagger-api/swagger-parser/issues/1857
1854,Swagger parser resolves schemas more than once resulting in wrong refs,open,https://github.com/swagger-api/swagger-parser/issues/1854
1843,[Bug]: Impossible to parse remote openapi definitions having circular reference without setting resolveFully to true,open,https://github.com/swagger-api/swagger-parser/issues/1843
1798,resolveFully = true causes stackoverflow on circular refs,open,https://github.com/swagger-api/swagger-parser/issues/1798
1793,[Bug]: ResolverFully discards formats when parsing anyOf/oneOf,open,https://github.com/swagger-api/swagger-parser/issues/1793
1780,Unused $ref aren't resolved so components are not added,open,https://github.com/swagger-api/swagger-parser/issues/1780
1778,Parser parses x- property as extension and converts value to string,open,https://github.com/swagger-api/swagger-parser/issues/1778
1777,allOf resolution loses required,open,https://github.com/swagger-api/swagger-parser/issues/1777
1776,OpenAPIResolver loses externalDocs reference,open,https://github.com/swagger-api/swagger-parser/issues/1776
120 changes: 120 additions & 0 deletions swagger-parser/issues/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Swagger Parser Issue Analysis

This directory contains comprehensive analyses of GitHub issues from the swagger-parser project.

## Overview

The goal of this analysis is to:
- Document the current state of open issues in the swagger-parser project
- Provide technical analysis to help maintainers understand and prioritize issues
- Identify root causes, impacts, and potential solutions
- Group related issues and identify patterns

## Analysis Structure

Each analysis file follows a standardized template (defined in `/.github/analyze-issue.md`) that includes:

1. **Issue Summary** - Basic metadata and classification
2. **Problem Description** - Clear explanation of the issue
3. **Technical Analysis** - Affected components, root cause, and impact assessment
4. **Reproduction** - Steps to reproduce and test cases
5. **Related Issues** - Dependencies and related problems
6. **Solution Approach** - Proposed fixes and implementation guidance
7. **Additional Notes** - Recommendations and priority assessment

## Batch Organization

Issues are analyzed in batches of 11 from the `data/swagger-parser/issues.csv` file:

### Batch 1 (Issues 2275-2060) ✅ COMPLETE

1. **parser-2275.md** - [Feature] Cache deserialization results for $ref
2. **parser-2271.md** - [Bug] Validation regression in OpenAPI 3.1 external refs
3. **parser-2216.md** - [Bug] Parameters incorrectly inlined with resolve=true
4. **parser-2149.md** - Enhancement to collect all errors instead of stopping on first
5. **parser-2148.md** - Feature request to reduce library dependencies
6. **parser-2147.md** - [Bug] GraalVM native executable compatibility
7. **parser-2145.md** - [Bug] additionalProperties not resolved with resolveFully
8. **parser-2144.md** - [Bug] Json31 incorrectly adds type: object to anyOf schemas
9. **parser-2134.md** - [Bug] False duplicate parameter errors
10. **parser-2087.md** - [PR] Fix for discriminator mapping, callbacks, and examples
11. **parser-2060.md** - [Bug] resolveFully breaks headers in OpenAPI 3.0

### Batch 2 (Issues 2052-1897) - Pending

To be analyzed in the second batch.

### Batch 3 (Issues 1874-1776) - Pending

To be analyzed in the third batch.

## Key Findings

### Common Themes

Several patterns emerge from the first batch analysis:

1. **Resolution Issues** (7 issues) - Problems with `resolve` and `resolveFully` options:
- Parameters being inlined instead of referenced (#2216)
- Headers containing invalid fields (#2060)
- additionalProperties not resolved (#2145)
- External refs with $defs failing (#2271)

2. **Performance** (1 issue):
- Deserialization caching needed for large projects (#2275)

3. **Validation/Error Handling** (2 issues):
- Collecting multiple errors instead of failing on first (#2149)
- False positive duplicate parameter errors (#2134)

4. **Compatibility** (2 issues):
- GraalVM native image support (#2147)
- Dependency reduction request (#2148)

5. **Schema Processing** (1 issue):
- anyOf schemas getting incorrect type inference (#2144)

### Priority Assessment

**High Priority Issues:**
- #2271 - Regression affecting OpenAPI 3.1 validation
- #2216 - Breaks documented resolve behavior
- #2060 - Generates invalid OpenAPI 3.0 specs
- #2134 - Blocks parsing of real-world APIs

**Medium Priority Issues:**
- #2275 - Significant performance impact for large projects
- #2147 - Blocks GraalVM adoption
- #2145 - resolveFully incomplete implementation

**Lower Priority / Discussion:**
- #2148 - Architectural discussion, not a bug
- #2149 - Enhancement for better error reporting
- #2144 - Edge case in schema processing

## Using These Analyses

Maintainers can use these analyses to:

1. **Prioritize work** - Impact and severity assessments help identify critical issues
2. **Understand problems** - Detailed technical analysis explains root causes
3. **Plan solutions** - Proposed approaches provide implementation guidance
4. **Identify patterns** - Related issues can be addressed together
5. **Engage community** - Users willing to contribute are noted

## Contributing

If you'd like to help analyze issues:

1. Follow the template in `/.github/analyze-issue.md`
2. Fetch complete issue details including all comments
3. Provide thorough technical analysis
4. Identify affected components and root causes
5. Propose actionable solutions

## Notes

- These analyses are for documentation and prioritization purposes
- They do not represent official project priorities or roadmap
- Some analyses cover pull requests that fix related issues
- Analysis accuracy depends on available information in the issue
Loading