requires.io | Tue 22 July 2014 Alexis Tabary

Requires.io is proud to introduce a new feature: changelogs for your requirements!

Knowing that a dependency is outdated is only the first step towards upgrading: you also want to check the changelog before moving forward, unless of course your CI is top notch. Requires.io brings these changelogs right on your requirements page!

Changelog of Kenneth Reitz' requests.

You can check any public project monitored by requires.io to see what it looks like, for instance:

It is not quite perfect yet: some changelogs are not parsed correctly, or are missing because we do not know how to find them automatically. Expect incremental improvements as we refine the crawling/parsing.

For Package Maintainers

This is a short guide for package maintainers who wish to have the changelog of their library on requires.io in case it isn't there already.

We look for changelogs in two different places:

  1. PyPI Descriptions

    We look at the description of the package hosted on pypi. It is encoded in reStructuredText.

    An example that works very well for us is Kenneth Reitz' requests.

  2. Changelog Files on GitHub/Bitbucket

    We look for files named changes or changelog (case insensitive), with or without extension, at the root of the package directory if it is hosted on BitBucket or GitHub.

    Of course for us to find the file, you first need to make sure we actually know where your project is hosted! This can be done by setting the url in the metadata of the project (for instance as home_url), or by putting a link in the description of the project: we will find it providing the project name on GitHub/Bitbucket matches the name of the package on pypi.

    We then parse the file as reStructuredText or Markdown according to the file extension: so changes.md will be parsed as markdown while changes.rst will be parsed as reStructuredText. If there is no extension, we try to guess... with varying degrees of success.

    Example of projects that works well for us are:

    • lxml (it would be even better with .rst as an extension rather than .txt),
    • six (as you can see it works even without any extension at all).

I just updated my Changelog, how do I update it on requires.io?

Drop us an email here: support@requires.io! We will do a re-run of the crawling and parsing of your package.