Revision history for Getopt::Pad

0.04    2026-09-26
        - Config files set the options of every command level: the
          commands key of a level's section holds one section per
          command, nested like the commands. Every section is validated
          on every run, the values only on the levels the command line
          selects. The autoload chain merges option by option per level
        - --create-default-config writes the defaults of every level
        - Add inherit to option specs: on a level with commands, the
          option is also accepted after the command word on every level
          below and read from the declaring level. Given on several
          levels, it combines as if repeated on one
        - --config and --create-default-config are inherited, so they
          work after the command word. No level may declare an option
          of either name when the spec has a config block
        - With a config block, a level with commands may not have a
          group named commands
        - Rewrite the documentation. Getopt::Pad is a complete reference
          with a list of all messages. Getopt::Pad::Tutorial and
          Getopt::Pad::Cookbook are new. The contracts for custom types
          and config formats are documented in Getopt::Pad::Type and
          Getopt::Pad::Config::Format
        - New examples for value shapes, config files and value checks

0.03    2026-09-24
        - Add hash options: with hash => 1 an option takes --name key=value
          pairs and its reader returns a hashref. Every value passes the
          usual checks. Help shows the key=value syntax and completion
          fills in the value behind the typed key
        - Absent multiple options and slurpy args now read as an empty
          arrayref, an absent hash option as an empty hashref
        - Add csv => 1 for multiple options: every given value is split
          at commas, the items are trimmed and an empty item is rejected
        - Add typehint to option and arg specs: the tag rendered after
          the help text in place of the type's own label
        - Add objectlist options: with objectlist => 1 an option takes
          --name INDEX.FIELD=VALUE words and its reader returns a list of
          hashrefs. The indices must form 0..n-1
        - Add createPathIfMissing to the file and dir types: the path is
          created, parents included, once the parse settles on it
        - --create-default-config writes LF line endings on every platform
          and refuses a symlink target on Windows as well, where O_EXCL
          follows a dangling link
        - Tests pass on Windows

0.02    2026-09-23
        - Fix the release target packing build artefacts (blib/) into the
          tarball, which stopped PAUSE from indexing 0.01
        - Declare all modules in the META "provides" map
        - Add the missing $VERSION to Getopt::Pad::Type::Url

0.01    2026-09-23
        - Initial development release: typed options, positional args,
          nested subcommands, config files, generated help
        - Shell completion for bash and zsh via --create-completions;
          a valid coderef now returns the allowed list, lazyValid holds
          the predicate form
