NAME

dist-policyfiles - Generate CONTRIBUTING.md and SECURITY.md

SYNOPSIS

dist-policyfiles --module|-m MODULE  --login|-l LOGINNAME
                [--dir|-d DIR
                --email|-e EMAILADDR  --full_name FULL_NAME
                --prefix|-p PREFIX  --uncapitalize|-u
                 sec_md_params|s PARAMSTR  --contrib_md_tmpl|-c FILENAME]

DESCRIPTION

This command line tool creates the policy files CONTRIBUTING.md and SECURITY.md. It is shipped with module Dist::PolicyFiles.

Options --module and --login are mandatory. If at least one of --email and --full_name is not specified, the script attempts to read the missing information from comments in HOME/.ssh/config. Refer to GitHub::Config::SSH::UserData for a description how this is done.

You can use the --prefix and --uncapitalize options to change how the repo name is generated. For more information, see the description of --sec_md_params.

For each option there is a one-letter abbreviation.

OPTIONS

Mandatory options

--login LOGINNAME
-l LOGINNAME

Mandatory. User's github login name.

--module MODULENAME
-m MODULENAME

Mandatory. Module name.

Optional options

--contrib_md_tmpl FILENAME
-c FILENAME

Optional. The name of a template file (see Text::Template) for the CONTRIBUTING.md. If this argument is not specified, then the internal default template is used.

--dir DIRNAME
-d DIRNAME

Optional. Directory where the policy files should be written. By default, this is the current working directory.

--email EMAILADDRESS
-e EMAILADDRESS

Optional. If not specified, the script tries to read it from comments in HOME/.ssh/config (see GitHub::Config::SSH::UserData).

--full_name FULLNAME
-n FULLNAME

Optional. User's full name. If not specified, the script tries to read it from comments in HOME/.ssh/config (refer to GitHub::Config::SSH::UserData).

--help
-h

Print this documentation, ignoring all other given options.

--prefix PREFIX
-p PREFIX

Optional. Prefix for repo name. Default is an empty string.

--sec_md_params PARAMETERLIST
-s PARAMETERLIST

Optional. A semicolon separated list of named parameters. These are exactly the same as those accepted by the new() method of Software::Security::Policy::Individual.

Example:

-s 'minimum_perl_version=5.14;timeframe=10 days'

Defaults:

maintainer:

User's full name and email address, e.g.:

John Doe <jd@cpan.org>
program

Module name, see option module.

url
https://github.com/LOGIN/REPO/blob/main/SECURITY.md

where:

LOGIN

User's login name, see option login.

REPO

The repo name is structured as follows:

  • The repo name begins with the value prefix (if specified).

  • The rest of the repo name is the module name where the double colons are replaced with hyphens.

  • If option uncapitalise is specified, the latter part of the repo name is changed to lower case.

To completely disable one of these arguments, set it to an empty string.

--uncapitalize
-u

Optional. Specify this option if your repo name is lower case.

--version
-V

Print this version information, ignoring all other given options (except for --help which has higher priority).

Note: the one-letter abbreviation for this is upper case -V.

SEE ALSO

Dist::PolicyFiles,

AUTHOR

Klaus Rindfrey, <klausrin at cpan.org.eu>

LICENSE AND COPYRIGHT

This software is copyright (c) 2025 by Klaus Rindfrey.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.