This is a patch release from `v0.6.2` → `v0.6.3`.
Important Notes
* With the addition of writing ROOT files in [`uproot` `v4.1.0`](https://github.com/scikit-hep/uproot4/releases/tag/4.1.0) the `xmlio` extra no longer requires `uproot3` and all dependencies on `uproot3` and `uproot3-methods` have been dropped. (PR #1567). `uproot4` additionally brings large speedups to writing, which results in an order of magnitude faster conversion time for most workspace conversions from JSON back to XML + ROOT with [`pyhf json2xml`](https://pyhf.readthedocs.io/en/v0.6.3/cli.html#pyhf-json2xml).
* All backends are now fully compatible and tested with [Python 3.9](https://www.python.org/dev/peps/pep-0596/). (PR #1574)
* The TensorFlow backend now supports compatibility with TensorFlow `v2.2.1` and later and TensorFlow Probability `v0.10.1` and later. (PR 1001)
* The [`pyhf.workspace.Workspace.data()`][pyhf.workspace.Workspace.data] `with_aux` keyword arg has been renamed to `include_auxdata` to improve API consistency. (PR 1562)
Fixes
* The weakref bug with Click `v8.0+` was resolved. `pyhf` is now fully compatible with Click `v7` and `v8` releases. (PR 1530)
Features
Python API
* Model parameter names are now propagated to optimizers through addition of the [`pyhf.pdf._ModelConfig.par_names()`][pyhf.pdf._ModelConfig.par_names] API. [`pyhf.pdf._ModelConfig.par_names()`][pyhf.pdf._ModelConfig.par_names] also handles non-scalar modifiers with 1 parameter. (PRs 1536, 1560)
python
>>> import pyhf
>>> model = pyhf.simplemodels.uncorrelated_background(
... signal=[12.0, 11.0], bkg=[50.0, 52.0], bkg_uncertainty=[3.0, 7.0]
... )
>>> model.config.parameters
['mu', 'uncorr_bkguncrt']
>>> model.config.npars
3
>>> model.config.par_names()
['mu', 'uncorr_bkguncrt[0]', 'uncorr_bkguncrt[1]']
* The [`pyhf.pdf._ModelConfig`][pyhf.pdf._ModelConfig] `channel_nbins` dict is now sorted by keys to match the order of the `channels` list. (PR 1546)
* The [`pyhf.workspace.Workspace.data()`][pyhf.workspace.Workspace.data] `with_aux` keyword arg has been renamed to `include_auxdata` to improve API consistency. (PR 1562)
[pyhf.workspace.Workspace.data]: https://pyhf.readthedocs.io/en/v0.6.3/_generated/pyhf.workspace.Workspace.html#pyhf.workspace.Workspace.data
[pyhf.pdf._ModelConfig.par_names]: https://pyhf.readthedocs.io/en/v0.6.3/_generated/pyhf.pdf._ModelConfig.html#pyhf.pdf._ModelConfig.par_names
[pyhf.pdf._ModelConfig]: https://pyhf.readthedocs.io/en/v0.6.3/_generated/pyhf.pdf._ModelConfig.html#pyhf.pdf._ModelConfig
Changes
* docs: Add v0.6.3 release notes (1583)
* docs: Update JAX backend poisson docstring to jax v0.2.20 returns (1584)
* docs: Fix links to existing issues for 'docs' and 'feat' labels (1582)
* docs: Use GitHub Issue forms as Issue templates (1576)
* feat: Add support for Python 3.9 across all backends (1574)
* fix: Ensure TensorFlow backend Poisson compatibility with other backends (1001)
* ci: Use Google Cloud Storage buckets for long term JAX wheel stability (1579)
* docs: Add use citations from vCHEP 2021 (1572)
* chore: Remove unnecessary str conversions of pathlib.Path objects (1568)
* feat: Drop uproot3 for uproot4 for writing ROOT files (1567)
* fix: Remove .dockerignore to give clean working tree during Docker build (1569)
* style: Update validation scripts to be more Pythonic (1565)
* feat: Rename kwarg with_aux to include_auxdata in pyhf.Workspace.data API (1562)
* ci: Check sdist and wheel listed contents with python -m CLI (1563)
* feat: par_names handles non-scalar modifiers with 1 parameter (1560)
* docs: Promote comments to docstring examples for pyhf.event (1556)
* fix: Remove WeakList in favor of built-ins (1530)
* chore: Define OS in base image tag of Dockerfile (1552)
* docs: Add CITATION.cff Citation File Format file (1551)
* refactor: Use absolute imports over explicit relative imports (1539)
* feat: Sort `_ChannelSummaryMixin.channel_nbins` by keys to match `channels` order (1546)
* docs: Separate citations into 'use' and 'general' (1540)
* chore: [pre-commit.ci] pre-commit autoupdate (1542)
* docs: Add citation from heavy neutral leptons neutrino oscillation model paper (1537)
* docs: Add project origin summary (1415)
* feat: Propagate model parameter names to optimizers (1536)
* fix: Use nightly SciPy wheels from Anaconda in HEAD of dependencies testing (1533)
* test: Temporarily move to testing against SciPy pre-releases (1532)
* fix: Unrestrict jaxlib upper bound and exclude jaxlib v0.1.68 (524)
* test: Remove tests of deprecated simplemodels.hepdata_like API (1521)
* chore: [pre-commit.ci] pre-commit autoupdate (1520)
* docs: Update citation for 'Charged Lepton Flavor Violation at the EIC' paper (1518)
* docs: Add release notes URL to PyPI project urls metadata (1512)
* test: Remove 32b test_minimize tests from optim tests (1504)
* fix: Temporarily restrict jaxlib to below v0.1.68 (1502)