SlideShare a Scribd company logo
1 of 23
Download to read offline
Our move to Salesforce DX and
Unlocked Packages
@FabienTaillon
Fabien Taillon, Salesforce MVP – CTO @
Salesforce MVP
CTO @ Texeï
Paris Developer Group co-leader
French Touch Dreamin team
Doing Salesforce developments since 2009
Who am I
Fabien Taillon
What is DX
Improve the Developer Experience
Plan
Code
BuildTest
Release
CLI for integration
with 3rd party editors
Scratch orgs for
devs, built off of
source
Continuous Delivery/
build automation
Continuous
integration with test
automation
Sandboxes for
performance testing,
UAT, staging
Packaging to
streamline
delivery to prod
VCS as the
source of truth
IDEs, Text
Editors,
Language
Services
• Packages are built directly from source
• One metadata belongs to only one 2GP
• Only one owner, another team can’t modify something that is part of your package
• Whole project installed
• Not just last modifications pushed to the happy soup like what can be done with ant/Change Sets
• Each Package has a version number
• ie. Not pushing 2 modified Apex Classes, but upgrading from v1.1 to v1.2
• Deals with deletions
• No more additional destructiveChanges.xml or manual action
• Dependencies between Packages
• Repeatable and predictable
What is Second-Generation Packaging
Hint: it’s great
Modularizing your code
Organizing configurations, dependencies and metadata into projects
• 1st step: Internal tool for developer:
• No dependency with existing metadata
• Small user base
Splitting our happy soup into modules
Moving to DX at our own path
• 1st step: Internal tool for developer:
• No dependency with existing metadata
• Small user base
• 2nd step: App for all employee
• Only a few dependencies on objects (Account, Contact…) and no common field
• Everything in one Package
Splitting our happy soup into modules
Moving to DX at our own path
• 1st step: Internal tool for developer:
• No dependency with existing metadata
• Small user base
• 2nd step: App for all employee
• Only a few dependencies on objects (Account, Contact…) and no common field
• Everything in one Package
• 3rd step: Project 2 grew + new DX Projects
• Refactoring with Base Package + 2 dependent Packages (1 per project)
Splitting our happy soup into modules
Moving to DX at our own path
Working with Salesforce DX
DX development flow
sfdx force:package:version:create
sfdx force:package:install
sfdx force:package:version:promote
sfdx force:package:install
Continuous Integration
Validating each commit
LOCAL
code validation
test classes
push
Continuous Integration
Validating each commit
LOCAL
code validation
test classes
push
Continuous Integration
Validating each commit
LOCAL
code validation
test classes
push
Continuous Deployment
How we did it
Base Package
SCRATCH ORG UAT PREPROD PRODDEV
automatic
Projects Packages
manual
automatic automatic automatic
automatic manualmanual manual
manual
Use your own tools
We use
Use your own tools
We use But you can use whatever you want!
And more...
We currently have:
• DX Dev + Package 2
• DX Dev + Ant
• Sandbox Dev + ant
Why ?
• A few stuff is not there for DX
• ex: Audience in Community à Manual step for every Scratch Org creation
• Team/Contractual stuff
• Another team on the same org has not move to DX yet à Repo can’t be the source of truth for a
few stuff
DX is not all or nothing
We still have a lot of different ways to manage our projects
Install dependent Packages
First step before using dependent package
Project 1 Package Project 2 Package
Base Package
depends on
Package installation needed for:
• Package creation
ühandled by Salesforce
• Development
• Manual step during Scratch Org setup
• Continuous Integration
• Need to maintain Base Package Id both in
• sfdx-project.json
• CI script
Install dependent Packages
sfdx force:package:install --package 04t3xEi15s0Awe50mE
Dependent Id used in several places
In sfdx-project.json In CI script / Dev Scratch Org setup
Install dependent Packages
sfdx force:package:install --package 04t3xEi15s0Awe50mE
Dependent Id used in several places
In sfdx-project.json In CI script / Dev Scratch Org setup
Automatically install all Package Dependencies:
à sfdx texei:package:dependencies:install -k “1:MyPackage1Key 2: 3:MyPackage3Key” -w 30
https://github.com/texei/texei-sfdx-plugin
Automatically install dependent Packages
Missing something ? Custom sfdx plugin to the rescue!
Trailhead Modules
One awesome Trail on DX, lot’s of awesome Modules
https://trailhead.salesforce.com/en/trails/sfdx_get_started
Salesforce DX Development Model
Quick Start: Salesforce DX
App Development with Salesforce DX
Unlocked Packages for Customers
Quick Start: Unlocked Packages
Continuous Integration Using Salesforce DX
Git and GitHub Basics
Resources
Working with Modular Development and Unlocked Packages – Blog serie:
https://developer.salesforce.com/blogs/2018/06/working-with-modular-development-and-
unlocked-packages-part-1.html
Architecting Unlocked Packages in Your Salesforce Org:
https://www.youtube.com/watch?v=MY2_AfjtBp8
Our move to Salesforce DX and Unlocked Packages

