Closed tombh closed 1 year ago
Strange that CI is failing with error: missing trait method provided by default:
__private_get_type_id__``, and I can't see the error locally. It must some tool versioning going on, like mismatching Clippy versions or something. I'll see if I can figure it out now, cos one all the versions have been set, this CI/local divergence should never happen again.
Ok, so the only remaining thing is to figure out what's going on with the lint error on CI. It could be easily ignored, but it's worth me going over all the places where version pinning is needed, so that we don't get this divergence again.
So the CI error was caused by the Github Cargo action using the latest rustc
version v1.66. Once I installed that version locally I could reproduce the lint error. So I've now pinned the minimum Rust version to 1.66. This is not at all a requirement. There doesn't seem to be a way to tell Cargo to support a max version. I believe compatibility is handled simply by specifying the "stable toolchain" which is the default unless explicitly specified.
I'm not sure what the best approach here is. For example one approach is to pin the Github action to a specific rustc
version. But whilst we haven't identified any hard requirements on a specific version yet, maybe it's good to let the Github action automatically use the latest version for each run?
I was just about to rebase this now, but I've got to take a call! Be right back...
This is my first review of the codebase. There may seem to be a lot of feedback, but it is in fact all merely referring to idiomatic code and known conventions. The design and quality is already very good, and could reasonably be shipped as-is.
In this particular case I've made the format of the review as a series of commits, each commit attempting to introduce a single new idiom or convention. I've pasted the Git log here for ease of reading. The commits are in reverse order, therefore the oldest appears first. Also, where possible, I made the commits in order of significance, therefore the most important and idiomatic changes appear first. Though don't take that too literally, as sometimes I needed to make less significant preparatory commits to allow the following commit to be usefully isolated.
I would recommend clicking on each commit, reading its message and viewing the diff. Like that it should be hopefully possible to see the single idea I'm introducing in each step.