See all documentation for this version [here](https://qrules.rtfd.io/en/0.8.0).
💡 New features
<details>
<summary>Determine quantum number domains from a ParticleCollection (45)</summary>
From https://github.com/ComPWA/expertsystem/pull/486, but adapted so that ranges are generated: if there is some `Particle` in the inserted `ParticleCollection` with spin-1.5, the range will be `[0, 0.5, 1, 1.5]` (not just `[1.5]`). Also allows setting the maximum spin in _LS_-couplings.
</details>
<details>
<summary>Extend configuration arguments in facade functions (40) by wgradl</summary>
Allow setting the maximum angular momentum and spin magnitude through `check_reaction_violations()` and `generate_transitions()`.
</details>
⚠️ Interface
<details>
<summary>Rename default_settings to settings (43)</summary>
</details>
<details>
<summary>Rename to InteractionTypes to InteractionType (47)</summary>
Policy is that enums should be singular, so that the syntax makes more sense, especially in docstrings. For instance:
- "Which `InteractionType`?"
- "Use `InteractionType.WEAK` instead of..."
Same with the (already existing) `SolvingMode`.
</details>
<details>
<summary>Rename particles argument to particle_db in several functions (50)</summary>
Rename `particles` argument to `particle_db` in several functions and classes, such as the `StateTransitionManager`. This naming was introduced for `check_reaction_violations` (40) and makes more sense to the reader.
</details>
🐛 Bug fixes
<details>
<summary>Fix link to codacy badge (4)</summary>
</details>
<details>
<summary>Define testpaths in pytest.ini (42)</summary>
Since 8a3f33c, it is become impossible to run tests through VSCode. Defining `testpaths` in `pytest.ini` fixes this. In addition, it removes the last 'non-tox' section from the `tox.ini` file (see 2d9f620).
Note that this also allows running and debugging doctests from VScode :tada:
</details>
🔨 Internal maintenance
<details>
<summary>Added a test to verify default interaction settings (41)</summary>
Taken from https://github.com/ComPWA/expertsystem/pull/486 and in preparation of #40. The next step (before 40 idea is to deduce default interaction settings from a `ParticleCollection` (as was initially done in that PR, see https://github.com/ComPWA/expertsystem/pull/486#issuecomment-775040377)
</details>
📝 Documentation
<details>
<summary>Several improvements to the documentation</summary>
See 3, 35ebed2, 8d4e940, 44, and 8deee77
</details>
🖱️ Developer Experience
<details>
<summary>Split GitHub Actions workflow "CI" into CI-style, CI-docs, and CI-tests (36)</summary>
</details>
<details>
<summary>Let Read the Docs fail if there are warning (37)</summary>
</details>
<details>
<summary>Define all requirements setup.cfg and pin versions through constraint files (39)</summary>
With the release of [`pip-tools` v6.1.0](https://github.com/jazzband/pip-tools/releases/tag/6.1.0), `pip-compile` now correctly handles [`extras_require`](https://setuptools.readthedocs.io/en/latest/userguide/dependency_management.html#optional-dependencies). This allows for a big clean-up of the set-up introduced by https://github.com/ComPWA/expertsystem/pull/412.
Advantages:
- Easier for the user and developer! Just run:
`pip install -e .[dev]`
to get started developing,
`pip install -e .[dev] -U`
to try out upgrades, and
`pip install -c .constraints/py3.8.txt -e .[dev] -U`
in case you exactly want to reproduce the dependencies for some commit.
- The upgrade jobs become significantly faster: [bit over 1min](https://github.com/ComPWA/qrules/runs/2346236017?check_suite_focus=true) versus almost [3min](https://github.com/ComPWA/qrules/runs/2322145112?check_suite_focus=true)
- All requirements, their version domains, and the dependencies between each of the requirement sections can be nicely overseen and maintained within `setup.cfg`
- Git diffs for pull requests that affect dependencies become easier to oversee
- Less complexity and fewer changes per commit
</details>
<details>
<summary>Define testpaths in pytest.ini (42)</summary>
Since 8a3f33c, it is become impossible to run tests through VSCode. Defining `testpaths` in `pytest.ini` fixes this. In addition, it removes the last 'non-tox' section from the `tox.ini` file (see 2d9f620).
Note that this also allows running and debugging doctests from VScode :tada:
</details>