More Related Content

What's hot

DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...Simplilearn
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをi_yudai
 
提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?Chen Cheng-Wei
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps ExplainedDevOpsAnon
 
Interview preparation devops
Interview preparation devopsInterview preparation devops
Interview preparation devopsMallikarjuna G D
 
Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話 Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話 Toshihiro Araki
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?Weaveworks
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Simplilearn
 
Azure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with GitAzure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with GitEng Teong Cheah
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersRyan Hodgin
 
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編Masahito Zembutsu
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices Nebulaworks
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようKazuto Kusama
 
DCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDocker, Inc.
 
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Etsuji Nakai
 
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 

What's hot (20)

DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
 
提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps Explained
 
Interview preparation devops
Interview preparation devopsInterview preparation devops
Interview preparation devops
 
Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話 Machine configoperatorのちょっとイイかもしれない話
Machine configoperatorのちょっとイイかもしれない話
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
Git Tutorial For Beginners | What is Git and GitHub? | DevOps Tools | DevOps ...
 
Azure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with GitAzure DevOps - Version Controlling with Git
Azure DevOps - Version Controlling with Git
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
 
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices
 
Pave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal PlatformPave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal Platform
 
Was ist Docker?
Was ist Docker?Was ist Docker?
Was ist Docker?
 
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしようCloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
 
DCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on KubernetesDCSF 19 Deploying Rootless buildkit on Kubernetes
DCSF 19 Deploying Rootless buildkit on Kubernetes
 
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!Docker活用パターンの整理 ― どう組み合わせるのが正解?!
Docker活用パターンの整理 ― どう組み合わせるのが正解?!
 
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 

Similar to Our move to Salesforce DX and Unlocked Packages

Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...Simplilearn
 
Modern Gentlemen's WordPress
Modern Gentlemen's WordPressModern Gentlemen's WordPress
Modern Gentlemen's WordPressEnrico Deleo
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Understanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesJ S Jodha
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptxVgPolampalli
 
Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCodecamp Romania
 
DevOps Service | Mindtree
DevOps Service | MindtreeDevOps Service | Mindtree
DevOps Service | MindtreeAnikeyRoy
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Chocolatey Software
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Michel Buczynski
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubDevOps.com
 
CloudFest 2018 Hackathon Project Results Presentation - CFHack18
CloudFest 2018 Hackathon Project Results Presentation - CFHack18CloudFest 2018 Hackathon Project Results Presentation - CFHack18
CloudFest 2018 Hackathon Project Results Presentation - CFHack18Jeffrey J. Hardy
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Edureka!
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsDavid Schneider
 
Transform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOpsTransform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOpsGaurav Sharma
 

Similar to Our move to Salesforce DX and Unlocked Packages (20)

Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
Devops
DevopsDevops
Devops
 
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
DevOps Tutorial For Beginners | DevOps Tutorial | DevOps Tools | DevOps Train...
 
Modern Gentlemen's WordPress
Modern Gentlemen's WordPressModern Gentlemen's WordPress
Modern Gentlemen's WordPress
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Understanding NuGet implementation for Enterprises
Understanding NuGet implementation for EnterprisesUnderstanding NuGet implementation for Enterprises
Understanding NuGet implementation for Enterprises
 
Dev ops
Dev opsDev ops
Dev ops
 
Xebia deploy it
Xebia deploy itXebia deploy it
Xebia deploy it
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditech
 
DevOps Service | Mindtree
DevOps Service | MindtreeDevOps Service | Mindtree
DevOps Service | Mindtree
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
Facilitating continuous delivery in a FinTech world with Salt, Jenkins, Nexus...
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
 
Salesforce DX for Admin v2
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2
 
CloudFest 2018 Hackathon Project Results Presentation - CFHack18
CloudFest 2018 Hackathon Project Results Presentation - CFHack18CloudFest 2018 Hackathon Project Results Presentation - CFHack18
CloudFest 2018 Hackathon Project Results Presentation - CFHack18
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Office 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft TeamsOffice 365 Developer Bootcamp: Microsoft Teams
Office 365 Developer Bootcamp: Microsoft Teams
 
DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
Transform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOpsTransform Agile Development With Practical DevOps
Transform Agile Development With Practical DevOps
 

