From 001b7ad4e2a150f8eafc9b3d4732e426df3156b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20=C5=9Aliwi=C5=84ski?= Date: Tue, 6 Jan 2026 11:43:26 +0100 Subject: [PATCH 1/4] Generate diagram workflow - refs #1244 --- .github/workflows/diagram.yml | 27 +++++++++++++++++++++++++++ .pre-commit-config.yaml | 1 + docs/architecture.mmd | 19 +++++++++++++++++++ docs/images/.keep | 0 docs/puppeteer-config.json | 6 ++++++ 5 files changed, 53 insertions(+) create mode 100644 .github/workflows/diagram.yml create mode 100644 docs/architecture.mmd create mode 100644 docs/images/.keep create mode 100644 docs/puppeteer-config.json diff --git a/.github/workflows/diagram.yml b/.github/workflows/diagram.yml new file mode 100644 index 00000000..9871979a --- /dev/null +++ b/.github/workflows/diagram.yml @@ -0,0 +1,27 @@ +name: Render Mermaid Diagrams +on: + push: + paths: + - 'docs/*.mmd' # Trigger only when mermaid files change + +jobs: + render: + runs-on: ubuntu-latest + # Grant the action permission to write to the repository + permissions: + contents: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Mermaid CLI + run: npm install -g @mermaid-js/mermaid-cli + + - name: Render Diagram + run: mmdc -p docs/puppeteer-config.json -i docs/architecture.mmd -o docs/images/architecture.svg -t neutral + + - name: Commit and Push + uses: stefanzweifel/git-auto-commit-action@v7 + with: + commit_message: "docs: update rendered mermaid diagram [skip ci]" + file_pattern: 'docs/images/*.svg' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fb022d87..b5638516 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,6 +19,7 @@ repos: - id: mixed-line-ending - id: check-yaml - id: pretty-format-json + args: [--autofix] - id: detect-private-key - id: debug-statements diff --git a/docs/architecture.mmd b/docs/architecture.mmd new file mode 100644 index 00000000..50c9d61a --- /dev/null +++ b/docs/architecture.mmd @@ -0,0 +1,19 @@ +sequenceDiagram + autonumber + participant Pytest as Pytest runner + participant ProcFactory as postgresql_proc_factory + participant PgServer as PostgreSQL process + participant TemplateDB as Template DB (seeded) + participant TestDB as Per-test DB (clone) + + Pytest->>ProcFactory: request postgresql_proc with load=[load_database] + ProcFactory->>PgServer: start server + ProcFactory->>TemplateDB: invoke load_database (create metadata, seed data) + Note right of TemplateDB: Template is created and seeded once per full run + loop per test + Pytest->>PgServer: request clone of TemplateDB + PgServer->>TestDB: create cloned database for test + Pytest->>TestDB: run test using cloned DB + Pytest->>TestDB: teardown: commit transaction + Pytest->>TestDB: teardown: drop_all metadata (cleanup) + end diff --git a/docs/images/.keep b/docs/images/.keep new file mode 100644 index 00000000..e69de29b diff --git a/docs/puppeteer-config.json b/docs/puppeteer-config.json new file mode 100644 index 00000000..625abff7 --- /dev/null +++ b/docs/puppeteer-config.json @@ -0,0 +1,6 @@ +{ + "args": [ + "--no-sandbox", + "--disable-setuid-sandbox" + ] +} From 75f3031546086699a9dbe3eaa6948674164200f1 Mon Sep 17 00:00:00 2001 From: fizyk <229393+fizyk@users.noreply.github.com> Date: Tue, 6 Jan 2026 14:01:53 +0000 Subject: [PATCH 2/4] docs: update rendered mermaid diagram [skip ci] --- docs/images/architecture.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/images/architecture.svg diff --git a/docs/images/architecture.svg b/docs/images/architecture.svg new file mode 100644 index 00000000..b7f7b2e6 --- /dev/null +++ b/docs/images/architecture.svg @@ -0,0 +1 @@ +Per-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerPer-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerTemplate is created and seeded once per full runloop[per test]request postgresql_proc with load=[load_database]1start server2invoke load_database (create metadata, seed data)3request clone of TemplateDB4create cloned database for test5run test using cloned DB6teardown: commit transaction7teardown: drop_all metadata (cleanup)8 \ No newline at end of file From f330664bca3fe66ed3ea2dbed2216ee83d419a5c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 16:28:35 +0000 Subject: [PATCH 3/4] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/images/architecture.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/images/architecture.svg b/docs/images/architecture.svg index b7f7b2e6..31c3732b 100644 --- a/docs/images/architecture.svg +++ b/docs/images/architecture.svg @@ -1 +1 @@ -Per-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerPer-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerTemplate is created and seeded once per full runloop[per test]request postgresql_proc with load=[load_database]1start server2invoke load_database (create metadata, seed data)3request clone of TemplateDB4create cloned database for test5run test using cloned DB6teardown: commit transaction7teardown: drop_all metadata (cleanup)8 \ No newline at end of file +Per-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerPer-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerTemplate is created and seeded once per full runloop[per test]request postgresql_proc with load=[load_database]1start server2invoke load_database (create metadata, seed data)3request clone of TemplateDB4create cloned database for test5run test using cloned DB6teardown: commit transaction7teardown: drop_all metadata (cleanup)8 From 2a5575ffa8a7cedfba7104e4ed5e9c2236d94e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20=C5=9Aliwi=C5=84ski?= Date: Tue, 6 Jan 2026 17:31:51 +0100 Subject: [PATCH 4/4] Add newsfragment --- newsfragments/1244.docs.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 newsfragments/1244.docs.rst diff --git a/newsfragments/1244.docs.rst b/newsfragments/1244.docs.rst new file mode 100644 index 00000000..38554dfb --- /dev/null +++ b/newsfragments/1244.docs.rst @@ -0,0 +1 @@ +Add plugins' architecture diagram.