2.2.5.3 release notes

 2.2.5.3

  • Support for Python Salesforce Functions - Added full support for development of Salesforce Functions in Python in addition to the existing support for Java, JavaScript, and TypeScript. A demonstration video is available.
    Python support includes:
    • Creation, removal, execution, and monitoring of Python functions in the Salesforce Functions Dashboard. Python virtual environments are managed automatically as functions are created and removed.
    • Full support for Python language features when used with a compatible JetBrains IDE (see below) including code completion, reference navigation, static code analysis, source code formatting, interactive debugging, etc.
    A few things to note about Python functions support:
    • A Python interpreter must be installed in the local operating system and available via the system search path (i.e., PATH environment variable). In a more general sense, please ensure that all pre-requisites listed on the page linked above are properly installed.
    • Full Python language support is available in:
      • IntelliJ IDEA Ultimate Edition with the Python plugin installed and enabled
      • IntelliJ IDEA Community Edition with the Python Community Edition plugin installed and enabled
      • PyCharm Professional and Community Editions
      Python language support is not available for WebStorm, PhpStorm, or RubyMine. Those IDEs lack Python language editor features, interactive debugging of Python functions, and assistance with management of declared requirements. It is still possible to manage and execute Python functions in those IDEs, but an IDE with full Python language support is strongly recommended for Python function development, particularly with the availability of multiple free options.
    • If you are prompted to install/enable the Python plugin in IntelliJ IDEA, you will not be prompted to restart the IDE after the plugin is installed/enabled. However, this seems to leave the IDE in an incomplete state because IC2's Python plugin extensions are not activated. Please make sure to restart the IDE process after installing/enabling the Python plugin to ensure the correct overall state. Note that I have filed an issue with JetBrains for this seemingly incorrect behavior.
    • When a Python function is started locally not using a Docker container in an IDE with Python support, it is always started via the IDE's debugger even if started using the Run action. This is because there is (currently?) no support for starting a Python function for remote debugging via the sf command, so instead the function is executed directly by the IDE's debugger.
    • The Python functions feature is currently in a pre-release state from Salesforce, so support in IC2 should be similarly considered pre-release. If issues are found with function-specific behavior, please first see if they can be reproduced in isolation of IC2 using the corresponding command-line invocations. If not—or if the issues are specifically with IC2 functionality—please log an issue in the IC2 public issue tracker with clear steps to reproduce.
  • Issue 2291 - Fixed an issue with custom labels file resolution when multiple projects are open with a module with the exact same name.
  • Issue 2294 - Added missing constructor signature for Auth.OAuthRefreshResult. The OST must be regenerated to see the result of this change.
  • Issue 2297 - Added a longer timeout for scratch org creation.
  • Issue 2299 - Added proper support for user mode DML operations via the optional as system/user clause for DML operators.
  • Issue 2302 - Addressed a few typing changes for LWC modals including making LightningModal the default export for lightning/modal, updating the LWC modal file template to reflect that change, and making the open method return Promise<any> to reflect that it will be fulfilled with whatever value is passed to the modal's close method.
  • Changed a few composite keywords to be handled as such by IC2's Apex parser, most notably with/without/inherited sharingas system/user (see issue 2299 above), and System.runAs. The main end user-facing aspect of this change is that these composite keywords are now offered atomically as code completions instead of having to type/accept the constituent words, though under-the-hood they also afford some nice parser simplifications by removing or limiting the extent to which certain keywords are overloaded.
  • Fixed an issue where namespaces and types would be offered as available expressions in extraction refactorings incorrectly.
  • Fixed a few small Apex code formatter issues.
  • Other minor fixes and improvements.