**New features:**
- Consistently use `file` as an attribute to specify a filename (instead of `from_file` or `name`).
- Consistently use `n_iter` in beamformer algorithms that require setting a fixed or maximum number of iterations (e.g., `max_iter` deprecated).
- Adds new function `acoular.tools.helper.c_air` to calculate the speed of sound from temperature and humidity.
- `acoular.calib.Calib` can now be used as a separate processing block.
- Enable varying block buffer sizes for `acoular.process.SampleSplitter`.
- Replaces `HasPrivateTraits` with `HasStrictTraits` and `ABCHasStrictTraits` for better implementation of ABCs.
- Allow Path objects to specify the caching and time data directory via `acoular.Config`.
- Adds new abstract base classes `acoular.signals.PeriodicSignalGenerator` and `acoular.signals.NoiseGenerator`.
- Adds support for Python 3.13.
**Bugfixes**
- Pass missing `n_iter` as an argument to `LassoLarsCV` in `acoular.fbeamform.BeamformerGIB` (otherwise, `LassoLarsCV` runs up to 500 iterations).
- Fix broken `pylops` solvers in `acoular.fbeamform.BeamformerCMF`.
- Fixes negative values in source maps obtained with the solvers `LassoLars`, `LassoLarsCV`, and `LassoLarsBIC`.
- Fix use of `Trait()` factory and replace by `Enum`, `Instance`, `Map`, `Union`.
- Fix use of deprecated `CLong`, `Long`, and `ListInt` traits.
- The previously broken example in the main `README` now runs out of the box.
**Documentation**
- Adds guide on how to submit a pull request.
- Adds `intersphinx` extension to cross-link documentation from other projects.
- Updates examples to use a right-hand coordinate system.
**Tests**
- Tests now consequently use `pytest` framework instead of `unittest`.
- Separate tests into `tests/regression` and `tests/unittests` directories.
- Increases coverage to 76%.
- Introduces snapshot/regression testing for all `acoular.base.Generator`, `acoular.fbeamform.BeamformerBase`, `acoular.environments.FlowField`, and `acoular.environments.Environment` derived classes (results in new snapshot data of size 1.1MB, see `tests/regression/_regtest_output`).
- Use `pytest-cases` to separate parameters from tests (cases are located under `tests/cases`).
- Full coverage of `sdinput.py` module through the use of `pytest-mock` (mocks the behavior of an `InputStream` object, which cannot be used for CI due to missing audio interfaces).
- Linting and formatting for tests directory.
- Refactor `acoular.h5cache.HDF5Cache` class due to a bug encountered with the new tests (`acoular` now can handle changing caching directories during a session. Previously, only the basename was observed, which caused problems with changing cache directories).
- Tests now log the 10 slowest test runs.
- Adds `profile` options to hatch test environment to profile test run via `hatch run tests:profile` and save a `graphviz` chart as an SVG file.
- Test AIAA benchmark classes with the benchmark data.
- Test `aperture`, `center`, `export_mpos` functions in `acoular.microphones.MicGeom`.
- Fix a typo in `AngleTracker` that led to a property being incorrectly accessed.
- Exclude jited functions from test coverage report.
- Treat warnings as errors in tests.
- Recursively test for empty dependencies in `Property` traits that are depended on.
**Internal**
- Adds a pull request template.
- Dynamically set the version in the `pyproject.toml` file (from `version.py`).
- Activates maximum line length enforcement of 120 and 100 for comments and docstrings.
- Adds CI workflow for inspecting regression test outputs.
- Adds action that automatically assigns a team member to newly opened pull requests.
- `depends_on` now