Skip to content

Changelog

All notable changes to BetterPy are documented here. This project uses CalVer (Calendar Versioning) with the format YYYY.MM.PATCH[-channel.build].

For the full changelog, see CHANGELOG.md on GitHub.


2026.04.14 - 2026-04-27

🚀 Features

  • Add test/production editor tab mode
  • Show BetterPy plugin version in the status bar widget tooltip
  • Ship message-console-filter in stable
  • Link settings features to versioned docs

📚 Documentation

  • Add persistent Marketplace and GitHub links to the docs site
  • Point changelog links to the public GitHub repo
  • Remove redundant README text

2026.04.13 - 2026-04-27

🚀 Features

  • (diagnostics) Copy Diagnostic Data now includes operating system, Python interpreter version, and the list of disabled features
  • Ship dict-access in stable with dedicated docs
  • Ship generate-class-actions in stable
  • Ship change-visibility feature in stable

🐛 Bug Fixes

  • Use implementation for navigation and usage extensions in plugin.xml

🚜 Refactor

  • (core) Move always-on actions out of feature packages
  • Move feature schema to META-INF

2026.04.12 - 2026-04-25

🚀 Features

  • Structural search
  • Move py-goto-target-presentation to stable

🧪 Testing

  • Migrate from JUnit3 to JUnit 4

⚙️ Miscellaneous Tasks

  • Bump intelliJPlatform to 2.15.0
  • Bump zensical to 0.0.36

2026.04.11 - 2026-04-24

🚀 Features

  • Extend navigation bar to show file members

🧪 Testing

  • Migrate test suite from JUnit 3 to JUnit 4

2026.04.10 - 2026-04-21

🚀 Features

  • Move copy-method-annotations-from-parent to TYPING_TYPE_HINTS
  • Mark more features as incubating
  • Auto-stamp since field in feature metadata at build time
  • Add metadata row to docs rendering
  • Require 'since' for features in non-wildcard feature-sets
  • Set since=2026.04.05 for stable features; move maturity tooltip to badge only

🐛 Bug Fixes

  • (intentions) Redirect MakeParameterMandatory to root base class in multi-level hierarchies
  • (docs) Collapse consecutive horizontal rules left by stripped sections
  • (docs) Load feature metadata from META-INF XML blocks
  • (docs) Pre-expand feature blocks via docs_ext before handing off to zensical
  • (docs) Drop empty group rows from Features Overview table
  • (docs) Escape | in feature displayName for reference tables
  • (docs) Remove "Default" column from reference tables

💼 Other

  • Recover lost docs/plugin.xml/feature-metadata chain (43b9f7d8..4f39217a)

🚜 Refactor

  • (docs) Unify on RELEASE_CHANNEL env and --channel CLI flag
  • Build plugin.xml dynamically
  • Include plugin registrations on build time
  • Include *.actions.xml files
  • Move feature file content to XML fragments
  • Use test annotations to skip tests for features that are not configured
  • (plugin-xml) Inline *.actions.xml fragments into canonical feature files
  • Split _bootstrap.xml registrations into owning feature XMLs
  • Retire TypeEvalContexts.java

🧪 Testing

  • Validate metadata block
  • Validate feature id matches filename
  • Skip tests for excluded features in stable channel

⚙️ Miscellaneous Tasks

  • Add purge release script
  • (docs) Drop internal Pages deploy (plan does not support Pages on private repos)
  • Upgrade to intellij-platform-plugin-template v2.5.0
  • Disable jobs targeting dev branch
  • Bump version to 2026.04.10