PackageTrack
Sign in Get early access

github.com/ludo-technologies/pyscn

v1.29.1 #1657 most downloaded on Go modules ludo-technologies/pyscn

What this package is like to depend on

Last release 7 days ago

16 Aug 2026

Ships fairly regularly

a new release about every 9 days

Nearly every release is documented

notes for 75 of 75 stable releases

Nothing withdrawn

no release was ever pulled

11 months old

115 releases · first in 2025

115 releases in the last 12 months

see the full history below

Release timeline

115 releases · Sep 2025 to Aug 2026
2026
Release Pre-release

Releases

latest 60 of 115
  1. v1.29.2-0.20260816153121-f4f569ca4ded 16 Aug 2026 pre-release

    Nothing published for this version

  2. v1.29.1 16 Aug 2026
    Release notes

    What's Changed

    • feat(complexity): add per-function SLOC metric and long-function warnings (#551) by @DaisukeYoda in #660
    • fix(analyzer): stop cognitive complexity from crossing scope boundaries (#658) by @DaisukeYoda in #661
    • fix: make dependency analysis scale by @M-Hassan-Raza in #695
    • fix: derive single-responsibility concerns from fan-out only by @DaisukeYoda in #700
    • fix(config): stop config discovery at the target repository root by @DaisukeYoda in #701
    • docs(ci): record the tag ruleset as what gates registry publishing by @DaisukeYoda in #684
    • fix(parser): reject legacy syntax no Python 3 release accepts by @DaisukeYoda in #702
    • build(deps): bump the go-dependencies group with 3 updates by @dependabot[bot] in #699
    • fix(check): fail the gate on files that cannot be parsed by @DaisukeYoda in #703
    • fix: --min-complexity filters the analysed function set, not just the report:... by @yhay81 in #697
    • chore: bump polyscan core to v0.2.2 (APTED/LSH optimizations) by @DaisukeYoda in #707
    • chore: translate Japanese code comments to English by @DaisukeYoda in #713
    • fix: gate all analyzed functions by @sanmaxdev in #712
    • fix: make class ranking ties deterministic by @sanmaxdev in #710
    • migrate: adopt core parse-error penalty by @DaisukeYoda in #714
    • docs: update CHANGELOG for v1.29.1 by @DaisukeYoda in #715

    Full Changelog: v1.29.0...v1.29.1

    Open source →
    Release notes

    Added

    • Per-function SLOC metric and long-function warnings in check and the HTML report (#660)

    Changed

    • Adopt polyscan core parse-error penalty (#714)
    • Bump polyscan core to v0.2.2 with APTED/LSH optimizations (#707)
    • Make dependency analysis scale on large graphs (#695)
    • Translate remaining Japanese code comments to English (#713)

    Fixed

    • Stop cognitive complexity from crossing scope boundaries (#661)
    • Gate all analyzed functions in check, not just the reported ones (#712)
    • Make class ranking ties deterministic (#710)
    • Fail the check gate on files that cannot be parsed and gate clone detection (#703)
    • Reject legacy Python 2 syntax that no Python 3 release accepts (#702)
    • Discover config from the analyzed target and stop at its repository root (#701)
    • Derive single-responsibility concerns from fan-out only (#700)
    • Keep --min-complexity from shrinking the analyzed function set and health score (#697)
    Open source →
  3. v1.29.0 27 Jul 2026
    Release notes

    What's Changed

    Full Changelog: v1.28.0...v1.29.0

    Open source →
    Release notes

    Added

    • Per-module quality hotspot metrics in analyze reports (#686)
    • Per-directory complexity rollups in analyze reports (#687)

    Changed

    • Serve documentation at docs.codescan.dev (#685)

    Fixed

    • Dedupe architecture suggestions and add file_path/start_line (#648)
    Open source →
  4. v1.28.1-0.20260725165332-a467b1f2bc53 25 Jul 2026 pre-release

    Nothing published for this version

  5. v1.28.0 25 Jul 2026
    Release notes

    What's Changed

    Full Changelog: v1.27.0...v1.28.0

    Open source →
    Release notes

    Added

    • List the pyscn MCP server in the official MCP Registry and Glama (#682)

    Changed

    • Point the cross-language link to polyscan instead of the archived jscan (#681)
    Open source →
  6. v1.27.0 24 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.26.4...v1.27.0

    Open source →
    Release notes

    Added

    • Link HTML reports and CLI output back to the pyscn GitHub repository (#679)

    Changed

    • Adopt polyscan core clone grouping, dedup, similarity gates, and classification (#664)
    • Adopt polyscan core APTED tree edit distance (#669)
    • Adopt polyscan core CFG analyses (#670)
    • Adopt polyscan core graph analyses (#672)
    • Adopt polyscan core LSH, LCOM, DFA, and semantic evidence (#673)
    • Adopt polyscan core scoring and grade mapping (#674)
    • Redesign the website homepage with a CFG diagram hero (#671)
    • Document Agent Skills as a recommended AI integration on the website (#668)

    Fixed

    • Exclude Cython primitive types from CBO dependent classes (#646)
    • Fix module-qualified enum coupling in CBO (#675)
    Open source →
  7. v1.26.5-0.20260718131126-a7b1cfcf080b 18 Jul 2026 pre-release

    Nothing published for this version

  8. v1.26.4 17 Jul 2026
    Release notes

    What's Changed

    • fix(analyzer): exclude same-file top-level peer classes from CBO (#637) by @DaisukeYoda in #639
    • fix(mcp): propagate analyze recursive override by @yhay81 in #656
    • docs(mcp): correct configuration discovery by @yhay81 in #650
    • fix(mcp): publish implemented output controls by @yhay81 in #651
    • fix(check): fail on malformed discovered .pyscn.toml by @yhay81 in #654
    • refactor!: unify request bool override semantics by @yhay81 in #649
    • fix(architecture): default StrictMode to false when auto-detecting layers without user config (#659) by @DaisukeYoda in #662
    • docs: update CHANGELOG for v1.26.4 by @DaisukeYoda in #663

    Full Changelog: v1.26.3...v1.26.4

    Open source →
    Release notes

    Changed

    • Unify request bool override semantics with sparse optional fields (#649)
    • Correct MCP configuration discovery documentation (#650)

    Fixed

    • Default architecture strict mode to false when auto-detecting layers without user config (#662)
    • Propagate recursive override in MCP analyze tool (#656)
    • Fail check command on malformed discovered .pyscn.toml (#654)
    • Publish only implemented output controls in MCP tool schemas (#651)
    • Exclude same-file top-level peer classes from CBO coupling (#639)
    Open source →
  9. v1.26.3 10 Jul 2026
    Release notes

    What's Changed

    Full Changelog: v1.26.2...v1.26.3

    Open source →
    Release notes

    Added

    • Report pre-filter function count (functions_total) in complexity summary (#635)

    Fixed

    • Ignore imported module constants (e.g. re.DOTALL) in CBO dependencies (#638)
    Open source →
  10. v1.26.2 09 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.26.1...v1.26.2

    Open source →
    Release notes

    Changed

    • Unify config merge logic on zero-value sentinels and remove the legacy FlagTracker mechanism (#640)

    Fixed

    • Exclude abstract methods from LCOM4 grouping so abstract base classes aren't penalized (#559)
    • Apply exclude patterns when all input paths are pre-resolved files (#590)
    • Exclude annotation-only dependencies from CBO under PEP 563 future annotations (#628)
    • Report only clone fragments referenced by returned clone pairs/groups (#631)
    • Honor explicit complexity threshold overrides that equal the default (#553)
    Open source →
  11. v1.26.1 05 Jul 2026
    Release notes

    What's Changed

    Full Changelog: v1.26.0...v1.26.1

    Open source →
    Release notes

    Fixed

    • Test-file exclude patterns (test_*.py, *_test.py) not matching files in nested directories (#532)

    Changed

    • Refresh README Features section with five analysis angles (#621)
    • Clarify DI anti-pattern detection is opt-in in README (#622)
    Open source →
  12. v1.26.0 03 Jul 2026
    Release notes

    What's Changed

    • fix(cbo): don't count a class defined within a class as coupling by @StressTestor in #562
    • feat(claude-plugin): split single skill into focused agent skills by @DaisukeYoda in #618
    • docs: recommend Agent Skills install via add-skills, make skills CLI-first by @DaisukeYoda in #619
    • docs: update CHANGELOG for v1.26.0 by @DaisukeYoda in #620

    Full Changelog: v1.25.0...v1.26.0

    Open source →
    Release notes

    Added

    • Add cli-analysis Agent Skill for CI setup and report generation without MCP

    Changed

    • Split the plugin's single skill into health-check, refactoring, and architecture-review skills for better trigger accuracy

    Fixed

    • Move the plugin skill into skills/<name>/SKILL.md so Claude Code discovers it; the previous flat skills/SKILL.md layout was never loaded
    • Document the plugin install path on the website MCP page and correct the Claude Code setup instructions (claude mcp add, not claude_desktop_config.json)
    • Don't count a class defined within a class as CBO coupling (#562)
    Open source →
  13. v1.25.0 01 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.24.3...v1.25.0

    Open source →
    Release notes

    Added

    • Build a community graph from the dependency graph (#579)
    • Deterministic Leiden community detection (#580)
    • Domain types, service, and use-case wiring for community analysis (#582)
    • CLI --select communities and [communities] config, opt-in (#583)
    • Community analysis JSON formatter (#584)
    • Text/HTML/YAML/CSV/DOT community summary output (#585)
    • Package mismatch scoring (#600)
    • Layer mismatch scoring (#601)
    • Community risk score with Health Score integration (#602)
    • Interactive macro-architecture graph in the HTML report (#603)
    • AI-agent context map and MCP documentation (#604)

    Changed

    • Run module community detection in default pyscn analyze; opt out with --skip-communities or [communities] enabled = false (#605)
    • Bump Go dependencies (#614)

    Fixed

    • Drop clone groups without backing pairs (#615)
    • Resolve src-layout community graph imports (#613)
    • Collapse enum member CBO dependencies (#594)
    Open source →
  14. v1.24.4-0.20260621124121-8b352fabae50 21 Jun 2026 pre-release

    Nothing published for this version

  15. v1.24.3 21 Jun 2026
    Release notes

    Changed

    • Integrate clone statistics into detector result types (#561)

    Fixed

    • Count self.<property> reads as method-call edges in LCOM (#558)
    Open source →
  16. v1.24.2 15 Jun 2026
    Release notes

    Changed

    • Use cognitive complexity metrics for complexity risk assessment (#552)
    • Change duplication metric from group density to fragment ratio (#555)

    Fixed

    • Prefer highest-similarity clone type for group classification (#556)
    • Group namespace import members so CBO isn't inflated by member explosion (#554)
    Open source →
  17. v1.24.1 13 Jun 2026
    Release notes

    Fixed

    • Populate fragment hash in clone output (#549)
    • Suppress clone groups covered by another group's larger windows (#548)
    • Calibrate progress bar with actual task timings (#541)
    Open source →
  18. v1.24.1-0.20260611155443-fb3fe92d19e2 11 Jun 2026 pre-release

    Nothing published for this version

  19. v1.24.0 11 Jun 2026
    Release notes

    Changed

    • Speed up clone detection by reusing APTED DP matrices and parallelizing pair comparison (#538)

    Fixed

    • Preserve every elif in a chain so complexity isn't undercounted (#537)
    Open source →
  20. v1.23.3-0.20260610163751-73acc60dfdf3 10 Jun 2026 pre-release

    Nothing published for this version

  21. v1.23.2 10 Jun 2026
    Release notes

    Fixed

    • Stop counting imported function calls as class dependencies in CBO analysis (#535)
    • Penalize Type-4 similarity for disjoint string literal vocabularies (#534)
    Open source →
  22. v1.23.1 08 Jun 2026
    Release notes

    Changed

    • Soften CBO coupling scoring calibration (#528)
    • Soften LCOM cohesion scoring calibration (#530)
    Open source →
  23. v1.23.0 07 Jun 2026
    Release notes

    Added

    • Architecture style presets (layered, hexagonal, clean, mvc) for dependency rule configuration (#520, #521, #523, #526)

    Fixed

    • Merge overlapping unreachable findings in dead code detection (#519)
    Open source →
  24. v1.22.10-0.20260606083018-95c1dbf2fbec 06 Jun 2026 pre-release

    Nothing published for this version

  25. v1.22.9 04 Jun 2026
    Release notes

    Fixed

    • Clear dependency CVEs and suppress math/rand false positive in security report (#513)
    • Exclude lazy function-body imports from circular dependency detection while retaining them as edges (#514)

    Changed

    • Consolidate cognitive complexity into the analyzer layer (#515)
    Open source →
  26. v1.22.9-0.20260604023731-87c111c21251 04 Jun 2026 pre-release

    Nothing published for this version

  27. v1.22.8 03 Jun 2026
    Release notes

    Fixed

    • Register plugin MCP server by moving the manifest into a nested .claude-plugin/ directory (#509)

    Changed

    • Bump Go dependencies (#504)
    • Upgrade golangci-lint-action to v7 (#507)
    Open source →
  28. v1.22.8-0.20260602115924-1200c3e3a0f9 02 Jun 2026 pre-release

    Nothing published for this version

  29. v1.22.7 02 Jun 2026
    Release notes

    Fixed

    • Collect module imports from else/except/finally branches with branch-aware TYPE_CHECKING filtering (#502)
    • Populate per-fragment id and type in clone group output (#503)
    • Reuse detector-owned clone feature cache when building LSH MinHash signatures (#505)
    Open source →
  30. v1.22.7-0.20260531122806-37e15392771f 31 May 2026 pre-release

    Nothing published for this version

  31. v1.22.6 31 May 2026
    Release notes

    Fixed

    • Propagate nested function CFGs and reset builder state between builds (#497)
    • Fix DFA compound-statement use contracts: match pattern bindings, definition scopes, and parameter/function-header uses (#498)
    • Skip trailing-semicolon empty statements in dead code detection (#500)
    Open source →
  32. v1.22.5 30 May 2026
    Release notes

    Fixed

    • Fix analyzer import and report contracts (dependency traversal, module imports, comprehension fields) (#495)
    • Escape HTML report output to prevent markup injection (#495)
    Open source →
  33. v1.22.4 27 May 2026
    Release notes

    Fixed

    • Exclude Django migration files from analysis defaults (#489)
    • Compute TotalClones from clone group membership, not all fragments (#487)
    Open source →
  34. v1.22.4-0.20260527152838-05237680ad4a 27 May 2026 pre-release

    Nothing published for this version

  35. v1.22.3 26 May 2026
    Release notes

    Fixed

    • Preserve clone group type classification (#484)
    • Preserve skip_docstrings config in clone detection (#483)
    • Detect external ctypes fields and broaden ctypes base detection in LCOM (#480)
    Open source →
  36. v1.22.2 24 May 2026
    Release notes

    Fixed

    • Resolve CBO dependency identity and tighten import contracts to fix coupling miscounts (#474)
    • Expose WeightedViolations so architecture ComplianceScore is reproducible (#476)
    Open source →
  37. v1.22.1 23 May 2026
    Release notes

    Fixed

    • Populate SystemAnalysisResponse.Summary so analyze reports aggregate system metrics correctly (#472)

    Documentation

    • Add French translation (#470)
    • Tidy mkdocs header logo (#469)
    Open source →
  38. v1.22.0 22 May 2026
    Release notes

    Fixed

    • Preserve complexity metric fallbacks and use AST counts for consistent reporting (#466)
    • Compute module-level cognitive complexity metrics (#464)
    • Honor APTED cost model and tighten distance handling for large trees (#454)

    Documentation

    • Clarify that large-tree APTED is a bounded heuristic for clone detection (#467)

    Testing

    • Add LCOM use case unit tests (#459)
    • Add unit tests for app/di_antipattern_usecase.go (#461)
    Open source →
  39. v1.21.1 19 May 2026
    Release notes

    Fixed

    • Gate Type-4 clone classification on minimum CFG cyclomatic complexity to cut linear-shape false positives (#450)
    Open source →
  40. v1.21.0 18 May 2026
    Release notes

    Performance

    • Speed up the full analyze pipeline by reusing parsed files and the system dependency graph, scoring APTED pairs once, and using integer LSH candidates (#438)

    Fixed

    • Count rule invocations (not violations) in architecture ComplianceScore denominator (#448, #426)
    • Exit non-zero when output generation fails in the analyze command (#437, #249)
    Open source →
  41. v1.20.0 16 May 2026
    Release notes

    Added

    • Honor semantic Type-4 clone classification with unified parser traversal and DFA field contracts (#435)

    Fixed

    • Drop strict-subset members from clone groups and keep dedupe outputs consistent (#432, #416)
    • Auto-enable LSH for high pair counts in clone detection (#433, #427)
    Open source →
  42. v1.19.3 13 May 2026
    Release notes

    Fixed

    • Fix DFA extraction for with statement alias targets (#424)
    • Honor analyze config flags by preserving system defaults and validating selection (#425)
    • Avoid resolving stdlib imports to shadowing project modules (#429)
    • Structurally model with-statement aliases in DFA via NodeWithItem (#430)
    Open source →
  43. v1.19.3-0.20260512153737-3242ac42253c 12 May 2026 pre-release

    Nothing published for this version

  44. v1.19.2 11 May 2026
    Release notes

    Fixed

    • Report module-scope code as <module> instead of __main__ in complexity output (#417)
    • Include with context expressions in LCOM4 instance variable access detection (#419)
    Open source →
  45. v1.19.1 08 May 2026
    Release notes

    Fixed

    • Tighten Type-2 clone classification to reduce class body false positives (#411)
    • Preserve f-string interpolation expressions so LCOM4 detects self.<ivar> accesses (#415)
    Open source →
  46. v1.19.0 06 May 2026
    Release notes

    Added

    • Main sequence architecture metrics with abstractness, instability, and zone classification (#407)

    Documentation

    • Sync ja/zh schemas with AbstractClassCount field (#409)
    Open source →
  47. v1.18.1 02 May 2026
    Release notes

    Fixed

    • Emit real line range for synthetic __main__ complexity record (#403)

    Documentation

    • Sync rule catalog and config reference with v1.13–v1.18 releases (#406)
    Open source →
  48. v1.18.0 29 Apr 2026
    Release notes

    Added

    • Package responsibility analysis with cohesion and SRP checks (#398)

    Fixed

    • Require text match for Type-1 clones and cap non-textual similarity (#399)
    • Make clone trees expression-aware to avoid mismatched payloads (#401)
    Open source →
  49. v1.17.0 28 Apr 2026
    Release notes

    Performance

    • Optimize complete-linkage grouping with sparse matrix and cached similarities (#391)

    Fixed

    • Make grouping clone-type tie breaks deterministic (#389)

    Documentation

    • Add user-facing documentation site with MkDocs Material (#387)
    • Default to uvx and link README to docs site (#388)
    • Add Japanese and Simplified Chinese translations (#392)

    Testing

    • Add clone detector benchmarks (#393)

    CI

    • Auto-assign PR author on open/reopen (#390)
    Open source →
  50. v1.16.0 14 Apr 2026
    Release notes

    Added

    • DI (Dependency Injection) anti-pattern detection for Python code (#308)

    Fixed

    • Honor complexity config settings in analyze (#382)
    • Preserve clone show_content config in analyze (#384)

    Refactored

    • Remove internal/config import from AnalyzeUseCase (#383)
    • Reuse visited state in return reachability walk (#385)
    Open source →
  51. v1.15.0 08 Apr 2026
    Release notes

    Added

    • Add raw code metrics to complexity analysis (#380)

    Refactored

    • Use system analysis in check command (#379)
    Open source →
  52. v1.14.0 31 Mar 2026
    Release notes

    Added

    • Add Cognitive Complexity metric with SonarQube-style calculation (#370)
    • Improve display of __main__ top-level code suggestions (#375)

    Refactored

    • Remove top suggestions from terminal output (#369)
    • Refactor AnalyzeUseCase to depend on AnalyzeOutputFormatter interface (#376)
    Open source →
  53. v1.13.1-0.20260324025427-410441c12025 24 Mar 2026 pre-release

    Nothing published for this version

  54. v1.13.0 21 Mar 2026
    Release notes

    Added

    • Add neutral_prefixes config for architecture layer detection (#365)

    Fixed

    • Add missing IsAbstract and Description fields to TOML layer/rule types (#362)
    • Use match position as tie-breaker in findLayerForModule (#361)
    • Replace detectLayerFromModule heuristic with findLayerForModule (#360)
    • Resolve layer misclassification for ambiguous module paths (#359)
    • Propagate architecture layers and rules from TOML config (#356)

    Refactored

    • Extract color hex values into CSS custom properties and Go constants (#351)

    Testing

    • Add architecture layer integration tests (#363)
    Open source →
  55. v1.12.0 03 Mar 2026
    Release notes

    Added

    • Add actionable suggestions to analyze output (#347)

    Dependencies

    • Bump the go-dependencies group with 2 updates (#349)
    Open source →
  56. v1.11.1 22 Feb 2026
    Release notes

    Fixed

    • Generate default_config.toml dynamically from domain defaults (#343)

    Style

    • Restyle HTML output with professional data-first palette (#345)

    Documentation

    • Update README.md
    Open source →
  57. v1.11.0 17 Feb 2026
    Release notes

    Added

    • Add LCOM4 class cohesion metric (#340)
    • Show README badge snippet after health score output (#331)

    Fixed

    • Shorten HTML tab labels to prevent wrapping (#341)
    • Exclude Type-3 from default enabled clone types (#338)
    • Correct APTED key-root DP ordering (#337)

    Performance

    • Add Jaccard pre-filter to minimize APTED calls (#339)

    Documentation

    • Add algorithm documentation for all analysis engines (#330)
    • Redesign README header with centered logo (#329)

    Testing

    • Add unit tests for MCP server handlers (#332)
    Open source →
  58. v1.10.2 07 Feb 2026
    Release notes

    Fixed

    • Calibrate clone detection thresholds and scoring (#327)
    • Improve CBO analysis with Union type support and score calibration (#326)
    • Extend clone memory test timeout to 180s (#325)
    Open source →
  59. v1.10.2-0.20260206140109-a90a6862b179 06 Feb 2026 pre-release

    Nothing published for this version

  60. v1.10.1 05 Feb 2026
    Release notes

    Added

    • Add CFG support for Walrus operator (#322)
    • Add missing error code constants (#320)

    Fixed

    • Improve config file discovery from target paths (#323)

    Enhanced

    • Add test coverage for ast_features.go (#321)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive