$npx -y skills add opendatahub-io/ai-helpers --skill python-packaging-bug-finderUse when you need to find known packaging bugs, fixes, and workarounds for Python projects by searching GitHub issues and analyzing their resolution status
| 1 | # Python Packaging Bug Finder |
| 2 | |
| 3 | Identifies known packaging and build issues for Python projects by searching GitHub repositories for relevant issues, analyzing their content and comments, and determining resolution status. |
| 4 | |
| 5 | ## Instructions |
| 6 | |
| 7 | When investigating packaging problems for a Python project, follow this workflow: |
| 8 | |
| 9 | ### 1. Find the Repository |
| 10 | |
| 11 | Use the source finder skill to locate the project's GitHub repository: |
| 12 | |
| 13 | ``` |
| 14 | Skill: python-packaging-source-finder |
| 15 | Args: <package_name> |
| 16 | ``` |
| 17 | |
| 18 | If the skill returns a repository URL with high or medium confidence, proceed. If confidence is low or no URL found, stop here and return an error. |
| 19 | |
| 20 | ### 2. Search for Packaging Issues |
| 21 | |
| 22 | Once you have the repository URL, search for packaging-related issues by: |
| 23 | |
| 24 | 1. **Access the GitHub issues page**: Use WebFetch to get the repository's issues page (typically `<repo_url>/issues`) |
| 25 | |
| 26 | 2. **Filter for packaging keywords**: Look for issues with titles containing: |
| 27 | - Build-related: "build", "compilation", "compile", "setup.py", "pyproject.toml", "cmake", "makefile" |
| 28 | - Installation: "install", "pip", "wheel", "package", "packaging", "distribution" |
| 29 | - Environment: "gcc", "clang", "msvc", "python", "version", "dependency" |
| 30 | - Platform: "windows", "linux", "macos", "arm64", "x86_64" |
| 31 | - Errors: "error", "fail", "broken", "issue" |
| 32 | |
| 33 | 3. **Prioritize open issues**: Focus on open issues first, then closed ones that might affect the target version |
| 34 | |
| 35 | ### 3. Analyze Each Relevant Issue |
| 36 | |
| 37 | For each packaging-related issue found: |
| 38 | |
| 39 | 1. **Fetch issue details**: Use WebFetch to get the full issue page including: |
| 40 | - Issue description |
| 41 | - All comments |
| 42 | - Labels and milestones |
| 43 | - Current status (open/closed) |
| 44 | |
| 45 | 2. **Extract key information**: |
| 46 | - **Problem description**: What packaging/build problem is described? |
| 47 | - **Affected versions**: Which versions are mentioned as problematic? |
| 48 | - **Resolution status**: Is it fixed, pending, or unresolved? |
| 49 | - **Available fixes**: Are there PRs, commits, or workarounds mentioned? |
| 50 | - **Version inclusion**: If fixed, in which version was the fix included? |
| 51 | |
| 52 | 3. **Look for resolution indicators**: |
| 53 | <!-- skillsaw-disable content-placeholder-text --> |
| 54 | - **Fixed with PR**: Comments mentioning "fixed in PR #XXX" or "merged in #XXX" |
| 55 | - **Fixed with commit**: Comments with commit SHAs or "fixed in commit XXX" |
| 56 | - **Version mentions**: "fixed in v1.X.X" or "available in next release" |
| 57 | - **Workarounds**: Comments with "workaround", "temporary fix", "try this" |
| 58 | - **Status updates**: "resolved", "closed as fixed", "duplicate of #XXX" |
| 59 | |
| 60 | ### 4. Version Impact Assessment |
| 61 | |
| 62 | For each issue, determine: |
| 63 | |
| 64 | 1. **Does it affect the target version?** |
| 65 | - Compare mentioned problematic versions with target version |
| 66 | - Check if fix is included in target version |
| 67 | - Look for version-specific comments |
| 68 | |
| 69 | 2. **What's the resolution status?** |
| 70 | - **Fixed and Included**: Fix is available and included in target version |
| 71 | - **Fixed but Pending**: Fix exists but not yet in target version |
| 72 | - **Open with Workarounds**: No fix but workarounds available |
| 73 | - **Unresolved**: Open issue with no clear solution |
| 74 | |
| 75 | ## Output Format |
| 76 | |
| 77 | Provide a structured analysis: |
| 78 | |
| 79 | ```markdown |
| 80 | # Packaging Issues Analysis for <package_name> [version] |
| 81 | |
| 82 | ## Repository |
| 83 | - URL: <repository_url> |
| 84 | - Confidence: <high/medium/low> |
| 85 | |
| 86 | ## Issues Found: X total |
| 87 | |
| 88 | ### [Issue Status] Issue Title |
| 89 | - **URL**: <issue_url> |
| 90 | - **Status**: Open/Closed |
| 91 | - **Labels**: <relevant_labels> |
| 92 | - **Problem**: <brief_description> |
| 93 | - **Affects Target Version**: Yes/No/Unknown |
| 94 | - **Resolution**: |
| 95 | - Type: Fixed/Pending/Workaround/Unresolved |
| 96 | - Details: <fix_description> |
| 97 | - Available in: <version_if_applicable> |
| 98 | - **Workarounds**: <list_of_workarounds> |
| 99 | - **Recommendation**: <action_to_take> |
| 100 | |
| 101 | ## Summary |
| 102 | - Total packaging issues: X |
| 103 | - Affecting target version: X |
| 104 | - With available fixes: X |
| 105 | - With workarounds only: X |
| 106 | - Unresolved: X |
| 107 | ``` |
| 108 | |
| 109 | ## Issue Categories to Search For |
| 110 | |
| 111 | ### Build System Issues |
| 112 | - **Keywords**: "build fails", "compilation error", "setup.py error", "pyproject.toml", "cmake error" |
| 113 | - **Typical problems**: Build configuration, missing dependencies, tool compatibility |
| 114 | |
| 115 | ### Compiler Issues |
| 116 | - **Keywords**: "gcc", "clang", "msvc", "compiler error", "linker error", "C++ standard" |
| 117 | - **Typical problems**: Compiler version compatibility, C++ standard issues, linking problems |
| 118 | |
| 119 | ### Platform-Specific Issues |
| 120 | - **Keywords**: "windows", "linux", "macos", "arm64", "x86_64", "architecture" |
| 121 | - **Typical problems**: Platform-specific build failures, architecture compatibility |
| 122 | |
| 123 | ### Dependency Issues |
| 124 | - **Keywords**: "dependency", "requirements", "version conflict", "missing" |
| 125 | - **Typical problems**: Missing build dependencies, version conflicts, circular dependencies |