Enhancements
- @sh41
- The plugin's "What's New" now shows the last six releases instead of the whole history. Each
version is listed with its release date, so upgrading after skipping a few releases shows what you
missed rather than one undifferentiated list.
- The plugin's "What's New" now shows the last six releases instead of the whole history. Each
Bug Fixes
- @sh41
- Adding an Elixir SDK registers it again. #3888 -
the SDK list stayed empty and "Elixir Facet SDK is not defined" persisted, because setting up the
SDK's paths read the SDK table without a read lock and the resulting error aborted registration
before the SDK reached the list. - A newly added Elixir SDK is paired with the Erlang SDK you picked, rather than whichever one
happened to be registered first. The chosen SDK is not committed until the dialog is applied, and
the pairing was resolved without consulting the dialog's uncommitted SDKs. - The "Configure from mise" action no longer goes missing from the SDK banner. The startup scan
request could be dropped before its collector was listening, leaving the project with no tool
manager scan at all.
- Adding an Elixir SDK registers it again. #3888 -
- #3901 - @sh41
- Semantic syntax highlighting now appears in decompiled
.beamfiles. Function names, types and
the rest were being coloured by the annotators and then discarded before they reached the editor, so
decompiled code showed only the plain lexer colours. v24.0.0 announced this as working; it was not. - Opening a decompiled
.beamfile no longer reports "PsiFile's context does not match the context
of the editor", which reached users as an IDE error report.
- Semantic syntax highlighting now appears in decompiled
Build / CI
- @sh41
-
CHANGELOG.mdis now in Keep a Changelog format and is the
single source of the plugin change notes, rendered by the Gradle Changelog Plugin.
resources/META-INF/changelog.html, which held a separately hand-written copy, is removed - it had
gone stale, so 24.0.0 shipped with v23.9.0 as its newest section. -
Every pull request now needs a
CHANGELOG.mdentry, checked bychangelog.yml: it must land under
## [Unreleased], be a list item, and use a known group. Apply theno-changeloglabel when thereis genuinely nothing to record.
-
The Tag Release workflow validates the tag shape against the
prereleaseinput, that a release is
cut frommain, that the tag is new and increases, and that it matchespluginVersion. -
Plugin verifier reports are now uploaded whenever a verification leg fails, including on pull
requests. Previously the upload was gated on an input that is always empty forpull_request, so
the reports were unobtainable on exactly the runs that needed them and the evidence had to be dug
out of a raw job log. Green runs still upload nothing unless a caller asks. -
Everything scoped to an Elixir/OTP pair is now keyed on the pair:
MIX_HOMEjoinsMIX_ARCHIVES,
and the quoter's_build/depsjoin both. Two OTPs for one Elixir previously shared a build tree
and overwrote each other, and switching versions re-downloaded hex and rebar. The first build per
pair after this change reinstalls and rebuilds once. -
CI now covers OTP 25, and runs a decompiler sweep against OTP 28 for the first time. Two
beam.additionalpairs were added,1.13.4 / 25.3.2.21and1.18.4 / 28.4, chosen to cover OTP
majors rather than Elixir minors: most of the decompiled surface is Erlang and the BEAM chunk formats
track OTP. OTP 25 is now a supported pair - measured locally at 6 560 tests, 0 failures, so its
leg is required and any later change that breaks it fails the pipeline. OTP 28 stays informational:
its 291 failures are all pre-existing Elixir-keyed quoting cases, with no OTP-28 decompiler
failures. -
Switching Elixir/OTP versions now re-runs the tests. The versions reach the test JVM as environment
variables, which Gradle could not see, somise use erlang@X elixir@Yfollowed bycheckreported
the previous pair's results - the task was up to date, and the build cache would even restore
those results after acleanTest. Both test tasks now declare the versions as inputs. -
A transient 5xx from JetBrains' artifact CDN no longer loses a whole test leg. Gradle already treats
repository server errors as retryable, but its default budget is three attempts over about three
seconds;gradle.propertiesnow allows eight from a 3-second doubling backoff, roughly six minutes,
for every build - CI and local alike. -
CI restores the Elixir quoter cache again - it never had.
actions/cacheidentifies an entry by key
and by a version hashed from the literalpath:lines, and the restore and save steps listed
different paths, so they addressed different entries under one key. Every leg missed, rebuilt its
quoter dependencies from Hex, then failed to save against the entry an earlier run had left there -
reported asUnable to reserve cache, which reads as a harmless race between legs. Both steps now
take the path list from one place. -
The test results comment now leads with failures on the required legs, the only figure that
decides whether a pull request can merge, and reportstests per legin place of a cross-leg
union that read 12,913 for a run in which no leg ran more than 6,659.
-