Merge branch 'main' into cjm/metaclass
* main:
Add a "release-gate" step to the release workflow (#24365)
Disallow starred expressions as values of starred expressions (#24280)
[`pyupgrade`] Ignore strings with string-only escapes (`UP012`) (#16058)
[ty] Improve consistency and quality of diagnostics relating to invalid type forms (#24325)
[flake8-type-checking] Clarify import cycle wording for TC001/TC002/TC003 (#24322)
[`flake8-errmsg`] Avoid shadowing existing `msg` in fix for `EM101` (#24363)
`RUF072`: skip formfeeds on dedent (#24308)
Replace unmaintained `unic-ucd-category` crate with `icu_properties` (#24344)
[ty] Replace markdown hard line breaks in snapshot tests (#24361)
[ty] Move snapshot for code action test with trailing whitespace to external file (#24359)