Skip to main content

A tool for analyzing dependency updates and their changelogs.

Project description

Changelog Checker

A powerful tool for analyzing dependency updates and their changelogs. Automatically fetches and displays changelog information for updated packages, helping you understand what changed in your dependencies.

Python versions License: MIT PyPI version

gif

๐Ÿš€ Other Projects

Want to see more of my work? Check out the Bitcart project - a comprehensive cryptocurrency payment processor:

Bitcart Website Bitcart GitHub

Features

  • ๐Ÿ” Automatic Changelog Detection: Finds changelogs from GitHub releases, repository files, and PyPI
  • ๐Ÿ“Š Rich Output: Beautiful, formatted output with syntax highlighting
  • ๐Ÿ”ง Multiple Package Managers: Currently supports uv with more coming soon
  • ๐Ÿš€ Fast & Reliable: Efficient parsing and caching for quick results
  • ๐Ÿ” GitHub Integration: Optional GitHub token support for higher API rate limits
  • ๐Ÿ“ Multiple Formats: Supports various changelog formats (Markdown, RST, Sphinx)

Installation

From PyPI

pip install changelog-checker

Quick Start

The most common usage is to pipe package manager output directly to changelog-checker:

# Update dependencies and check changelogs
uv sync -U 2>&1 | changelog-checker

# Or save output to file first
uv sync -U &> updates.txt
changelog-checker -i updates.txt

# or get html report
changelog-checker -i updates.txt -f html -o report.html

# or use with (uv) pip to check changelogs of pinned dependencies
uv pip list --outdated | changelog-checker -p pip

Usage

Basic Usage

# Pipe uv output directly
uv sync -U 2>&1 | changelog-checker

# Read from file
changelog-checker --input-file updates.txt

# Enable verbose output
changelog-checker -v --input-file updates.txt

# Use GitHub token for higher rate limits
export GITHUB_TOKEN=your_token_here
uv sync -U 2>&1 | changelog-checker

Command Line Options

Options:
  -i, --input-file FILENAME       Read input from file instead of stdin
  -p, --parser [uv|pip]           Parser type to use (default: uv)
  --log-level [DEBUG|INFO|WARNING|ERROR]
                                  Logging level (default: INFO)
  -v, --verbose                   Enable verbose output (equivalent to --log-
                                  level DEBUG)
  -t, --github-token TEXT         GitHub API token for authentication (can
                                  also use GITHUB_TOKEN env var)
  -f, --output-format [terminal|html]
                                  Output format: terminal (rich console) or
                                  html (HTML file) (default: terminal)
  -o, --output-file TEXT          Output file path for HTML format (default:
                                  changelog_report.html)
  -h, --help                      Show this message and exit.

Environment Variables

  • GITHUB_TOKEN: GitHub API token for authentication (optional but recommended)

Example Output

