inveniosoftware / inveniosoftware/rfcs
[ADR] centralized test environment WIP
- Dominant language
- No language data
- Stars
- 4
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
### Motivation
centralize development and test environment
### Dreams 🔮
- remove configurations for linters from individual packages
- remove `run-tests.sh` from individual packages
- have a centralized place where linter configuration and test setup can be collected
- make github tests and local tests + development configuration collected from same place
- pyproject.toml as single configuration for package build (i.e. `MANIFEST.in`, build-backend, etc.)
- pyproject.toml contains only package build information (i.e. not config for Babel, linter, etc. This would be centralized)
- configuration for babel, tests, linter on centralized place
- translation configuration on centralized place
### interfaces
- `invenio start tests` command. (`invenio run tests` is not possible, `invenio run` starts a development server)
- one package on inveniosoftware which contains all configuration, javascript, python, linters, translations etc
### possible tools and technologies and concepts
- [ruff](https://github.com/astral-sh/ruff/)
- [uv](https://github.com/astral-sh/uv/)
- [tox](https://github.com/tox-dev/tox) vs [nox](https://github.com/wntrblm/nox) vs [hatch](https://github.com/pypa/hatch)
- [tox-uv](https://github.com/tox-dev/tox-uv)
- [dagger](https://dagger.io/)
- docker
- pytest-invenio
- [docker ruff](https://github.com/astral-sh/ruff/pkgs/container/ruff)
- [docker black](https://black.readthedocs.io/en/stable/usage_and_configuration/black_docker_image.html)
- [super-linter](https://github.com/super-linter/super-linter)
---
### Next steps
1. Move config to `pyproject.toml`
2. Test out the following tools for a centralized config workflow (in this order):
- [pre-commit](https://pre-commit.com/#usage)
- tox/nox
- `invenio-cli tests`
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.