Skip to content
Open
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
85fdae5
chore: migrate from Poetry to uv
arunsureshkumar May 22, 2026
081dfb0
chore: remove obsolete build/config files
arunsureshkumar May 22, 2026
b85d840
refactor: move tests/ to project root
arunsureshkumar May 22, 2026
a93f527
refactor: split tests into synchronous/ and asynchronous/ subdirectories
arunsureshkumar May 22, 2026
3bc556b
refactor: convert synchronous/ tests to true sync and fix get_node
arunsureshkumar May 22, 2026
82c5c9e
refactor: restructure graphene_mongo to mirror mongoengine layout
arunsureshkumar May 22, 2026
e9bb174
feat: add async equivalents of sync-only test files
arunsureshkumar May 22, 2026
8cfa1e8
feat: replace dataloaders with select_related for N+1 elimination
arunsureshkumar May 22, 2026
219cabc
chore: add tox.ini and clean up pyproject.toml
arunsureshkumar May 22, 2026
026556a
chore: update uv.lock after removing aiodataloader and setuptools
arunsureshkumar May 22, 2026
88f388d
chore: isolate tox envs with per-env DB names and pin mongoengine git…
arunsureshkumar May 22, 2026
7d540ea
chore: overhaul CI to match mongoengine pattern
arunsureshkumar May 22, 2026
830f348
feat: add FastAPI example and modernize existing examples
arunsureshkumar May 22, 2026
a5fd03e
chore: convert examples to uv (pyproject.toml)
arunsureshkumar May 22, 2026
fbe3d27
docs: overhaul documentation
arunsureshkumar May 22, 2026
1315746
feat: push reference field filters into $lookup sub-pipeline for sing…
arunsureshkumar May 23, 2026
accaefd
perf: skip count_documents when pageInfo is not requested
arunsureshkumar May 23, 2026
bfc2105
refactor: extract shared connection field logic into base class
arunsureshkumar May 23, 2026
ae95f2b
refactor: extract shared ObjectType factory logic into base/types.py
arunsureshkumar May 23, 2026
ca5849a
chore: remove unused imports
arunsureshkumar May 23, 2026
f379438
chore: remove dead sys.version_info >= (3, 6) guard in converter
arunsureshkumar May 23, 2026
53f0493
chore: modernise codebase for Python 3.10+
arunsureshkumar May 23, 2026
3b66aec
docs: add comprehensive docstrings to all classes and functions
arunsureshkumar May 23, 2026
dfe89be
docs: remove RST markup from docstrings to fix warnings
arunsureshkumar May 23, 2026
236ab78
chore: suppress false-positive classmethod warning and fix docstring …
arunsureshkumar May 23, 2026
ce031ac
docs: add Meta options and field type mapping tables to README
arunsureshkumar May 23, 2026
580fcb6
style: fix indentation in convert_field_to_list
arunsureshkumar May 24, 2026
1a4065c
refactor: remove ListFieldResolver and UnionFieldResolver
arunsureshkumar May 24, 2026
ce8f335
refactor: remove DynamicReferenceFieldResolver — select_related handl…
arunsureshkumar May 24, 2026
66b0f53
docs: add How It Works section explaining query-driven pre-fetching
arunsureshkumar May 24, 2026
21c58af
docs: clarify that get_queryset returning a QuerySet also gets select…
arunsureshkumar May 24, 2026
4633c83
feat: apply select_related to QuerySet returned from custom connectio…
arunsureshkumar May 24, 2026
f48a49d
feat: add OpenTelemetry tracing, select_related pre-fetching, and asy…
arunsureshkumar May 24, 2026
950d917
docs: overhaul documentation structure and content
arunsureshkumar May 24, 2026
34bba7a
chore: expand MongoDB version matrix to 4.4–8.0
arunsureshkumar May 24, 2026
4e7f5ad
fix: install ruff via --with flag in linting CI step
arunsureshkumar May 24, 2026
ad93e4c
fix: resolve all ruff linting errors and install tox via --with in CI
arunsureshkumar May 24, 2026
0d5cf54
refactor: remove built-in OpenTelemetry tracing — use graphene middle…
arunsureshkumar May 24, 2026
b00b1f6
chore: remove accidental worktree submodule from index
arunsureshkumar May 24, 2026
67955e0
refactor: remove telemetry test files
arunsureshkumar May 24, 2026
73c83bd
chore: bump actions/checkout to v6 and setup-uv to v8 for Node.js 24
arunsureshkumar May 24, 2026
4ebd763
fix: use full version tag astral-sh/setup-uv@v8.1.0
arunsureshkumar May 24, 2026
6aa18a0
chore: add pre-commit hook with ruff
arunsureshkumar May 24, 2026
546a2c2
chore: bump mongoengine to v0.30.0-alpha.4
arunsureshkumar May 24, 2026
c8879dc
chore: align CI with mongoengine pattern
arunsureshkumar May 25, 2026
4fb5954
feat: add ZonedDateTimeField support and harden test suite
arunsureshkumar May 25, 2026
d3405a0
chore: bump examples to mongoengine v0.30.0-alpha.5 and clean async docs
arunsureshkumar May 25, 2026
298f3c3
chore: bump tox.ini to mongoengine v0.30.0-alpha.5
arunsureshkumar May 25, 2026
60c20de
chore: rename ZonedDateTimeField → AwareDateTimeField (mongoengine v0…
arunsureshkumar May 25, 2026
46e219c
feat: replace ZonedDateTimeType with AwareDateTimeScalar (RFC 9557 IX…
arunsureshkumar May 25, 2026
97ae436
test: add three missing select_related scenarios to deep stress tests
arunsureshkumar May 25, 2026
5d3c0e9
fix: ensure extra_args handle unresolved federated types.
arunsureshkumar Jun 22, 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
89 changes: 56 additions & 33 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,65 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Test Package
name: CI

on:
push:
branches: [ "master" ]
pull_request:
push:
workflow_dispatch:

permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
MAIN_PYTHON_VERSION: "3.14"

jobs:
build:
linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v8.1.0
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Install dev dependencies
run: uv sync --only-group dev
- name: Run pre-commit
run: uv run pre-commit run -a

test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
runs-on: ${{ matrix.os }}
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
mongodb-version: ["4.4", "5.0", "6.0", "7.0", "8.0", "8.3"]
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v8.1.0
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Start MongoDB ${{ matrix.mongodb-version }}
uses: supercharge/mongodb-github-action@1.12.1
with:
mongodb-version: ${{ matrix.mongodb-version }}
- name: Install test dependencies
run: uv sync --only-group test
- name: Run tests
run: |
uv run tox -e py$(echo "${{ matrix.python-version }}" | tr -d .)

build:
runs-on: ubuntu-latest
needs: [linting, test]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install poetry
poetry config virtualenvs.create false
poetry install --with dev
- name: Lint with ruff
run: make lint
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.12.1
with:
mongodb-replica-set: test-rs
- name: Run Tests
run: make test
- name: Build Package
run: |
poetry build
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v8.1.0
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Build wheel
run: uv build
28 changes: 0 additions & 28 deletions .github/workflows/lint.yml

This file was deleted.

62 changes: 9 additions & 53 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,64 +1,20 @@
name: Publish to PyPI
name: Publish

on:
release:
types: [published]

permissions:
contents: read

jobs:
build:
strategy:
matrix:
os: [ubuntu-latest]
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install poetry
poetry config virtualenvs.create false
poetry install --with dev
- name: Lint
run: |
make lint
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.12.1
with:
mongodb-replica-set: test-rs
- name: Run Tests
run: make test
- name: Build Package
run: |
poetry build

publish:
needs: build
runs-on: ubuntu-latest
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
- name: Build package
run: |
poetry build
- name: Build package
run: |
poetry build
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
with:
python-version: "3.14"
- name: Build
run: uv build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ htmlcov/
*.swo
*.swp
venv/
.venv/
.vscode/
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.11.10
hooks:
- id: ruff
args: [--fix]
4 changes: 0 additions & 4 deletions MANIFEST.in

This file was deleted.

12 changes: 5 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,23 @@ clean:
@find . -name "__pycache__" -delete

lint:
@ruff check graphene_mongo
@ruff format . --check
@uv run ruff check graphene_mongo
@uv run ruff format . --check

test: clean
pytest graphene_mongo/tests --cov=graphene_mongo --cov-report=html --cov-report=term
uv run pytest tests --cov=graphene_mongo --cov-report=html --cov-report=term

register-pypitest:
#python setup.py register -r pypitest

deploy-pypitest: clean
poetry build
#poetry publish --repository testpypi
uv build
twine upload --repository testpypi dist/*

register:
#python setup.py register -r pypi

deploy: clean
poetry build
uv build
twine upload dist/*
#poetry publish

Loading
Loading