Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3acc802
Add GitHub workflows, issue templates, and project configuration
Sep 29, 2026
c56818f
Fix typo in lint and mypy target directory
Sep 29, 2026
22e9f74
Add `--isolates=0` to pytest coverage run commands
Sep 29, 2026
0d60bfb
Update locklib to 0.0.25
Sep 29, 2026
ea6a296
Rename throngest to pytest-throng and add pytest plugin
Sep 29, 2026
6045a37
Remove empty throngest/__init__.py
Sep 29, 2026
d32e4c6
Add throngtest package with type marker
Sep 29, 2026
54b52aa
Add throngtest plugin to distribute pytest tests across isolates
Sep 29, 2026
cc59a67
Add integration, unit, and xdist tests
Sep 29, 2026
183a4dd
Write comprehensive throngtest README
Sep 29, 2026
8d1e889
Update project URLs to point to throngtest repository
Sep 29, 2026
b06157e
Add coverage paths to merge installed and checkout packages
Sep 29, 2026
b0eef0e
Parametrize diagnostic test to cover Windows-style separators
Sep 29, 2026
f695d6b
Optimize interrupted status check in worker
Sep 29, 2026
e5f7591
Add pristan to base task dependencies
Sep 29, 2026
c8dad36
Add pytest-cov dependency to dev requirements
Sep 29, 2026
16265ee
Add coverage agent support for isolated workers
Sep 29, 2026
61796a3
Add comprehensive tests for coverage agents and transport
Sep 29, 2026
ad8bb84
Add coverage support with coverage run and pytest-cov agents
Sep 29, 2026
5e6fa67
logos
Sep 30, 2026
857644f
logos
Sep 30, 2026
d998164
Replace logo_2.svg with wide banner design
Sep 30, 2026
8c6fd12
Add project logo to README
Sep 30, 2026
996b40b
Remove redundant title from README
Oct 1, 2026
25c0bd1
Add project badges to README
Oct 1, 2026
59a7aab
Ensure temporary coverage data file is deleted
Oct 1, 2026
62972bb
Add test for releasing damaged coverage database before cleanup
Oct 1, 2026
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
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: pomponchik

---

## Short description

Replace this text with a short description of the error and the behavior that you expected to see instead.


## Describe the bug in detail

Please add a test that reproduces the bug (i.e., currently fails):

```python
def test_your_bug():
...
```

When writing the test, please ensure compatibility with the [`pytest`](https://docs.pytest.org/) framework.

If for some reason you cannot describe the error in the test format, describe the steps to reproduce it here.


## Environment
- OS: ...
- Python version (the output of the `python --version` command): ...
- Version of this package: ...
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/documentation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Documentation fix
about: Add something to the documentation, delete it, or change it
title: ''
labels: documentation
assignees: pomponchik
---

## It's cool that you're here!

Documentation is an important part of the project; we strive to make it high-quality and keep it up to date. Please adjust this template by outlining your proposal.


## Type of action

What do you want to do: remove something, add something, or change something?


## Where?

Specify which part of the documentation you want to change. For example, the name of an existing documentation section or a line number in `README.md`.


## The essence

Please describe the essence of the proposed change.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: pomponchik

---

## Short description

What do you propose and why do you consider it important?


## Some details

If you can, provide code examples that will show how your proposal will work. Also, if you can, indicate which alternative approaches you have considered. And finally, describe how you propose to verify that your idea is implemented correctly, if at all possible.
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: Question or consultation
about: Ask anything about this project
title: ''
labels: question
assignees: pomponchik

---

## Your question

Here you can freely describe your question about the project. Please read the documentation provided before doing this, and ask the question only if it is not answered there. In addition, please keep in mind that this is a free non-commercial project and user support is optional for its author. Response times are not guaranteed.
63 changes: 63 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Lint

on:
push

jobs:
build:

runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', '3.14t', '3.15']

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
# Prerelease CPython ABIs can change; keep 3.15 aligned with current wheels.
allow-prereleases: true
check-latest: ${{ matrix.python-version == '3.15' }}

- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dependencies
shell: bash
run: uv pip install --system -r requirements_dev.txt

- name: Install the library
shell: bash
run: uv pip install --system .

- name: Run ruff
shell: bash
run: ruff check throngtest

- name: Run ruff for tests
shell: bash
run: ruff check tests

- name: Run mypy
shell: bash
run: >-
mypy
--show-error-codes
--strict
--disallow-any-decorated
--disallow-any-explicit
--disallow-any-expr
--disallow-any-generics
--disallow-any-unimported
--disallow-subclassing-any
--warn-return-any
throngtest

- name: Run mypy for tests
shell: bash
run: mypy --exclude '^tests/typing/' tests
39 changes: 39 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Release

on:
push:
branches:
- main

jobs:
pypi-publish:
name: upload release to PyPI
runs-on: ubuntu-latest
# Specifying a GitHub environment is optional, but strongly encouraged
environment: release
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dependencies
shell: bash
run: uv pip install --system -r requirements_dev.txt

- name: Build the project
shell: bash
run: python -m build .

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
71 changes: 71 additions & 0 deletions .github/workflows/tests_and_coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Tests

on:
push

jobs:
build:

runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', '3.14t', '3.15']

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
# Prerelease CPython ABIs can change; keep 3.15 aligned with current wheels.
allow-prereleases: true
check-latest: ${{ matrix.python-version == '3.15' }}

- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install dependencies
shell: bash
run: uv pip install --system -r requirements_dev.txt

- name: Install the library
shell: bash
run: uv pip install --system .

- name: Print all libs
shell: bash
run: uv pip list --system

- name: Run tests and show coverage on the command line
shell: bash
run: |
pth_file="$(python -c 'import sysconfig; print(sysconfig.get_path("purelib"))')/throng_coverage_process_startup.pth"
printf "import os; os.getenv('COVERAGE_PROCESS_START') and __import__('coverage').process_startup()\n" > "$pth_file"
coverage erase
COVERAGE_PROCESS_START="$PWD/pyproject.toml" coverage run -m pytest --isolates=0 -n auto --cache-clear --assert=plain
coverage combine
coverage report -m --fail-under=100
coverage xml

- name: Upload coverage to Coveralls
if: runner.os == 'Linux'
env:
COVERALLS_REPO_TOKEN: ${{secrets.COVERALLS_REPO_TOKEN}}
uses: coverallsapp/github-action@v2
with:
format: cobertura
file: coverage.xml
continue-on-error: true

- name: Run tests and show the branch coverage on the command line
shell: bash
run: |
pth_file="$(python -c 'import sysconfig; print(sysconfig.get_path("purelib"))')/throng_coverage_process_startup.pth"
printf "import os; os.getenv('COVERAGE_PROCESS_START') and __import__('coverage').process_startup()\n" > "$pth_file"
coverage erase
THRONG_COVERAGE_BRANCH=true COVERAGE_PROCESS_START="$PWD/pyproject.toml" coverage run -m pytest --isolates=0 -n auto --cache-clear --assert=plain
coverage combine
coverage report -m --fail-under=100
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
.DS_Store
__pycache__
venv
.pytest_cache
build
dist
*.egg-info
test.py
.coverage
.coverage.*
.idea
.ruff_cache
.mutmut-cache
.mypy_cache
html
CLAUDE.md
.claude
mutants
planning_features.md
coverage.xml
Loading
Loading