I have noticed that some packages which were in my build have disappeared after I added Win32-OLE on 22nd February. That’s not helpful. What’s going on?
Aug 12th, 2023
build included
Archive-Zip
LWP-Protocol-HTTPS
Feb 22nd, 2024
added
Win32-OLE
Archive-Zip
LWP-Protocol-HTTPS
are in the dependencies list, but not in the downloaded bundle.
Feb 22nd, 2024
I added LWP-Protocol-HTTPS, because it was flagged as missing when I ran a script.
Feb 26th, 2024
I added Archive-Zip, because it was flagged as missing when I ran a script.
What’s different between “then” and “now” is an improved version of the packager.
Dependencies belong to two broad categories.
- Things that are needed to run code (runtime dependencies)
- Things that are needed to build code (buildtime dependencies)
In the past, there was no way to exclude dependencies that were never needed once the project was built. Customers told us they didn’t want dead weight, and the larger attack surface that unused code provides.
Now there is tooling that excludes buildtime dependencies. If a module/package is detected as only falling into the buildtime dependency category, it won’t be included in the package.
You don’t need to worry about modules that Perl has defined as “core”.
https://perldoc.perl.org/modules
Core modules are subject to special handling, but to make sure you get a non-core module that you need, it should be in the upper section of the configuration. If something your application actually needs only appears in the lower section, it might be excluded at packaging time. Right now the interface can’t show which modules/packages are ‘buildtime’ only (that’s planned), but the best work around is still to make sure that your real requirements are reflected in the upper section.
Thanks for the explanation.