
Andrew Hanna

Andrew Hanna

Kort antwoord: een AppExchange-release verloopt in vijf fasen: maak een beta-packageversie, valideer die, promoveer hem naar released, koppel hem aan je listing en breng daarna je subscribers over. Elke second-generation managed packageversie wordt als beta geboren, promoveren is eenrichtingsverkeer, en alleen packages die de security review hebben doorstaan kunnen naar subscriber-orgs worden gepusht.
sf package version promote maakt van de
beta een released versie.
De meeste ISV-teams doen alle vijf de stappen ergens wel. Wat meestal ontbreekt is de volgorde, de poort tussen elke fase en een betrouwbaar overzicht van welke subscriber-org op welke versie draait.
Upgradebaarheid wordt bepaald door ancestry, niet door het
versienummer dat je hebt ingetypt. Elke nieuwe 2GP-versie declareert een ancestor in
sfdx-project.json, en Salesforce raadt
ancestorVersion: HIGHEST aan zodat de ancestor je hoogst gepromoveerde
versie automatisch volgt. Bestaande klanten kunnen niet upgraden naar een versie die
zonder opgegeven ancestor is gemaakt, dus een enkele build zonder ancestor levert een
versie op die niemand kan bereiken.
Promoveren is de belangrijkste poort, omdat het onomkeerbaar is.
Laat promoveren draaien vanuit je pipeline, achter een expliciete menselijke goedkeuring, en nooit vanaf de laptop die toevallig bij de Dev Hub is ingelogd. De rechten om te promoveren zijn zelf een control: geef ze via een permission set in plaats van aan iedereen met CLI-toegang.
Bij een eerste listing zit de security review tussen validatie en publicatie, en dat is het langste onderdeel van de planning. Bij updates ligt het anders. Je hebt niet voor elke patch of upgrade een volledige security review nodig, en wat publicatie bepaalt is de status van je listing. Staat er Ready to List, dan kun je de bijgewerkte listing publiceren zonder de nieuwe versie ter review in te dienen. Staat er Security Review Required, dan kun je pas publiceren als die versie is goedgekeurd.
Salesforce voert daarnaast periodieke herbeoordelingen uit, en een versie met ingrijpende wijzigingen lokt die eerder uit. Reserveer reviewtijd dus voor releases die architectuur, authenticatie of uitgaande calls raken, en niet meer voor gewone bugfixes. Lees de actuele regels in de ISVforce-handleiding over het bijwerken van een listing voordat je er een kwartaal omheen plant.
Drie knoppen, van minst naar meest ingrijpend:
Een gefaseerde uitrol die standhoudt: eerst je eigen orgs, dan partner- en sandbox-orgs, dan een kleine groep klanten die ermee instemt, en daarna de rest in geplande batches buiten piekuren. Laat tussen de groepen genoeg tijd voor een echt supportticket, en dat is meestal een volle werkdag en geen uur.
Dat vierde punt stellen teams uit en daar krijgen ze spijt van, want de kwaliteit van je support hangt er meer van af dan van al het andere. Serpent ondersteunt 1GP-, 2GP- en managed-packageworkflows, cross-package dependency resolution en versiebeheer over subscriber-orgs op elk plan, inclusief het gratis plan. Meer packaging-playbooks vind je in onze SF Guides-bibliotheek.
Kan ik een packageversie terugzetten van released naar beta?
Nee. Je kunt een versienummer maar een keer promoveren en releasen, en dat is onomkeerbaar. Behandel promoveren dus als een releasebesluit en niet als een buildstap.
Heb ik voor elke release een nieuwe security review nodig?
Nee. Een volledige review is niet nodig voor elke patch of upgrade. Publicatie hangt af van de status van je listing, en Salesforce kan nog steeds om een periodieke herbeoordeling vragen als een versie ingrijpend verandert.
Waarom kan mijn klant niet upgraden naar mijn nieuwste versie?
Meestal door ancestry. Bestaande klanten kunnen niet upgraden naar een versie die zonder opgegeven ancestor is gemaakt, dus controleer de ancestor voordat je iets anders nakijkt.
Wat is het verschil tussen een recommended version en een push upgrade?
Bij een recommended version zien subscribers de optie Upgrade to Recommended Version en bepalen ze zelf het moment. Bij een push upgrade verplaats jij hun org, op jouw schema.
Tellen beta-versies als release?
Nee. Elke 2GP-versie begint als beta en is alleen te installeren om te testen. Het wordt pas een release op het moment dat je hem promoveert.
Vrijblijvend.