
Andrew Hanna

Andrew Hanna

La definition d'abord : le developpement pilote par la source est le modele ou votre depot Git, et aucune org, fait autorite sur la configuration et le code Salesforce. Les orgs deviennent des environnements jetables vers lesquels vous deployez depuis le depot, plutot que des endroits entre lesquels vous copiez des changements. Tout le reste de ce guide decoule de cette phrase.
Dans ce modele, chaque changement arrive d'abord dans le controle de version et seulement ensuite dans une org. Le depot contient l'etat voulu de l'org. Un deploiement est l'acte de rendre une org conforme a cette intention.
Trois proprietes pratiques l'accompagnent :
Le deploiement d'org a org, par change sets ou par comparaison directe de deux orgs, prend une org vivante comme reference. C'est la vraie distinction, et elle a des consequences.
Notez ce qui n'est pas dans cette liste : la vitesse. Ce modele n'est pas automatiquement plus rapide. Il est reproductible, ce qui est une propriete differente et plus durable.
Le source tracking est la fonction de la plateforme qui enregistre quels composants ont change dans une org ou dans votre projet local depuis la derniere synchronisation, afin de ne recuperer que ce qui a reellement bouge au lieu de tout retirer et de lire un diff.
La limite que l'on rencontre est la couverture. Le source tracking est disponible dans les scratch orgs et dans les sandboxes Developer et Developer Pro. Il ne l'est pas partout, donc un modele pilote par la source doit repondre pour les environnements incapables de suivre les changements : sandboxes full, copies partielles et production. Ce sont exactement les orgs ou naissent les changements non documentes.
On commite le source format. Les deux formats decrivent les memes metadonnees differemment :
package.xml. Modifier un champ
reecrit un gros fichier, donc le diff embarque tout l'objet et la revue devient
bruyante.
sfdx-project.json.
L'effet porte sur la revue et la fusion, pas sur la fonction. De petits fichiers donnent des diffs lisibles et bien moins de conflits quand deux personnes touchent le meme objet, et c'est precisement la situation que ce modele existe pour survivre.
C'est la question que la plupart des explications evitent, et celle qui decide si le modele survit au contact d'une vraie equipe Salesforce. Quelqu'un modifiera toujours quelque chose en production : un correctif a minuit, un admin qui ajoute une valeur de liste, une mise a jour de package qui reecrit des metadonnees que vous aviez commitees.
Tranchez ces trois points avant la migration, pas apres :
La plupart des equipes Salesforce sont des admins et des consultants, pas des utilisateurs de CLI, et c'est la que les migrations calent. Ordonnez les etapes pour que personne n'ait a apprendre Git pour continuer a travailler :
Faut-il que chaque admin apprenne Git ?
Non. Il faut que le depot fasse autorite. Qui manipule Git directement est un choix d'outillage, pas une propriete du modele.
Faut-il convertir toute l'org en source format d'un coup ?
Non. Convertissez par frontiere de package ou par equipe. Un depot partiel reellement faisant autorite sur son perimetre vaut mieux qu'un depot complet auquel personne ne se fie.
Est-ce la meme chose que le CI/CD ?
Non. Le modele pilote par la source decide ou vit la verite. Le CI/CD automatise son transport vers les orgs. Le premier peut exister sans le second, l'inverse n'a guere de sens.
Et les metadonnees non versionnables ?
Certains parametres et composants appartenant a un package ne font pas l'aller-retour proprement. Documentez-les comme exclus et pilotez-les par procedure au lieu de pretendre que le depot les couvre.
Serpent est concu pour exactement l'equipe decrite ici : le depot reste la source de verite pendant que les admins et consultants travaillent dans des tickets, avec deploiements delta, detection de derive et retour arriere en un clic par-dessus. D'autres guides de reference sont dans SF Guides.
Sans engagement.