When you run changelog-checker, you'll see a beautifully formatted report like this:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿ“ฆ Dependency Update Report โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Summary โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚   ๐Ÿ“ˆ Updated              74                                                                                                                                                                    โ”‚
โ”‚   โž• Added                 1                                                                                                                                                                    โ”‚
โ”‚   โž– Removed               1                                                                                                                                                                    โ”‚
โ”‚   ๐Ÿ“ Missing Changelogs    4                                                                                                                                                                    โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ ๐Ÿ“ˆ Updated Packages โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ aiohappyeyeballs: 2.4.4 โ†’ 2.6.1 (GitHub | Changelog) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Changelog:                                                                                                                                                                                      โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚ Version 2.6.1:                                                                                                                                                                                  โ”‚
โ”‚ v2.6.1 (2025-03-12)                                                                                                                                                                     โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚                                    Bug Fixes                                                                                                                                              โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚  โ€ข Resolve TypeError on import for Python < 3.9.2 (#151,                                              โ”‚
โ”‚ 2042c82)                                                            โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€                                                                                                         โ”‚
โ”‚ Detailed Changes: v2.6.0...v2.6.1                                                         โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚ Version 2.6.0:                                                                                                                                                                                  โ”‚
โ”‚ v2.6.0 (2025-03-11)                                                                                                                                                                     โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚                                     Features                                                                                                                                              โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚  โ€ข docs: Publish documentation (#149,                                                            โ”‚
โ”‚ 4235273)                                                            โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚ Creates an api_reference.rst file to expose the existing documentation for the                                                                                                                  โ”‚
โ”‚ few functions that have docstrings, as well as add documentation for                                                                                                                            โ”‚
โ”‚ AddrInfoType and SocketFactoryType. Now, these can be properly pointed to by                                                                                                                    โ”‚
โ”‚ other projects' documentation.                                                                                                                                                                  โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€                                                                                                         โ”‚
โ”‚ Detailed Changes: v2.5.0...v2.6.0                                                         โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚ Version 2.5.0:                                                                                                                                                                                  โ”‚
โ”‚ v2.5.0 (2025-03-06)                                                                                                                                                                     โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚                                     Features                                                                                                                                              โ”‚
โ”‚                                                                                                                                                                                                 โ”‚
โ”‚  โ€ข Add callback for users to customize socket creation (#147,                                         โ”‚
โ”‚ 8e1bc6a)

HTML reports

You can also generate HTML reports for later viewing:

changelog-checker -i updates.txt -f html -o report.html

HTML report HTML report HTML report

Supported Package Managers

Currently supported:

  • uv: Python package manager
  • pip: Pip (only "list --outdated")

How It Works

  1. Parse Input: Analyzes package manager output to identify updated packages
  2. Find Packages: Searches for package information on PyPI and GitHub
  3. Fetch Changelogs: Retrieves changelog information from multiple sources:
    • GitHub releases API
    • Repository changelog files (CHANGELOG.md, HISTORY.md, etc.)
    • PyPI project descriptions
  4. Parse & Format: Processes changelog content and presents it in a readable format

Configuration

GitHub Token

For better rate limits and access to private repositories, set up a GitHub token:

  1. Go to GitHub Settings โ†’ Developer settings โ†’ Personal access tokens

  2. Generate a new token with public_repo scope

  3. Set the environment variable:

    export GITHUB_TOKEN=your_token_here
    

Development

Setup

git clone https://github.com/MrNaif2018/changelog-checker.git
cd changelog-checker
uv sync

Running Tests

uv run task test

Code Quality

# Run linting
uv run task lint
# Type checking
uv run task lint_types

# Run all checks
uv run task ci

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Copyright and License

Copyright (C) 2025 MrNaif2018

Licensed under the MIT license

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

changelog_checker-0.3.1.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

changelog_checker-0.3.1-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

Details for the file changelog_checker-0.3.1.tar.gz.

File metadata

  • Download URL: changelog_checker-0.3.1.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for changelog_checker-0.3.1.tar.gz
Algorithm Hash digest
SHA256 1d374d8bde046e15e6768c80cbed10ec6658c0c3b4f42496cb3a833161b298a5
MD5 963ecd7bccbb07e235d0ce008c743ccc
BLAKE2b-256 4f3bc0d91d6549cf5df9814eb42ce099aede45f5526a602b3e3abb166765fa9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for changelog_checker-0.3.1.tar.gz:

Publisher: release.yml on MrNaif2018/changelog-checker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file changelog_checker-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for changelog_checker-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1e5dc81407fcba560ca1cc59ad091fd1894e27135ad65e4eab697123ff75ad1b
MD5 69dc793302f8c6f0099e09abde6851c3
BLAKE2b-256 58fbed6c5e2f7adaea7598b33924ab324812ae7e184c990a50206b903ad4ef79

See more details on using hashes here.

Provenance

The following attestation bundles were made for changelog_checker-0.3.1-py3-none-any.whl:

Publisher: release.yml on MrNaif2018/changelog-checker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page