
Andrew Hanna

Andrew Hanna

TL;DR : Le packaging de deuxième génération (2GP) est la manière moderne et pilotée par la source de Salesforce de construire et distribuer des packages managed et unlocked depuis le contrôle de version, au lieu d'une org de packaging. Il remplace le packaging de première génération (1GP) par des packages modulaires, des namespaces flexibles, des dépendances explicites et un workflow via la Salesforce CLI. Salesforce recommande désormais le 2GP pour tout nouveau développement de package managed.
Un package 2GP est un conteneur pour les métadonnées, le code et le schéma que vous distribuez comme une app - aux clients AppExchange (managed) ou sur votre propre parc d'orgs (unlocked). L'idée centrale est que le package est construit depuis la source dans Git, pas depuis une org de packaging à état. Salesforce précise que le managed 2GP "n'est pas simplement la version 2.0" du 1GP ; c'est un modèle de développement différent et favorable à l'automatisation, et c'est la voie recommandée pour tous les nouveaux packages.
En bref : le 1GP vit dans une org de packaging, le 2GP vit dans votre dépôt. Ce seul changement débloque le reste :
sfdx-project.json, pas découvertes à l'installation.
Les deux sont des packages de deuxième génération construits de la même façon. Le choix concerne le public :
Il vous faut une org Dev Hub avec Unlocked Packages and Second-Generation Managed Packages activé, et la permission Create and Update Second-Generation Packages. Ensuite :
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]
Une version managed promue est celle que vous soumettez à la security review AppExchange avant que les clients puissent l'installer.
Comme tout le flux est CLI-first, il s'intègre dans un pipeline DevOps - là même où des outils comme Copado, Gearset, Salto, AutoRABIT, Flosum ou Blue Canvas orchestrent le contrôle de version et les tests. Pour d'autres playbooks de build et de release, voyez nos SF Guides.
Le 2GP remplace-t-il le 1GP ?
Salesforce recommande le 2GP pour tous les nouveaux packages managed, même si les packages 1GP existants fonctionnent encore et peuvent être migrés.
Ai-je besoin d'un Dev Hub pour le 2GP ?
Oui. Activez le Dev Hub et le packaging de deuxième génération, et accordez la permission de création/mise à jour des packages avant de commencer.
Deux packages 2GP peuvent-ils partager un namespace ?
Oui. Plusieurs packages managed 2GP peuvent utiliser un même namespace, mais chaque package se lie à un namespace unique qui ne peut pas changer après la création.
Quelle est la différence entre packages managed et unlocked ?
Le managed 2GP sert à la distribution AppExchange avec protection de la propriété intellectuelle ; les unlocked packages organisent les métadonnées de votre org en unités versionnées et déployables.
Sans engagement.