octoDNS v0.9.9 Release Notes

Release Date: 2019-11-04 // 7 months ago
    • 👍 Extensive pass through the whole codebase to support Python 3
      • Tons of updates to replace def __cmp__ with __eq__ and friends to preserve custom equality and ordering behaviors that are essential to octoDNS's processes.
      • Quite a few objects required the addition of __eq__ and friends so that they're sortable in Python 3 now that those things are more strict. A few places this required jumping through hoops of sorts. Thankfully our tests are pretty thorough and caught a lot of issues and hopefully the whole plan, review, apply process will backstop that.
      • Explicit ordering of changes by (name, type) to address inconsistent ordering for a number of providers that just convert changes into API calls as they come. Python 2 sets ordered consistently, Python 3 they do not. https://github.com/github/octodns/pull/384/commits/7958233fccf9ea22d95e2fd06c48d7d0a4529e26
      • Route53 _mod_keyer ordering wasn't 100% complete and thus unreliable and random in Python 3. This has been addressed and may result in value reordering on next plan, no actual changes in behavior should occur.
      • incf.countryutils (in pypi) was last released in 2009 is not python 3 compatible (it's country data is also pretty stale.) pycountry_convert appears to have the functionality required to replace its usage so it has been removed as a dependency/requirement.
      • Bunch of additional unit tests and supporting config to exercise new code and verify things that were run into during the Python 3 work
      • lots of sixing of things
    • Validate Record name & fqdn length

Previous changes from v0.9.8

    • No material changes