
Andrew Hanna

Andrew Hanna

Réponse courte : une release AppExchange se déroule en cinq étapes : créer une version bêta du package, la valider, la promouvoir en version released, la relier à votre listing, puis faire migrer vos abonnés. Chaque version de package gérée de seconde génération naît en bêta, la promotion est irréversible, et seuls les packages ayant passé la security review peuvent être poussés dans les orgs abonnées.
sf package version promote transforme
la bêta en version released.
La plupart des équipes ISV font déjà ces cinq étapes quelque part. Ce qui manque, en général, c'est l'ordre, la barrière entre chaque étape et un registre fiable indiquant quelle org abonnée tourne sur quelle version.
L'upgradabilité dépend de l'ancestry, pas du numéro de version que
vous avez saisi. Chaque nouvelle version 2GP déclare un ancêtre dans
sfdx-project.json, et Salesforce recommande
ancestorVersion: HIGHEST pour que l'ancêtre suive automatiquement votre
plus haute version promue. Les clients existants ne peuvent pas migrer vers une
version créée sans ancêtre déclaré : un seul build sans ancêtre produit donc une
version que personne ne peut atteindre.
La promotion est la barrière la plus importante, parce qu'elle ne se défait pas.
La promotion doit partir de votre pipeline, derrière une approbation humaine explicite, jamais du portable qui se trouve authentifié sur le Dev Hub. Le droit de promouvoir est lui-même un contrôle : accordez-le via un permission set plutôt qu'à tous ceux qui ont accès à la CLI.
Pour un premier listing, la security review se place entre la validation et la publication, et c'est le poste le plus long du calendrier. Pour les mises à jour, la logique change. Une review complète n'est pas requise pour chaque patch ou chaque upgrade, et ce qui commande la publication, c'est le statut du listing. S'il affiche Ready to List, vous pouvez publier le listing mis à jour sans soumettre la nouvelle version. S'il affiche Security Review Required, vous ne publiez pas tant que cette version n'est pas validée.
Salesforce mène aussi des re-reviews périodiques, et une version porteuse de changements significatifs les déclenche plus facilement. Budgétez donc du temps de review pour les releases qui touchent l'architecture, l'authentification ou les appels sortants, et arrêtez d'en prévoir pour les corrections de routine. Vérifiez les règles en vigueur dans le guide ISVforce sur la mise à jour d'un listing avant de bâtir un trimestre dessus.
Trois leviers, du moins au plus intrusif :
Un déploiement progressif qui tient : vos propres orgs d'abord, puis les orgs partenaires et sandbox, puis une petite cohorte de clients volontaires, puis tous les autres par lots planifiés hors heures de pointe. Laissez entre deux cohortes le temps qu'un vrai ticket de support arrive, ce qui représente en général une journée ouvrée complète et non une heure.
Ce quatrième point est celui que les équipes repoussent et regrettent, car la qualité du support en dépend plus que de tout le reste. Serpent couvre les workflows 1GP, 2GP et managed package, la résolution des dépendances entre packages et la gestion des versions à travers les orgs abonnées sur toutes les formules, y compris la formule gratuite. D'autres playbooks de packaging sont dans notre bibliothèque SF Guides.
Puis-je annuler la promotion d'une version de package ?
Non. Un numéro de version ne peut être promu et publié qu'une fois, et le changement est irréversible. Traitez la promotion comme une décision de release, pas comme une étape de build.
Faut-il une nouvelle security review à chaque release ?
Non. Une review complète n'est pas exigée pour chaque patch ou upgrade. La publication dépend du statut de votre listing, et Salesforce peut demander une re-review périodique si une version change significativement.
Pourquoi mon client ne peut-il pas passer à ma dernière version ?
Le plus souvent, l'ancestry. Les clients existants ne peuvent pas migrer vers une version créée sans ancêtre déclaré : vérifiez donc l'ancêtre avant tout le reste.
Quelle différence entre version recommandée et push upgrade ?
Une version recommandée affiche à l'abonné l'option Upgrade to Recommended Version et lui laisse le calendrier. Un push upgrade déplace son org à votre place, selon votre calendrier.
Une bêta compte-t-elle comme une release ?
Non. Toute version 2GP commence en bêta et ne s'installe que pour tester. Elle devient une release au moment où vous la promouvez.
Sans engagement.