Closed cdparks closed 2 years ago
This probably needs a major version bump? I changed the type and selector names for exposed newtype constructors, though they were in an Internal
module.
Gonna hold this till @eborden 's back from PTO, curious if I missed anything
@eborden would you be able to push this over the line?
:exclamation: No coverage uploaded for pull request base (
main@94dd565
). Click here to learn what that means. The diff coverage isn/a
.
@@ Coverage Diff @@
## main #26 +/- ##
=======================================
Coverage ? 88.13%
=======================================
Files ? 17
Lines ? 236
Branches ? 1
=======================================
Hits ? 208
Misses ? 28
Partials ? 0
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 94dd565...fdd227b. Read the comment docs.
:point_up: this will merge on green.
According to the RFC, language tags and subtags are meant to be handled case-insensitively:
They are also ASCII-only, though they can be encoded in schemes that include ASCII:
This has bitten us recently with our backend failing to accept
en-gb
. Instead, we should parse tags and subtags without respect to case, and we should also allow lookups to be case-insensitive.Language
andCountry
are already stored in a canonical format, so they don't need special treatment, but all of our subtags were justnewtype
s aroundText
. I've added another newtypeCIText = CIText { unCIText :: CI Text }
and used that instead. This was less noisey than inliningCI Text
everywhere.@eborden I don't fully understand the
Trie
stuff, but I did add some tests, so let me know if I broke anything.