2.3.0.1 release notes

 2.3.0.1

  • Major restructuring of the IC code base - This build includes the results of a long-desired restructuring of the IC code base to orient things along discrete feature boundaries.

    Without going into too much detail, the Salesforce platform has evolved tremendously over the past decade since IC was first started, e.g., Visualforce → Aura (then just called "Lightning") → LWC (also loosely termed "Lightning"); the introduction, release, and ongoing evolution of Salesforce DX; the introduction, release, and recent sunsetting of Salesforce Functions; etc. Features that related to one another in a more simple fashion early on, e.g., Visualforce/Aura and, later, Aura/LWC, no longer had such simple relationships after years of evolution and refinement. In many places, though, the IC code base still reflected those earlier, simpler days, often resulting in indistinct boundaries between distinct features.

    Starting with this build, feature boundaries are very well-defined. Features include things like language and file type support (Apex/SOQL/SOSL, static resources, Flow, CSS/JavaScript extensions, SAQL, DataWeave, etc.), presentation tier framework support (Visualforce, Aura, LWC), external tool integrations (Salesforce DX, PMD, licensing, etc.), and more.

    So given that this is really an "under-the-hood" type of change, what does it do for you, and perhaps more importantly, what does it do to you?

    I'll actually start with the latter. Obviously a change of this magnitude runs a non-trivial chance of introducing regressions. I've been executing full regression tests along the way and fixing the resulting issues, but with an application of IC's complexity, there's a certain class of issues that are best found by just using the app. As a result, I decided to use this as an opportunity to implement a little side project I'd been mulling for a while and go deep as a true first-class IC user again for a stretch. That exercise definitely kicked over a few lurking issues, but I can happily say that everything has been running smoothly for a nice stretch now. That doesn't mean there aren't potentially still some issues — and if you run into any, by all means, let me know via the public issue tracker, email, the public discussion groups, etc. — but I feel quite confident (famous last words?) that there's not likely anything major lurking out there at this point.

    Okay, so what does this do for you? Well, hopefully — and this has yet to bear out in practice — it allows me to implement new features, enhancements, bug fixes, etc., more quickly and confidently given the more discrete separation-of-concerns in the IC code base. I say it has yet to be proven, but that's not entirely true because, as I've been working on my side project, I've kept a running list of things that weren't working properly or perhaps as well as I'd have expected/hoped, and I've taken care of them. I can definitely say that this new code base organization made that work materially easier and smoother.

    So anyway, the bottom line is that things should continue to work (at least) as well as before. If they don't, please let me know what you've found — ideally clearly describing how it worked before vs. how it works now — and I'll take care of it ASAP.

    Oh, and I've also updated the Debug Logging page to reflect this repackaging. If you've enabled debug logging for some set of features in the past — perhaps at my prompting while working with you on an issue, or perhaps just to get more insight into what's going on — you'll need to update the debug log channels to reflect this repackaging.

  • Issue 2482 (re-redux) - I found a few other variations on the original bug with auto-imports of symbols from local custom LWC components. To the best of my knowledge, things should be fully addressed now, but if you find another variation that's not resulting in a correct import, please let me know.
  • Issue 2502 - Fixed a regression introduced in 2.3.0.0 with Tooling API SOQL query execution where only the Id field was being included in the result set for most Tooling API SObject types.
  • Fixed an issue with gutter icons for SLDS icon references. They should all be shown now. Again, if you find a situation where you're referencing an SLDS icon and you're not seeing a preview of that icon in the editor gutter area, please let me know.
  • Fixed an issue with LWC braced expression references to non-getter/setter functions inherited from a JavaScript controller base class.
  • Fixed an issue with improperly encoded multi-byte character set data when exporting SOQL Query results to a CSV file.
  • Other fixes and minor enhancements.