Package: changelogs
A changelog finder and parser with command line interface for packages available on pypi, npm, rubygems and launchpad.net. Originally developed forpyup.io.InstallationTo install changelogs, run this command in your terminal:$pipinstallchangelogsUsageTo 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 gemIf you are on macOS, you can chain theopencommand:changelogs babel npm >> babel.log && open babel.logAboutWhen 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 likeChanges.txt,NEWS.mdorhistory.rst.fetch the content and somewhat try to parse it.History0.15.0 (2020-12-27)Removed support for Python 2.7, 3.4 and 3.5Added support for Python 3.9Getting proper changelogs for beautifulsoup4 PyPi package againGetting proper changelogs for synapse PyPi package againStopped using bumpversionUpdated PyPi map.txt to reflect different packages changelogs location changesFixed bug while processing domain-only URLs (#155)0.14.0 (2018-01-9)Added a pypi/map.txt file to add custom URLS more easilyAdded 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-client0.13.0 (2018-01-9)Added a bunch of custom parser:
- robozilla
- websocket-client
- pep8-naming
- py-trello
- synapse
- django-haystack
- libsass
- lazy-object-proxy0.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
- pbr0.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
- beautifulsoup40.10.0 (2017-04-26)Added support for GitHub release pagesAdded experimental support for git commit log parsing0.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
- pyaudio0.8.0 (2017-03-29)added custom parser:
- mysqlclient, thanks @alexkiroadded custom launchpad backend, thanks to @alexkiro0.7.0 (2017-03-06)added custom parsers
- cheroot
- pyparsing
- gunicorn
- sqlalchemy
- djangorestframeworktweaked the get_head function0.6.1 (2017-02-08)added flake8 special parser0.6.0 (2017-02-03)tweaked the parser, included tests for openpyxl0.5.0 (2017-01-23)include docs-src as docs candidate0.4.0 (2017-01-23)add better support for NPM packages0.3.3 (2017-01-05)fix packagin error (hopefully)0.3.2 (2017-01-05)use modules for custom imports, for packaging0.3.1 (2017-01-03)the find_changelogs and get_urls functions now also return the repo URLs0.3.0 (2017-01-03)allow to swap in the find_changelogs function0.2.0 (2016-12-27)added support for rubygemsadded support for npm0.1.0 (2016-12-19)First release on PyPI.