Algebraic Data Types - Planning 2018-06-20
In this post:
- I lay out a bunch of tasks I want to accomplish.
- I specify what the tests I write should cover.
- I mention what I've accomplished so far, iterating on this.
- I list some goals for the end of the week.
I'm still figuring out exactly what these new posts entail, but here's what I've decided to do this week for Structured Data:
- Get it ready for Python 3.7, which comes out in a week.
- Ergonomics tweaks to the code.
- As far as the documentation, figure out which bits of it are out of date, and update them. This definitely includes the documentation on how testing works.
- Update the changelog according to Keep a Changelog.
- As I work on the documentation, figure out which bits of the code need to be documented, or can be moved around. I don't want to touch behavior, but the code "organization" right now is a whole... big... thing.
- Add whatever tests I think of, for purposes of increasing coverage.
Tests needed:
- Various permutations of type annotation syntaxes. Should these be in some kind of dedicated module (to provide proper access to globals)? Need to handle various styles of deferred annotation.
- Error paths.
So far:
- Got Codecov working properly with Appveyor.
- Fixed an error in coercing constructor instances to bool.
- Discovered that there really isn't much point in supporting Python 3.5.
- Removed the necessity of using some awkward syntax.
When the week is done:
- The documentation should be ready for version 0.2.0, out next week.
- Coverage should be at at least 50%, easily.
Next time, I start writing tests, so that there's basic functionality, verifying error paths, and generally improved coverage. Hillel Wayne calls these "automanual" tests, and I'm interested in trying out the other ideas he mentions, but I need a baseline of tests first.