How Pinax Release Notes Are Generated
Given that GitHub and PyPI both have APIs that we can query, it didn't take long to sort out that we could do a pretty good job of doing the following in a management command:
- Query GitHub for a list of public repos for an org
- Query PyPI for all the releases based on the fact that we name our repos the same as the PyPI package name
- Query GitHub for the list of commits for the date range of the release
- Then format the data and create the blog post
We have a special state called Raw
for all generated Release Notes posts. This
allows us to then manually curate them. Here will will review the bullet list of
commit messages to tidy them up into release notes before publishing. This allows
for us to focus 100% of our energy of making good release notes, rather than the
other 95% of work that goes into producing release notes that is repetitive and
easy enough to automate.