This release adds Reversible Recom to GerryChain. This entails
- A recom proposal that is reversible `reversible_recom()`
- A function to produce a uniform spanning tree via Wilson's algorithm
- a faster memoization algorithm to find balanced edge cuts
All of these above changes were led by pjrule (thanks!)
There are also some fixes that had been sitting for a while:
- Assignment validation (281 & 285 --- thanks zschutzman!)
- Non-recursive ReCom, fixing recursion depth errors (283)
- Fix a bug in the MarkovChain's acceptance function logic (290)
- Fix `ignore_errors` being ignore in `Graph.from_file` (291)
We also moved both the partisan scores (previously in `gerrychain.scores`) and compactness scores (previously in `gerrychain.updaters`) to a new `gerrychain.metrics` submodule. This is a breaking change for anyone using `gerrychain.scores`.
Note -- even though GitHub says Max released this version, it is only partially true. The RevRecom changes were the doing of Bhushan - who should be blamed for any breaks with this release!