
Andrew Hanna

Andrew Hanna

TL;DR: Second-generation packaging (2GP) is de moderne, source-gedreven manier van Salesforce om managed en unlocked packages te bouwen en distribueren vanuit versiebeheer in plaats van een packaging-org. Het vervangt first-generation packaging (1GP) door modulaire packages, flexibele namespaces, expliciete dependencies en een Salesforce CLI-workflow. Salesforce raadt 2GP nu aan voor alle nieuwe managed package-ontwikkeling.
Een 2GP-package is een container voor de metadata, code en schema die je als app distribueert - naar AppExchange-klanten (managed) of over je eigen org-landschap (unlocked). Het kernidee is dat de package wordt gebouwd vanuit source in Git, niet vanuit een stateful packaging-org. Salesforce stelt expliciet dat managed 2GP "niet zomaar versie 2.0" van 1GP is; het is een ander, automatiseringsvriendelijk ontwikkelmodel en het aanbevolen pad voor alle nieuwe packages.
Kort gezegd: 1GP leeft in een packaging-org, 2GP leeft in je repository. Die ene verandering ontsluit de rest:
sfdx-project.json, niet ontdekt bij installatie.
Beide zijn second-generation packages die op dezelfde manier worden gebouwd. De keuze gaat over het publiek:
Je hebt een Dev Hub-org nodig met Unlocked Packages and Second-Generation Managed Packages ingeschakeld, en de permissie Create and Update Second-Generation Packages. Vervolgens:
sf package create --name MyApp --package-type Managed --path force-app
--target-dev-hub DevHub
sf package version create --package MyApp --installation-key test1234
--code-coverage --wait 10
sf package install --package 04t... --wait 10
sf package version promote --package [email protected]
Een gepromote managed versie is degene die je indient bij de AppExchange security review voordat klanten hem kunnen installeren.
Omdat de hele flow CLI-first is, past hij in een DevOps-pijplijn - dezelfde plek waar tools als Copado, Gearset, Salto, AutoRABIT, Flosum of Blue Canvas versiebeheer en testen orkestreren. Voor meer build-and-release-playbooks, zie onze SF Guides.
Vervangt 2GP 1GP?
Salesforce raadt 2GP aan voor alle nieuwe managed packages, al werken bestaande 1GP-packages nog en kunnen ze worden gemigreerd.
Heb ik een Dev Hub nodig voor 2GP?
Ja. Schakel Dev Hub en second-generation packaging in en verleen de create/update-packages-permissie voordat je begint.
Kunnen twee 2GP-packages een namespace delen?
Ja. Meerdere managed 2GP-packages kunnen één namespace gebruiken, maar elke package bindt aan één namespace die na aanmaak niet kan wijzigen.
Wat is het verschil tussen managed en unlocked packages?
Managed 2GP is voor AppExchange-distributie met IP-bescherming; unlocked packages organiseren de metadata van je eigen org in geversioneerde, deploybare eenheden.
Vrijblijvend.