I had the privilege of speaking at TrailheaDX this year about how we use Salesforce DX here at CRM Science. As much as I love to speak about DX, the main reason why I attend these conferences are to learn more about what the platform currently provides, and what we can look forward to in the future from it. This year’s TDX did not disappoint in announcements. Here are the three key takeaways I learned about Salesforce from this year’s conference:
1. Solving the “Happy Soup” Issue
The Salesforce DX keynote began with a very frank message from Salesforce to developers - we know you are having problems adapting to DX, and we want to help you with it.
The issue they are referring to has been called the “Happy Soup” problem within the development community. Salesforce DX is a package-based system, so it requires the developer to break apart their existing code base into individual projects. These projects then return back into the sandbox and production org as unlocked packages.
However, developers have gone many years without such modularization in their sandboxes, and so all their content is mixed together in a “happy soup” on their orgs. The issue that developers are facing now is that they are having a very hard time breaking apart that soup into their DX projects.
Salesforce is responding to this issue by developing the Dependency API - targeted for pilot in Summer ’18. The API will allow developers to query for any metadata component and find all other components that are being referenced within it. The API will also allow developers to query any components and find all other components that reference it.
It will still be up to developer to analyze the results of these queries to figure out the best way of breaking apart their happy soup. But as Andrew Fawcett demonstrated during the keynote, the data can be easily imported into a graphical chart to give you a visual representation of your soup.
Salesforce is also going to improve on its own documentation to clearly state what components are available for use in DX scratch orgs, Metadata API, and unlocked packaging. This status report will be consolidated into one single table, and the documentation will be updated in real time and more and more components are added to each channel.
2. Adding More Power to the CLI
The keynote continued with the announcement of two major upgrades to the DX CLI. The first was the introduction of the Salesforce DX Core Library. This library allows developers to create their own extensions to the CLI using Node.JS. They will have access to Salesforce authentication, project information, and the ability to output back to the CLI in the same format used by any other command. Develop