The project_metadata.py module#

Summary#

ProjectMetadata

Project metadata rule family.

PM001

The AUTHORS file exists.

PM002

CHANGELOG.md exists or doc/source/changelog.rst has a title and content.

PM003

The CODE_OF_CONDUCT.md file exists.

PM004

The CONTRIBUTING.md file exists.

PM005

The CONTRIBUTORS.md file exists.

PM006

The LICENSE file exists.

PM007

The SECURITY.md file exists.

PM008

The .github/CODEOWNERS file exists.

PM009

Pyproject.toml declares README content and referenced files exist.

PM010

Pyproject.toml references the LICENSE file.

PM011

Project name follows the ansys-- convention.

PM012

Project version follows an accepted versioning scheme.

PM013

Project author and maintainer metadata matches PyAnsys defaults.

PM014

The LICENSE file contains the standard MIT or Apache 2.0 license text.

PM015

The .github/CODEOWNERS file contains at least one valid owner entry.

PM016

Project declares a minimum supported Python version; an upper bound is optional.

PM017

The project includes a docs directory.

PM018

The project includes a tests directory.

PM019

The project supports a task runner such as nox, tox, or pixi.

PM020

Project contact and support links are provided in pyproject metadata.

PM021

The AUTHORS file contains compliant contributor ownership information.

PM022

The CONTRIBUTORS.md file includes lead and main contributors sections.

PM023

Python version classifiers are present and compatible with requires-python.

Description#

Project metadata checks.

This rule set validates repository metadata against PyAnsys standards.

The checks cover:

  • Governance and repository files
    • AUTHORS

    • CHANGELOG.md or doc/source/changelog.rst

    • CODE_OF_CONDUCT.md

    • CONTRIBUTING.md

    • CONTRIBUTORS.md

    • LICENSE

    • SECURITY.md

    • .github/CODEOWNERS

  • Packaging metadata
    • pyproject.toml references the README and LICENSE files

    • Project name follows the ansys-*-* convention

    • Project version follows the accepted versioning schemes

    • Author and maintainer metadata is configured

    • Supported Python versions have an explicit minimum; an upper bound is optional

    • Python version classifiers agree with requires-python

    • Support URLs are declared

  • Licensing
    • LICENSE file contains recognized MIT or Apache 2.0 wording

  • Repository layout
    • Documentation and tests directories

    • Task runner configuration