Skip to main content
https://img.shields.io/pypi/v/changelogs.svg https://img.shields.io/travis/pyupio/changelogs.svg Documentation Status Updates

A changelog finder and parser with command line interface for packages available on pypi, npm, rubygems and launchpad.net. Originally developed for pyup.io.

Installation

To install changelogs, run this command in your terminal:

$ pip install changelogs

Usage

To use changelogs in a Python project:

import changelogs

logs = changelogs.get("flask")
logs = changelogs.get("babel", vendor="npm")
logs = changelogs.get("bundler", vendor="npm")

Or, from the command line:

changelogs flask
changelogs babel npm
changelogs bundler gem

If you are on macOS, you can chain the open command:

changelogs babel npm >> babel.log && open babel.log

About

When trying to get a changelog for a given package, there are a bunch of problems:

  • There is no central place to store a changelog. If a project has a changelog, it’s most likely somewhere in the git repo at all kinds of different places. This makes it hard to find.

  • The package index meta data often has no direct link to the git repo. This makes the repo hard to find.

  • There is no changelog standard. Everyone uses a different approach. This makes it hard to parse.

This project is trying to solve this by:

  • first querying the package vendor for package meta data like the homepage or docs URL.

  • if the meta data doesn’t contain a valid URL to a repo, visit all available URLs and scrape them to find one.

  • if there is a valid repo URL, visit the repo and look for possible changelogs like Changes.txt, NEWS.md or history.rst.

  • fetch the content and somewhat try to parse it.

History

0.15.0 (2020-12-27)

  • Removed support for Python 2.7, 3.4 and 3.5

  • Added support for Python 3.9

  • Getting proper changelogs for beautifulsoup4 PyPi package again

  • Getting proper changelogs for synapse PyPi package again

  • Stopped using bumpversion

  • Updated PyPi map.txt to reflect different packages changelogs location changes

  • Fixed bug while processing domain-only URLs (#155)

0.14.0 (2018-01-9)

  • Added a pypi/map.txt file to add custom URLS more easily

  • Added a bunch of custom URLS: - pytest-flake8 - cornice.ext.swagger - python-social-core - python-social-auth - cx-oracle - plotnine - django-hijack - pyinvoke - gitpython - python-memcached - appenlight-client

0.13.0 (2018-01-9)

  • Added a bunch of custom parser: - robozilla - websocket-client - pep8-naming - py-trello - synapse - django-haystack - libsass - lazy-object-proxy

0.12.0 (2017-05-18)

  • Added a bunch of custom parser: - flake8 - pyyaml - six - factory-boy - jinja2 - docutils - sphinx-rtd-theme - whitenoise - numpy - beautifulsoup4 - mccabe - django-braces - alabaster - cffi - django-coverage-plugin - newrelic - pandas - twine - pep8-naming - django-storages-redux - pbr

0.11.0 (2017-05-10)

  • The changelog finder now checks repo URLs if they contain the given project name. This should make it easier to identify false changelogs.

  • Fixed a couple of internal errors on edge cases.

  • Added custom parsers for: - graphene - beautifulsoup4

0.10.0 (2017-04-26)

  • Added support for GitHub release pages

  • Added experimental support for git commit log parsing

0.9.0 (2017-04-05)

  • Fix issue with custom parsing of packages with different case.

  • Catch errors from launchpad.

  • Add support for changing project name when switching vendors.

  • Add support for finding URLs in the project description.

  • Add support for ex code.google.com projects, now moved to github.

  • Add support for parsing sourceforge repos.

  • Added custom parser: - alembic - genshi - imapclient - mako - pyinotify - python-ldap - redis - uwsgi - pyaudio

0.8.0 (2017-03-29)

  • added custom parser: - mysqlclient, thanks @alexkiro

  • added custom launchpad backend, thanks to @alexkiro

0.7.0 (2017-03-06)

  • added custom parsers - cheroot - pyparsing - gunicorn - sqlalchemy - djangorestframework

  • tweaked the get_head function

0.6.1 (2017-02-08)

  • added flake8 special parser

0.6.0 (2017-02-03)

  • tweaked the parser, included tests for openpyxl

0.5.0 (2017-01-23)

  • include docs-src as docs candidate

0.4.0 (2017-01-23)

  • add better support for NPM packages

0.3.3 (2017-01-05)

  • fix packagin error (hopefully)

0.3.2 (2017-01-05)

  • use modules for custom imports, for packaging

0.3.1 (2017-01-03)

  • the find_changelogs and get_urls functions now also return the repo URLs

0.3.0 (2017-01-03)

  • allow to swap in the find_changelogs function

0.2.0 (2016-12-27)

  • added support for rubygems

  • added support for npm

0.1.0 (2016-12-19)

  • First release on PyPI.

Metadata

Release files for changelogs 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for changelogs 0.15.0
File Size Uploaded
changelogs-0.15.0.tar.gz 57.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for changelogs 0.15.0
File Interpreter ABI Platform
changelogs-0.15.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 96.6 kB

Release files / changelogs-0.15.0.tar.gz

Download URL changelogs-0.15.0.tar.gz
Size 57.7 kB
Tags Source
SHA-256 checksum
How to use checksums
87099c6b04ad54a716c0a7a41eff8bedf191bb29fe34cbb09a91ffd986990376
BLAKE2b-256 checksum
How to use checksums
387387fe89a07f39b9003e6be41b2ebdf67a0d0f91aee827846bc68cabae1078
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5

Release files / changelogs-0.15.0-py2.py3-none-any.whl

Download URL changelogs-0.15.0-py2.py3-none-any.whl
Size 38.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
521df6f22ef968af93d308524749e6ef2fec8f4bce8ca41443cf130fdc56b875
BLAKE2b-256 checksum
How to use checksums
5f7b6c195fe6ead8d81f7fabd89f47b1fd52694ea2d89edcaa516c10e1174564
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page