Updating a Python Package After 5 Years, and Colourettu 2.1.1. Released

So over the weekend as a Hackoberfest project, I decided to update a project that hadn’t been touched in five years.

That project is Colourettu, I library I wrote several years back to do some basic colour theme management. The last release was version 2.0.0, released in November 2016, basically five years ago. If feels a little bit like cheating to work on my own project for Hackoberfest, but it is officially allowed and the project could use a little love, and it is Open Source. So I don’t feel too bad about it.

Five years ago, Python 3.5 was the most recent Python version out, and the project had recently dropped official 2.6 support, but was still officially supporting Python 2.7. Today, the oldest version of Python supported is 3.6, and version 3.10 just came out a few days ago. Also, I’m not longer worried about supporting Python 2.

But even having gone through that many Python updates, I actually didn’t need to make any changes to actual code base. Most of the changes I needed to do were actually related to the support services around the project. The most significant was the switch from Travis-CI to GitHub Actions for automated testing. Five years ago, Travis was basically the best and only way to do automated testing on pull requests; today it’s faded away. Although it was still technically online today, I couldn’t figure out how to get Travis to work at all. And without an obvious free option with Travis, it seemed like a good time to move to GitHub Actions. Setting up GitHub Actions proved rather straightforward, with the only missing piece being how to mark a particular case as an “allowed failure” (readers, any suggestions?).

There were a couple of other random updates: a couple of private forks for packages used by the documentation site had to be updated to provide PEP-440 compatible version numbers. I also had to adjust the format of math formulas in the documentation to make Sphinx 4 happy. I also updated the release script; I was running an earlier version of minchin.releaser that I’ve since updated and packaged. The most changes were due to black-ify-ing the codebase.

So I was happily surprised at how well this “old” Python code ran; hopefully the next five years will prove as boring!


See my previous post for earlier changelog entries.

Version 2.1.1 — October 5, 2021

  • bug Documentation: fix formula rendering for Sphinx 4.2

Version 2.1.0 — October 5, 2021

  • feature Pull Request 148 various updates to ensure that the package is still installable (and hackable) on current versions of Python
  • bug Pull Request 148 proofread documentation
  • support Issue 7 upgrade to minchin.releaser package. Colourettu was previously using an early vendorized version of this.
  • support Pull Request 147 update minimum versions of several dependencies to remove support for version with known security issues.
  • support Pull Request 148 drop official support for Python < 3.6, including dropping support for Python 2. I haven’t changed anything in the codebase that I expect will break these earlier versions, but I’m no longer testing against them.
  • support Pull Request 148 switch to personal fork of PSphinxTheme and lconf lexer (i.e. basically the documentation theme) as to provide versions that can be installed with current versions of pip. Specifically, these private version provide PEP440-style version numbers.
  • support Pull Request 148 black-ify codebase
  • support Pull Request 148 update isort to v5
  • support Pull Request 149 swap from Travis-CI to GitHub Actions for Continuous Integration

Other posts

Other posts under Colourettu


There are no comments yet. Will add the first one?

Add a Comment

You can use the Markdown syntax to format your comment.

or alternately, send me your thoughts at minchinweb [at]

Comment Atom Feed (for this post)