Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 23 additions & 13 deletions docs/contrib.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,7 @@ We use uv for managing dependencies. To install it, please follow the official g
After you have cloned the taskiq repo, install dependencies using this command:

```bash
uv sync
```

It will install all required dependencies.
If you want to run pytest against different python environments, please install `pyenv` using instructions from its [readme](https://github.com/pyenv/pyenv).

After pyenv is ready, you can install all python versions using this command:

```bash
pyenv install
uv sync --all-extras
```

## Linting
Expand All @@ -43,7 +34,6 @@ But even without installation, you can run all lints manually:
pre-commit run -a
```


## Testing

You can run `pytest` without any parameters and it will do the thing.
Expand All @@ -61,9 +51,29 @@ pytest -n 2
Also we use `tox` to test against different environments. You can publish a PR to run pytest with different
python versions, but if you want to do it locally, just run `tox` command.


```bash
tox
```

Tox assumes that you've installed python versions using pyenv with command above.
## Working with documentation

For documentation we use [VuePress 2](https://vuepress.vuejs.org/). To run documentation locally, use steps below.

First of all, install dependencies for documentation. We recommend to use `pnpm` for managing dependencies, but `package.json` is compatible with `npm` and `bun` for example as well:

```bash
pnpm i
```

After that, you can run documentation server with hot-reloading using:

```bash
pnpm docs:dev
```

If you want to check how documentation looks like in production mode, you can build it and then serve using:

```bash
pnpm docs:build
pnpm docs:serve
```
19 changes: 17 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,13 @@ dev = [
"pytest-cov>=7.0.0",
"coverage>=7.11.3",
"pytest-xdist[psutil]>=3.8.0",
"tox>=4.32.0",
"freezegun>=1.5.5",
"tzdata>=2025.2; sys_platform == 'win32'",
"opentelemetry-test-utils (>=0.59b0,<1)",
"polyfactory>=3.1.0",
# tests with all python versions
"tox>=4.32.0",
"tox-uv>=1.29.0",
]

[project.urls]
Expand Down Expand Up @@ -122,7 +124,7 @@ omit = [
]

[build-system]
requires = ["uv_build>=0.8.14,<0.9.0"]
requires = ["uv_build>=0.9.16,<0.10.0"]
build-backend = "uv_build"

[tool.uv.build-backend]
Expand Down Expand Up @@ -213,3 +215,16 @@ extend-immutable-calls = ["taskiq_dependencies.Depends", "taskiq.TaskiqDepends"]
extend-exclude = [
"docs/README.md", # because of identifier in head section
]

[tool.tox]
requires = ["tox>=4"]
isolated_build = true
env_list = ["3.13", "3.12", "3.11", "3.10"]

[tool.tox.env_run_base]
description = "Run tests with Python {base_python}"
runner = "uv-venv-lock-runner"
uv_sync_flags = ["--all-extras"]
commands = [
["pytest", "-vv", "-n", "auto"]
]
15 changes: 0 additions & 15 deletions tox.ini

This file was deleted.

43 changes: 43 additions & 0 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.