The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version v0.9.0 - 2015-10-02

  • Note
    • In previous versions of the plugin, the term "plugin name" was not used properly. Actually, sometimes it was used instead of "plugin moniker". "Plugin name" and "plugin moniker" terms are almost interchangeable in trivial cases, but in general case they are not.
    • In this version, a section explaining these terms is added to the user manual. User manual, code and comments revisited to clarify what is meant or required in each case. If you find the documentation is still unclear, let me know.
    • I discovered file history log maintained by `Dist::Zilla` is unreliable. Only the file adder (aka injector) is recorded properly, file mungers are guessed, see <https://github.com/rjbs/Dist-Zilla/issues/495>, and "File Mungers" in the user manual. Because of unreliable information, all the file mungers are stripped down from annotations, only file adders left. If you want to enable old behaviour, use `show_mungers` option.
  • Usage
    • Options `source_providers` and `metainfo_providers` changed a bit. Now they interpret as delimiter any whitespace character (`\s`) not just plain space (` `).
    • Options `source_provider` and `metainfo_provider` introduced. Each option treats its value as *one* plugin name. It allows to operate with plugin names containing spaces.
    • Option `show_mungers` introduced. By default mungers are not shown because this information is unreliable.
    • `CPANFile` plugin name is added to default metainfo providers.
  • Fixed Bugs
    • When the plugin adds itself to the list of metainfo providers, it adds plugin moniker (but should add plugin name).
    • Plugins used in testing (e. g. `Test::Compile`) are not included into `Meta.JSON` as test requirements, it causes test failure.
    • If filename includes hash character, filename in manifest is still written as-is. It may cause interpreting such a file as comment.
  • Code
    • From user point of view, this version is almost compatible with the previous (except very minor change in `source_providers` and `metainfo_providers`). However, in class interface there are incompatible changes. Some methods are renamed, some changed, so subclasses or other clients should be modified to work with the new version. (Frankly, I do not think someone uses it programmatically.)
  • Tests
    • `example.t` test is too sensitive: it requires the manifest samples saved in `ex/` subdirectory, are generated with current version of the plugin, otherwise the test fails due to different files. The test fixed. Now change in the plugin version does not cause the test failure.
    • Added a test routine (it is used in every test) to read generated manifest with `ExtUtils::Manifest::maniread` and verify read content. That actually means my manifest is tested on compatibility with `MakeMaker`.
    • Examples are tested now, see `examples.t`.

Documentation

Manifest::Write plugin user manual

Modules

Have annotated distribution manifest