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.
๐ Other Projects
Want to see more of my work? Check out the Bitcart project - a comprehensive cryptocurrency payment processor:
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
uvwith 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
Supported Package Managers
Currently supported:
- uv: Python package manager
- pip: Pip (only "list --outdated")
How It Works
- Parse Input: Analyzes package manager output to identify updated packages
- Find Packages: Searches for package information on PyPI and GitHub
- Fetch Changelogs: Retrieves changelog information from multiple sources:
- GitHub releases API
- Repository changelog files (CHANGELOG.md, HISTORY.md, etc.)
- PyPI project descriptions
- 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:
-
Go to GitHub Settings โ Developer settings โ Personal access tokens
-
Generate a new token with
public_reposcope -
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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Copyright and License
Copyright (C) 2025 MrNaif2018
Licensed under the MIT license
Acknowledgments
- github-reserved-names for a list of names to avoid treating as a github user during parsing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file changelog_checker-0.3.0.tar.gz.
File metadata
- Download URL: changelog_checker-0.3.0.tar.gz
- Upload date:
- Size: 23.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce68537d71c4831df5d1937b0365dc56fdbdc4bbb1531812cef805b2b32b0bc9
|
|
| MD5 |
e359dd53eb173b0bdb901e9daa6bd83d
|
|
| BLAKE2b-256 |
e906c19379b8e0a740c01c2e033d42165817838ea005c6ebf76a16cfa1d903ad
|
File details
Details for the file changelog_checker-0.3.0-py3-none-any.whl.
File metadata
- Download URL: changelog_checker-0.3.0-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2955e1366b5c1a33a9506513ea89c9f7155c8e47636a0f7394bfa1569553eab9
|
|
| MD5 |
fa2e1eedf5ac1d39e8d01f32232042d6
|
|
| BLAKE2b-256 |
8de55632f0ab0ee00f0aac2a4653e8d98a7974c43c6fd3825beb041335ad0531
|