changelog.rst

Overview

The `changelog.rst` file serves as the official changelog documentation for the pytest project. It provides a detailed, chronological record of all notable changes, improvements, bug fixes, new features, deprecations, and removals introduced in each released version of pytest. The changelog follows the [Semantic Versioning](https://semver.org/) scheme (`..`), where backward-incompatible changes are only introduced in major versions with advance notice.

This file is automatically managed by the Towncrier tool, which aggregates change fragments from the development process and compiles them into this single changelog document. Contributors are discouraged from manually adding new changelog entries here and should instead add news fragments to the appropriate news folder as per pytest's contribution guidelines.

Purpose and Functionality

Structure and Content Details

Each release section in the changelog documents:

  1. Version and Release Date: The version number and the date of release.

  2. Breaking Changes / Removals: Incompatible changes that may require user action.

  3. Deprecations: Features planned for removal in future major versions.

  4. Features: New capabilities added.

  5. Improvements: Enhancements to existing functionalities.

  6. Bug Fixes: Corrections of defects.

  7. Improved Documentation: Updates or clarifications to docs.

  8. Packaging Updates: Changes affecting distribution or integration.

  9. Contributor-facing Changes: Changes relevant to pytest contributors.

  10. Miscellaneous Internal Changes: Internal refactors or minor adjustments.

The entries often include:

Example Usage

While this file is not a source code file and thus contains no classes or functions, it is a vital reference point for:

Important Implementation Details

Interaction with Other Parts of the System

Visual Diagram: Changelog File Structure and Workflow

This file is a utility/documentation file, so a flowchart illustrating the process of changelog update and release integration is most suitable.

flowchart TD
    A[Developer submits PR with code changes] --> B[Add news fragment in news folder]
    B --> C[Towncrier collects news fragments]
    C --> D[Generate changelog.rst with aggregated entries]
    D --> E[Release Manager reviews changelog]
    E --> F[Release pytest version with updated changelog]
    F --> G[Users consult changelog for release notes]

Summary

Because this is a documentation file, it contains no classes or functions directly, but it plays a critical role in the pytest project's lifecycle and user communication.


**Note:** To add new changelog entries, contributors should add news fragments to the configured news folder and not edit `changelog.rst` directly.