Skip to main content

Hi all,

I'm currently working with a Salesforce 2GP (Second-Generation Packaging) project and trying to decide the most effective packaging strategy across different environments.

Our current pipeline includes Dev, QA, UAT, and Prod. QA is a critical checkpoint where changes are formally validated before UAT and Prod deployment.

Originally, I considered using Unlocked Packages in Dev and QA, then switching to Managed (released) packages for UAT and Prod. This gives us fast iterations and easier debugging in early environments. However, since QA is a validation point, I’m concerned that testing on an unlocked package might not reflect the real behavior of the managed package — especially around namespacing, metadata locking, or Apex access controls.

I also looked into using Managed Beta Packages for QA, but came across known issues with beta package upgrades that could lead to conflicts or blocked deployments if changes aren't fully compatible.

So I’m now weighing a few trade-offs:

  • ✅ Use Unlocked in Dev, then Managed (beta or released) in QA/UAT/Prod
  • ✅ Use Managed (beta or released) in all environments for fidelity
  • 🚫 Avoid Unlocked in QA if it invalidates test results

My main questions:

  • How do others handle this in practice for both speed and fidelity?
  • Is it considered valid to test in QA on an unlocked package, when final deployments are managed?
  • How risky is relying on beta managed packages in QA/UAT, given the upgrade limitations?
  • Are there better hybrid strategies that balance iteration speed and release quality?

Thanks in advance for any recommendations or experiences you can share! 

 

 

 

#Salesforce Developer

1 个回答
0/9000