At this time, we are deciding to use
zend-expressive- as a prefix for packages that provide middleware or features that will be consumed by middleware, with the exception of the already released
zend-problem-details. Packages will be released under the zendframework GitHub organization to allow us to make use of existing teams, as well as ensure that developers searching for the packages do not need to look under multiple organizations to find them.
The rationale is as follows:
- Ensures the package names do not conflict with existing ZF packages. This is particularly important when we consider packages with generic names like “authentication”, “cache”, etc.
- Helps identify where these packages will be used within the ZF ecosystem: Expressive.
- Helps identify that these packages target middleware and/or PSR-7, due to the affinity with Expressive.
- Keeps our “branding”, in a way that’s been established in other ecosystems (Slim, Lumen, etc.).
While these packages will be used in the Apigility on Expressive initiative, I’ll note that the existing Apigility packages largely eschew the Apigility name as well, with the exception of those that tie the components together (zf-apigility, zf-apigility-admin, zf-apigility-provider, zf-apigility-skeleton) and those related to documentation features. Additionally, like the bulk of those packages, while these new packages will be used for Apigility applications, they can also be dropped into existing Expressive applications piecemeal. As such, naming them after Apigility seems more limiting than naming them after Expressive.
We will use both repository tags and composer keywords to signal what PSRs and affiliated projects they may target: Apigility, Expressive, PSR-7/PSR-15/PSR-17, middleware, etc. These will help users discover packages of interest.
Thanks for all the feedback, everyone!