A changelog finder and parser.
Project description
.. image:: https://img.shields.io/pypi/v/changelogs.svg
:target: https://pypi.python.org/pypi/changelogs
.. image:: https://img.shields.io/travis/pyupio/changelogs.svg
:target: https://travis-ci.org/pyupio/changelogs
.. image:: https://readthedocs.org/projects/changelogs/badge/?version=latest
:target: https://changelogs.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/pyupio/changelogs/shield.svg
:target: https://pyup.io/repos/github/pyupio/changelogs/
:alt: 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_.
.. _pyup.io: https://pyup.io/
************
Installation
************
To install changelogs, run this command in your terminal:
.. code-block:: console
$ 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 homapage 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
=======
UNRELEASED
------------------
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.
:target: https://pypi.python.org/pypi/changelogs
.. image:: https://img.shields.io/travis/pyupio/changelogs.svg
:target: https://travis-ci.org/pyupio/changelogs
.. image:: https://readthedocs.org/projects/changelogs/badge/?version=latest
:target: https://changelogs.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/pyupio/changelogs/shield.svg
:target: https://pyup.io/repos/github/pyupio/changelogs/
:alt: 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_.
.. _pyup.io: https://pyup.io/
************
Installation
************
To install changelogs, run this command in your terminal:
.. code-block:: console
$ 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 homapage 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
=======
UNRELEASED
------------------
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.
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
changelogs-0.12.0.tar.gz
(52.4 kB
view hashes)
Built Distribution
Close
Hashes for changelogs-0.12.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cb69e2ac0a09a2f3bd93fb95d4505c15670f3b0069c8ce5e2660a695541ac59 |
|
MD5 | f778e14568308fc93c370f6bd4c99f34 |
|
BLAKE2b-256 | 3e6ba39c019632c89990340da448bf38a466e2630c617b709806f4162b4ef9de |