I’ve hacked together a horrible thing in Python, and made it available in mysql-release-notes
on GitHub.
It’s a Python project (done with uv
) that downloads
all MySQL release notes, dumps them into a release_notes folder,
and then parses them, pushing everything into a database.
It uses SQLAlchemy and mysqlclient to connect to the database.
It generates a schema (not preserving any data), and fills it with all the release notes we have.
The schema is a simple star.
For each release, we have many issues, and for each issue we store a number of properties. Properties aren’t stored as plain text — they’re encoded, and we only keep the property ID.
Sample queries like
select t.contributor,
min(r.release_date), min(r.version),
max(r.release_date), max(r.version), …
[Read more]