* Relaxed checks made on `X` in `_validate_and_reformat_input()` since that is the concern of the underlying estimator and not Fairlearn.
* Add support for Python 3.9 and 3.10, remove support for Python 3.6 and 3.7
* Added error handling in `MetricFrame`. Methods `group_max`,`group_min`, `difference` and `ratio` now accept `errors` as a parameter, which could either be `raise` or `coerce`.
* Fixed a bug whereby passing a custom`grid` object to a`GridSearch` reduction would result in a `KeyError` if the column names were not ordered integers.
* `fairlearn.preprocessing.CorrelationRemover` now exposes `n_features_in_` and `feature_names_in_`.
* Added the ACSIncome dataset and corresponding documentation.
* Add `sphinxcontrib-bibtex` extension to manage citations in documentation using bibtex.
* Added support for explicitly specifying optimization objective in `fairlearn.reductions.ExponentiatedGradient`. Added support for cost sensitive classification in `fairlearn.reductions.ErrorRate`.
* Internal performance improvements for `fairlearn.metrics.MetricFrame`. Some results may now have a more appropriate type than`object`, but otherwise the only visible difference should be a substantial speed increase.
* Added `fairlearn.metrics.plot_model_comparison` to create scatter plots for comparing multiple models along two metrics.
* Added adversarial mitigation approaches `fairlearn.adversarial.AdversarialFairnessClassifier` and `fairlearn.adversarial.AdversarialFairnessRegressor`.