mitchspano / apex-trigger-actions-framework

A framework for partitioning, ordering, and bypassing trigger logic for applications built on Salesforce.
Apache License 2.0
490 stars 150 forks source link

Managed Package Publication #151

Open mitchspano opened 2 weeks ago

mitchspano commented 2 weeks ago

Summary:

This document proposes publishing the Trigger Actions Framework (TAF) as a managed package. This will allow other packages, including those from Independent Software Vendors (ISVs), to formally establish a dependency on TAF.

Benefits:

Considerations for Managed Package Publication:

Next Steps:

jongpie commented 2 weeks ago

@mitchspano here are a couple of considerations/things I've run into when doing this same thing for Nebula Logger

I'm sure there's some other stuff I'm forgetting - I'll let ya know if I think of anything else!

daveespo commented 2 weeks ago

Also on the TODO list will need to be to get this package through security review. No ISV will be able to publish their package on the AppExchange if they have a hard dependency on another package that hasn't also passed security review.

And I'll also just state aloud that it's unlikely any ISV that wants their package to be available for installation from the AppExchange will be able to depend on this package. Package Bundles are not a platform feature so the current installation process will fail due to the missing dependency on this package.

jongpie commented 2 weeks ago

Following up on @daveespo's comment - even if you get TAF security reviewed & published in AppExchange, some ISVs still may not want to directly rely on another package (TAF), so some ISVs may still take TAF's metadata & bundle it into their own package. There are a handful of ISVs that do this with Nebula Logger. But by providing TAF as a managed package, you'll have the metadata in a state that makes it easy for ISVs to pull it into their own packages (if they want to go with that approach).

benjaminloerincz commented 2 weeks ago

A similar discussion was held in the past about fflib here / here.