Salesforce DevOps Woordenlijst

package.xml

Het manifestbestand dat de Metadata API precies vertelt welke componenten opgehaald of gedeployd moeten worden in een release.

Definitie

package.xml is het manifestbestand dat de Metadata API leest om te weten welke componenten, op type en naam, moeten worden opgenomen in een retrieve- of deploy-bewerking. Alles wat niet is vermeld, wordt gewoon niet aangeraakt; gedeployde metadata die buiten het manifest valt, wordt met rust gelaten in plaats van verwijderd, aangezien destructieve wijzigingen hun eigen aparte manifest nodig hebben.

Het handmatig bijhouden van package.xml voor een release is een veelvoorkomende oorzaak van “het werkte op mijn machine”-bugs: een developer voegt lokaal een nieuw custom veld of Apex-klasse toe, vergeet het bijbehorende item aan het manifest toe te voegen, en de deployment slaagt zonder fout terwijl er stilletjes een component ontbreekt waar de release van afhankelijk was.

Source-tracked orgs en CLI-tooling kunnen automatisch een package.xml genereren uit een diff, wat de reden is dat de meeste Salesforce DevOps-pipelines zijn afgestapt van handmatig bewerkte manifesten en zijn overgestapt op tooling die de lijst opbouwt uit wat daadwerkelijk is gewijzigd. Onze Salesforce DevOps-gids behandelt manifestgeneratie als onderdeel van een build.

In de praktijk

Hoe het werkt in Serpent

Serpent bouwt zijn deploymentmanifest automatisch op uit de metadata die een Work Item daadwerkelijk heeft geraakt, source-tracked in plaats van handmatig bijgehouden, zodat een component niet stilletjes uit een release kan wegvallen zoals bij een handmatig bewerkte package.xml kan gebeuren. De componentenlijst van elk Work Item blijft zichtbaar vóór deployment, zodat reviewers precies kunnen bevestigen wat is opgenomen zonder handmatig een manifest te controleren. Zie releasebeheer in Serpent voor hoe delta-deployments worden afgebakend.

Serpent genereert een package.xml-manifest van componenten om op te halen of te deployen
Veelgestelde vragen

package.xml, beantwoord

Waarom is mijn deployment geslaagd maar ontbreekt een component in de doelorg?
De component stond vrijwel zeker niet vermeld in package.xml. De Metadata API raakt alleen aan wat in het manifest staat, dus een weggelaten item gooit geen fout, het wordt gewoon stilletjes overgeslagen.
Kan ik één package.xml gebruiken om zowel metadata te deployen als te verwijderen?
Nee. Deployments en verwijderingen gebruiken aparte manifesten: package.xml voor wat gedeployd moet worden en destructiveChanges.xml voor wat verwijderd moet worden. Het combineren hiervan in één bestand wordt niet ondersteund.
Hoe genereer ik package.xml automatisch in plaats van het handmatig te schrijven?
Source-tracked orgs en Salesforce CLI kunnen een manifest genereren op basis van een diff met wat er is gewijzigd. Tools die zijn gebouwd op source tracking, waaronder Serpent, bouwen het manifest automatisch op uit de componenten die een wijziging daadwerkelijk heeft geraakt.

Start gratis. Geen creditcard, geen installatie, geen verplichting.

Binnen 15 minuten ingericht. Geen DevOps-medewerker nodig.

Benieuwd naar sneller releasen voordat je instapt? Laten we praten

Vrijblijvend.