Recently uploaded

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Recently uploaded (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Our move to Salesforce DX and Unlocked Packages

  • 1. Our move to Salesforce DX and Unlocked Packages @FabienTaillon Fabien Taillon, Salesforce MVP – CTO @
  • 2. Salesforce MVP CTO @ Texeï Paris Developer Group co-leader French Touch Dreamin team Doing Salesforce developments since 2009 Who am I Fabien Taillon
  • 3. What is DX Improve the Developer Experience Plan Code BuildTest Release CLI for integration with 3rd party editors Scratch orgs for devs, built off of source Continuous Delivery/ build automation Continuous integration with test automation Sandboxes for performance testing, UAT, staging Packaging to streamline delivery to prod VCS as the source of truth IDEs, Text Editors, Language Services
  • 4. • Packages are built directly from source • One metadata belongs to only one 2GP • Only one owner, another team can’t modify something that is part of your package • Whole project installed • Not just last modifications pushed to the happy soup like what can be done with ant/Change Sets • Each Package has a version number • ie. Not pushing 2 modified Apex Classes, but upgrading from v1.1 to v1.2 • Deals with deletions • No more additional destructiveChanges.xml or manual action • Dependencies between Packages • Repeatable and predictable What is Second-Generation Packaging Hint: it’s great
  • 5. Modularizing your code Organizing configurations, dependencies and metadata into projects
  • 6. • 1st step: Internal tool for developer: • No dependency with existing metadata • Small user base Splitting our happy soup into modules Moving to DX at our own path
  • 7. • 1st step: Internal tool for developer: • No dependency with existing metadata • Small user base • 2nd step: App for all employee • Only a few dependencies on objects (Account, Contact…) and no common field • Everything in one Package Splitting our happy soup into modules Moving to DX at our own path
  • 8. • 1st step: Internal tool for developer: • No dependency with existing metadata • Small user base • 2nd step: App for all employee • Only a few dependencies on objects (Account, Contact…) and no common field • Everything in one Package • 3rd step: Project 2 grew + new DX Projects • Refactoring with Base Package + 2 dependent Packages (1 per project) Splitting our happy soup into modules Moving to DX at our own path
  • 9. Working with Salesforce DX DX development flow sfdx force:package:version:create sfdx force:package:install sfdx force:package:version:promote sfdx force:package:install
  • 10. Continuous Integration Validating each commit LOCAL code validation test classes push
  • 11. Continuous Integration Validating each commit LOCAL code validation test classes push
  • 12. Continuous Integration Validating each commit LOCAL code validation test classes push
  • 13. Continuous Deployment How we did it Base Package SCRATCH ORG UAT PREPROD PRODDEV automatic Projects Packages manual automatic automatic automatic automatic manualmanual manual manual
  • 14. Use your own tools We use
  • 15. Use your own tools We use But you can use whatever you want! And more...
  • 16. We currently have: • DX Dev + Package 2 • DX Dev + Ant • Sandbox Dev + ant Why ? • A few stuff is not there for DX • ex: Audience in Community à Manual step for every Scratch Org creation • Team/Contractual stuff • Another team on the same org has not move to DX yet à Repo can’t be the source of truth for a few stuff DX is not all or nothing We still have a lot of different ways to manage our projects
  • 17. Install dependent Packages First step before using dependent package Project 1 Package Project 2 Package Base Package depends on Package installation needed for: • Package creation ühandled by Salesforce • Development • Manual step during Scratch Org setup • Continuous Integration • Need to maintain Base Package Id both in • sfdx-project.json • CI script
  • 18. Install dependent Packages sfdx force:package:install --package 04t3xEi15s0Awe50mE Dependent Id used in several places In sfdx-project.json In CI script / Dev Scratch Org setup
  • 19. Install dependent Packages sfdx force:package:install --package 04t3xEi15s0Awe50mE Dependent Id used in several places In sfdx-project.json In CI script / Dev Scratch Org setup
  • 20. Automatically install all Package Dependencies: à sfdx texei:package:dependencies:install -k “1:MyPackage1Key 2: 3:MyPackage3Key” -w 30 https://github.com/texei/texei-sfdx-plugin Automatically install dependent Packages Missing something ? Custom sfdx plugin to the rescue!
  • 21. Trailhead Modules One awesome Trail on DX, lot’s of awesome Modules https://trailhead.salesforce.com/en/trails/sfdx_get_started Salesforce DX Development Model Quick Start: Salesforce DX App Development with Salesforce DX Unlocked Packages for Customers Quick Start: Unlocked Packages Continuous Integration Using Salesforce DX Git and GitHub Basics
  • 22. Resources Working with Modular Development and Unlocked Packages – Blog serie: https://developer.salesforce.com/blogs/2018/06/working-with-modular-development-and- unlocked-packages-part-1.html Architecting Unlocked Packages in Your Salesforce Org: https://www.youtube.com/watch?v=MY2_AfjtBp8