-
Notifications
You must be signed in to change notification settings - Fork 5
Description
TLDR Version:
Because
Bundle->import()is an inherently user-facing function, it should control its own API, and API of a bundle should not randomly change in significant ways when a plugin changes its export sets.
Long Version:
Due to bundles essentially being:
for my $plugin ( @plugins ) {
$plugin->import::into($caller);
}(except with a bit of special spice specific to Test::Stream instead of the eval trick import::into uses )
There's room for unintended ripple effects in the intersection of Bundles and Plugins.
Namely, Because bundles default to auto-exporting their plugins parts, any plugin automatically exporting anything risks a future where something it exports collides with something else, or risks exporting something in future that the bundle author never intended, or risks neglecting to export something that was previously exported.
This is not just hypothetical, and I've already had a bit of a confusion due to having to work out why a test failure occurred due to lacking cmp_ok, and the bundles and plugins I'm using directly demonstrating no changes and nothing about cmp_ok, it was just something I implied would be there from -V1.
And the only significant thing I found in the diff was that cmp_ok was changed in export from the Core plugin.