Skip to content

Add release notes for 2.4.0 release#1145

Merged
philippjfr merged 3 commits into
mainfrom
changelog_2.4.0
May 21, 2026
Merged

Add release notes for 2.4.0 release#1145
philippjfr merged 3 commits into
mainfrom
changelog_2.4.0

Conversation

@philippjfr
Copy link
Copy Markdown
Member

@philippjfr philippjfr commented May 21, 2026

Param 2.4.0 brings first-class static typing support to the entire Param ecosystem — all major parameter types now carry precise type information that flows through to your IDE and type checker, with types inferred directly from your existing parameter declarations. The release also adds a lazy mode to reactive expressions (rx) and includes performance optimizations that speed up parameter initialization in large class hierarchies.

Many thanks to @philippjfr, @hoxbro and @camriddell for their contributions to this release.

🚀 Features

  • Implement descriptor factory typing system by implementing Parameter generics (Parameter[_T]) and add typed overloads for all major Parameter subclasses and add typing for public APIs (#1066, #1112, #1130, #1131, #1132, #1134, #1136, #1137, #1141)
  • Add py.typed PEP 561 marker so type checkers automatically recognize Param's inline annotations without requiring separate stubs (#1066)
  • Add rx(..., lazy=) argument (#1106)

⚡ Performance

  • Add caches to speed up Parameter initialization (#1124)
  • Optimize Parameter instantiation (#1122)
  • Implement custom __copy__ for Parameter to speed up instance Parameter creation (#1128)

🐛 Bug Fixes

  • Use re.search for param.String regex check (#1142)

📚 Documentation

  • Add Typing user guide (#1139)

🧪 Tests & CI

  • Add tests/assert_types.py with assert_type() assertions verified in CI (#1066)
  • Add CI jobs for mypy, pyright, pyrefly, and ty (#1066, #1140)
  • Add zizmor for GitHub Actions security scanning (#1143)

Comment thread doc/releases.md Outdated
Comment thread doc/releases.md Outdated
Comment thread doc/releases.md
Comment thread doc/releases.md Outdated
@philippjfr philippjfr merged commit 717c6be into main May 21, 2026
17 checks passed
@philippjfr philippjfr deleted the changelog_2.4.0 branch May 21, 2026 12:31
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.

3 participants