The AMA has just started, and I’ll use this post to make notes and update once the webinar has been released in a few days.
Arabella wants questions. I suspect she’ll get some 🙂 (apparently there were approximately 70 questions within minutes of the webinar starting) …
Principles of Modern Software Delivery
- source driven
- orgs easy to create and destroy
- metadata and code now modular
- development around team collaboration
- development based on OSS and standards
Modernize the Developer Experience
- all through the application lifecycle management process
- make the developer more productive, and provide more benefit
Developer Controlled Packages
According to Dileep, Developer Controlled Packages are a bit of a mouthful and will be referred to as Unlocked Packages going forward.
If I’ve inherited a big org which has not been anywhere near source control, what do I do?
- think about what has been put into the org
- no longer think of an org as a single container
- goal to deploy packages to the org instead of one large thing
- are there different groups, application, users?
- find projects which make sense as discrete packages and extract them, using MetaDataApi to build package.xml files. Using the package manager will spider through dependencies, allowing you to understand what relationships there are
Can I use Microsoft TFS with DX?
Yes – any source control system will work.
Any plans to break apart profiles and permission sets?
Salesforce now recommend using permission sets instead of profiles.
I’ve gone through some tutorials about converting an existing org and I get pages and pages of errors. What should I do?
A scratch org is an empty org, and nothing is copied automatically to it. Any errors are likely to be that source which is a dependency is not included. Or perhaps the org settings are not correct.
First look at org shape. They are looking at Org Shape Templates, coming into beta sometime this year which will allow us to extract the definition of an org. Any issues, report it to the Trailblazer community.
Second, look at the source you’re pushing into the org.
Is the goal to support all functionality in Unlocked Packages?
For someone getting started with DX, what toolset do you recommend?
Visual Studio Code. Language server is embedded into the plugin. Lots of functionality.
Force.com IDE2, which ran on Eclipse, is now deprecated.
Any IDE1 features will be ported to VS Code and then be deprecated.
Is there any hard limit on metadata that we can push to a scratch org?
The limit is 10,000 files, as it is backed by the MetaData API.
Is DX production ready?
Yes. DX is built on existing APIs and tooling. Are there still things to be done? Yes, but they’re working on it. Regarding pricing, there is no cost for DX. Scratch orgs have an entitlement based on the license of your org. Additional orgs over that can be purchased.
How do packages work with AppExchange
How does this work when we have dependencies?
Dileep has an FAQ dealing with this kind of question (update this with the url), and go to the Trailblazer community.
What is the best way to convert an existing sandbox to a scratch org? I’ve followed recommended approach but get lots of errors
(similar question to earlier)
Wade: usually not that you have lots of errors, but often, one thing is the root cause of it. Don’t try to throw everything into the scratch org as there will be things in the source org that can’t be brought over as is.
Think of Dreamhouse. Christophe would not have started by putting everything into one scratch org, instead looking at what can be broken down into smaller pieces.
Dave: try to limit to a single business process; are you trying to look up data from an external service and display in a side bar, then look at these as discrete processes.
Data has many levels of relationship. Can we export and import, maybe using plan flag?
Export individual json files, or use the data plan which exports relationships. Plans have limitations, like crafting a SOQL statement which the CLI can understand.
Tooling today is not as robust as they would like.
Example issues that devs are talking about:
- Limitation on record numbers
- Can’t export record types
- Admin won’t allow me to extract data from Prod
The DX tooling is not however meant to be used for data migration.
My questions (which I didn’t ask quickly enough…) :
- For monolithic code bases, with lots of custom code, and custom fields, will an example be created which will show the best practices for handling this?
- If two Locked Packages rely on custom fields on standard objects, how would we handle this?
Anyone watching want to point out anything I’ve gotten wrong, please let me know…