Glossaire Salesforce DevOps

Ancestry

La filiation déclarée entre versions de package qui indique à Salesforce à partir de quelle version antérieure une nouvelle version doit effectuer sa mise à niveau.

Définition

L'ancestry est la filiation obligatoire qu'une version de package managé déclare vis-à-vis de la version dont elle effectue la mise à niveau, définie via ancestorId ou ancestorVersion dans sfdx-project.json. Salesforce l'utilise pour valider qu'un chemin de mise à niveau est sûr : les champs ne peuvent pas être supprimés puis réajoutés de façon incompatible, le caractère obligatoire ne peut pas être resserré de façon inattendue, et d'autres schémas de mise à niveau destructrice sont détectés avant qu'une version n'atteigne les orgs des abonnés. Les packages déverrouillés (unlocked) n'exigent pas l'ancestry de la même façon, car Salesforce suppose que l'équipe maîtrise les deux côtés de la mise à niveau ; les packages managés l'imposent car une org abonnée qui met à niveau à l'aveugle n'a aucun autre filet de sécurité. Omettre ou mal déclarer l'ancestry est une cause fréquente d'échecs de validation déroutants lors de la création d'une nouvelle version de package managé. Notre guide des pièges 2GP couvre les erreurs d'ancestry qui coûtent un temps de release réel aux ISV.

En pratique

Comment cela fonctionne dans Serpent

Serpent suit automatiquement l'ancestry des versions de package dans le cadre de son workflow de promotion, de sorte que les chemins de mise à niveau restent valides sans qu'un ingénieur release n'ait à déclarer manuellement les versions ancestor pour chaque build. Lorsque l'ancestor déclaré d'une version ne correspond pas à la chaîne de mise à niveau réelle, Serpent le signale avant la création plutôt qu'après l'échec d'une validation Salesforce. Voir 2GP CI/CD dans Serpent pour la place de l'ancestry de version dans le pipeline.

Serpent trace la lignée d'ancestry d'une package version, reliant chaque release à la version dont elle est issue
Questions fréquentes

Ancestry, expliqué

L'ancestry s'applique-t-elle aussi aux packages déverrouillés (unlocked) ?
Salesforce ne l'impose pas de la même façon pour les packages déverrouillés, mais Serpent continue de suivre la filiation des versions de façon cohérente pour les deux types.

Démarrez gratuitement. Pas de carte bancaire, pas d'installation, aucun engagement.

Configuration en moins de 15 minutes. Aucun recrutement DevOps nécessaire.

Curieux de livrer plus vite avant de vous lancer ? Parlons-en

Sans engagement.