enter image description here

I have the following scenario: Every time before a release build, I've to test it in a Sandbox by installing a Managed Beta Package. After that, need to deploy some features[can't put them in the package] manually which are dependent on the Managed Package. My current process overview is:

  1. Create a new Sandbox every time for a new beta package. Since beta isn't upgradeable.
  2. Install beta package.
  3. Manually deploy all the codes.
  4. Org configurations.

You can realize seeing the scenario, it's a very inefficient way of deployment. Since, need to create a new Sandbox every time, then install the package again and org configurations. I've tried to uninstall the beta, but it creates some huge dependencies all on the files which are very time-consuming to fix. If anyone could put some thoughts, that would be helpful.

1 Answer 1


You shouldn't need to use a cycle like this with modern development practices. Create a Scratch Org, linked to your package's namespace, deploy your code there, do any development you want to do (including testing), and when you're satisfied with the results, you can hand another Scratch Org to the QA team, if this is a step you have in your development cycle, and only after everything passes, then upload the changes to the Packaging Org to build a new Beta, or perhaps even a Released version, since everything should now work as expected.

  • Thanks for your reply. I currently maintain the scratch org for package development as you mentioned, but I assume the one I mentioned here is a bit different process. For example, I've created a package for one user, however, I need to always deploy some codes manually for another user over the package. In that case, how can I test the codes of another user over the beta package?
    – Mehedi
    Commented Nov 16, 2021 at 5:34
  • The manually deployed code can't be added to the package, since it's for a specific user only. Package is global.
    – Mehedi
    Commented Nov 16, 2021 at 5:36
  • @HasanOnM It sounds like you need to develop an Extension Package. Or, if possible, move to Second Generation Managed Packages. It makes it far easier to build branching paths to experiment with.
    – sfdcfox
    Commented Nov 16, 2021 at 5:38
  • Thank you. Can you enlighten me on how second-gen will resolve the issue?
    – Mehedi
    Commented Nov 16, 2021 at 6:13
  • @HasanOnM 2GP (Second-Generation Packaging) allows you to have multiple packages with the same namespace that can communicate internally via @NamespaceAccessible, allows you to branch off if you need experimental builds, and delete versions that you don't need from those alternative branches. There's a lot to like about it, except perhaps it may not be right for you right now, as there isn't a migration path from 1GP to 2GP.
    – sfdcfox
    Commented Nov 16, 2021 at 8:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .