toolframe-sql-postgres 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. toolframe_sql_postgres-0.2.2/.github/workflows/compatibility.yml +85 -0
  2. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/.github/workflows/postgres.yml +5 -5
  3. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/.github/workflows/publish.yml +7 -11
  4. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/PKG-INFO +7 -4
  5. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/README.md +5 -2
  6. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/releasing.md +11 -10
  7. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/pyproject.toml +3 -3
  8. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/uv.lock +7 -6
  9. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/.github/workflows/ci.yml +0 -0
  10. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/.github/workflows/quality.yml +0 -0
  11. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/.gitignore +0 -0
  12. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/.pre-commit-config.yaml +0 -0
  13. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/CONTRIBUTING.md +0 -0
  14. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/LICENSE +0 -0
  15. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/NOTICE +0 -0
  16. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/cchk.toml +0 -0
  17. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/adr/0001-plugin-storage-boundary.md +0 -0
  18. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/adr/0002-explicit-database-dialects.md +0 -0
  19. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/adr/0003-application-database-boundary.md +0 -0
  20. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/adr/0004-separate-provisioning-credentials.md +0 -0
  21. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/adr/0005-pre-migration-database-backups.md +0 -0
  22. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/development.md +0 -0
  23. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/glossary.md +0 -0
  24. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/operations.md +0 -0
  25. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/docs/storage-contract.md +0 -0
  26. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/scripts/check.py +0 -0
  27. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/scripts/check_branch_name.py +0 -0
  28. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/scripts/validate_release.py +0 -0
  29. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/__init__.py +0 -0
  30. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/backup.py +0 -0
  31. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/cli.py +0 -0
  32. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/config.py +0 -0
  33. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/plugin.py +0 -0
  34. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/provision.py +0 -0
  35. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/src/toolframe_sql_postgres/sql.py +0 -0
  36. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/tests/conftest.py +0 -0
  37. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/tests/test_first_party.py +0 -0
  38. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/tests/test_like_escape.py +0 -0
  39. {toolframe_sql_postgres-0.2.0 → toolframe_sql_postgres-0.2.2}/tests/test_storage.py +0 -0
@@ -0,0 +1,85 @@
1
+ name: SDK compatibility
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+ schedule:
8
+ - cron: '17 4 * * *'
9
+ workflow_dispatch:
10
+ workflow_call:
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ wheel:
17
+ name: Build the shared plugin wheel
18
+ runs-on: ubuntu-24.04
19
+ timeout-minutes: 10
20
+ steps:
21
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
22
+ with:
23
+ persist-credentials: false
24
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
25
+ with:
26
+ python-version: '3.14.7'
27
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
28
+ with:
29
+ version: '0.12.8'
30
+ enable-cache: false
31
+ - run: uv build --no-sources --wheel --out-dir build/compatibility-wheel
32
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
33
+ with:
34
+ name: compatibility-wheel
35
+ path: build/compatibility-wheel/*.whl
36
+ if-no-files-found: error
37
+ retention-days: 7
38
+
39
+ compatibility:
40
+ name: SDK ${{ matrix.sdk }}
41
+ needs: wheel
42
+ runs-on: ubuntu-24.04
43
+ timeout-minutes: 20
44
+ strategy:
45
+ fail-fast: false
46
+ matrix:
47
+ sdk: [minimum, latest]
48
+ steps:
49
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
50
+ with:
51
+ persist-credentials: false
52
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
53
+ with:
54
+ python-version: '3.14.7'
55
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
56
+ with:
57
+ version: '0.12.8'
58
+ enable-cache: false
59
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
60
+ with:
61
+ name: compatibility-wheel
62
+ path: build/compatibility-wheel
63
+ - name: Select the unchanged wheel
64
+ id: wheels
65
+ shell: bash
66
+ run: |
67
+ plugin=(build/compatibility-wheel/toolframe_sql_postgres-*.whl)
68
+ test "${#plugin[@]}" = 1
69
+ echo "plugin=${plugin[0]}" >> "$GITHUB_OUTPUT"
70
+ - name: Verify installed wheel and package tests
71
+ uses: toolframe/toolframe-sdk/.github/actions/plugin-compatibility@2e2a3d79f35fbdb04249e8351fe9c75fc2164269
72
+ with:
73
+ mode: ${{ matrix.sdk }}
74
+ wheel: ${{ steps.wheels.outputs.plugin }}
75
+ output: build/compatibility-${{ matrix.sdk }}
76
+ - name: Retain compatibility evidence
77
+ if: always()
78
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
79
+ with:
80
+ name: compatibility-${{ matrix.sdk }}
81
+ path: |
82
+ build/compatibility-${{ matrix.sdk }}/report.json
83
+ build/compatibility-${{ matrix.sdk }}/pytest.xml
84
+ if-no-files-found: warn
85
+ retention-days: 14
@@ -31,7 +31,7 @@ jobs:
31
31
  with:
32
32
  repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-sdk
33
33
  token: ${{ secrets.TOOLFRAME_READ_TOKEN || github.token }}
34
- ref: 2cd153ec36c585a9adb5ad566effc2985d9e222d
34
+ ref: 539ced4dbdf9e303ec0f0205a35d65287a480b2a
35
35
  path: toolframe-sdk
36
36
  persist-credentials: false
37
37
  - name: Check out toolframe-auth
@@ -39,7 +39,7 @@ jobs:
39
39
  with:
40
40
  repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-auth
41
41
  token: ${{ secrets.TOOLFRAME_READ_TOKEN || github.token }}
42
- ref: f43c623cafb1483f3387935d7ef2690ca52088c9
42
+ ref: b7c26f0e0681ef4f707024e21219bbcf4533e8f8
43
43
  path: toolframe-auth
44
44
  persist-credentials: false
45
45
  - name: Check out toolframe-mcp-auth
@@ -47,7 +47,7 @@ jobs:
47
47
  with:
48
48
  repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-mcp-auth
49
49
  token: ${{ secrets.TOOLFRAME_READ_TOKEN || github.token }}
50
- ref: 37b53ac0b37637c953cf5e40e59b5dcde8ab2c4b
50
+ ref: 86866e270a71e418466ff1b26f471d88b281709a
51
51
  path: toolframe-mcp-auth
52
52
  persist-credentials: false
53
53
  - name: Check out toolframe-oidc-auth
@@ -55,7 +55,7 @@ jobs:
55
55
  with:
56
56
  repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-oidc-auth
57
57
  token: ${{ secrets.TOOLFRAME_READ_TOKEN || github.token }}
58
- ref: 5d88289871c7e961216536ddde812510e319a7fe
58
+ ref: a5c26231283b4b54026c28e2285f4f2b2caa069a
59
59
  path: toolframe-oidc-auth
60
60
  persist-credentials: false
61
61
  - name: Check out toolframe-demo-entry-register
@@ -63,7 +63,7 @@ jobs:
63
63
  with:
64
64
  repository: ${{ vars.TOOLFRAME_REPOSITORY_OWNER || github.repository_owner }}/toolframe-demo-entry-register
65
65
  token: ${{ secrets.TOOLFRAME_READ_TOKEN || github.token }}
66
- ref: 638e2163bd1f50f3715e05b418ac9095b4003513
66
+ ref: f031017529c96a3c29e63565c2ea0149771fab9c
67
67
  path: toolframe-demo-entry-register
68
68
  persist-credentials: false
69
69
  - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
@@ -2,19 +2,12 @@ name: Publish Python distribution
2
2
 
3
3
  on:
4
4
  workflow_dispatch:
5
- inputs:
6
- index:
7
- description: Package index; run against the matching vVERSION tag
8
- type: choice
9
- options: [testpypi, pypi]
10
- default: testpypi
11
- required: true
12
5
 
13
6
  permissions:
14
7
  contents: read
15
8
 
16
9
  concurrency:
17
- group: publish-${{ inputs.index }}
10
+ group: publish-pypi
18
11
  cancel-in-progress: false
19
12
 
20
13
  jobs:
@@ -45,12 +38,15 @@ jobs:
45
38
  uses: ./.github/workflows/ci.yml
46
39
  secrets: inherit
47
40
 
41
+ compatibility:
42
+ uses: ./.github/workflows/compatibility.yml
43
+
48
44
  publish:
49
- needs: [release-tag, validate]
45
+ needs: [release-tag, validate, compatibility]
50
46
  runs-on: ubuntu-24.04
51
47
  timeout-minutes: 10
52
48
  environment:
53
- name: ${{ inputs.index }}
49
+ name: pypi
54
50
  permissions:
55
51
  contents: read
56
52
  id-token: write
@@ -62,4 +58,4 @@ jobs:
62
58
  - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
63
59
  with:
64
60
  packages-dir: dist/
65
- repository-url: ${{ inputs.index == 'testpypi' && 'https://test.pypi.org/legacy/' || 'https://upload.pypi.org/legacy/' }}
61
+ repository-url: https://upload.pypi.org/legacy/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: toolframe-sql-postgres
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Managed PostgreSQL stores for Toolframe plugins
5
5
  Project-URL: Homepage, https://github.com/toolframe/toolframe-sql-postgres
6
6
  Project-URL: Repository, https://github.com/toolframe/toolframe-sql-postgres
@@ -13,7 +13,7 @@ License-File: NOTICE
13
13
  Requires-Python: >=3.14
14
14
  Requires-Dist: pglast==8.4
15
15
  Requires-Dist: psycopg[binary]<4,>=3.3
16
- Requires-Dist: toolframe-sdk==0.4.0
16
+ Requires-Dist: toolframe-sdk<1,>=0.4.0
17
17
  Description-Content-Type: text/markdown
18
18
 
19
19
  # Toolframe PostgreSQL storage
@@ -40,7 +40,7 @@ Install the host and provider CLI from PyPI:
40
40
  ```sh
41
41
  uv venv --python 3.14.7 .venv
42
42
  uv pip install --python .venv/bin/python \
43
- toolframe-core==0.7.0 toolframe-sql-postgres==0.2.0
43
+ toolframe-core==0.7.0 toolframe-sql-postgres==0.2.2
44
44
  .venv/bin/toolframe-core --home ./app init
45
45
  ```
46
46
 
@@ -61,7 +61,7 @@ Add the provider to `app/toolframe.toml`:
61
61
 
62
62
  ```toml
63
63
  [plugins.sql-postgres]
64
- source = "pypi:toolframe-sql-postgres==0.2.0"
64
+ source = "pypi:toolframe-sql-postgres==0.2.2"
65
65
  enabled = true
66
66
 
67
67
  [bindings]
@@ -102,3 +102,6 @@ For release validation and Trusted Publisher setup, see [releasing](docs/releasi
102
102
  Apache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
103
103
 
104
104
  For development hooks and contribution rules, see [Contributing](CONTRIBUTING.md).
105
+
106
+ Plugin dependencies allow compatible SDK 0.x updates from the declared minimum.
107
+ See the [SDK compatibility policy](https://github.com/toolframe/toolframe-sdk/blob/main/docs/compatibility.md) for API guarantees and minimum/latest verification.
@@ -22,7 +22,7 @@ Install the host and provider CLI from PyPI:
22
22
  ```sh
23
23
  uv venv --python 3.14.7 .venv
24
24
  uv pip install --python .venv/bin/python \
25
- toolframe-core==0.7.0 toolframe-sql-postgres==0.2.0
25
+ toolframe-core==0.7.0 toolframe-sql-postgres==0.2.2
26
26
  .venv/bin/toolframe-core --home ./app init
27
27
  ```
28
28
 
@@ -43,7 +43,7 @@ Add the provider to `app/toolframe.toml`:
43
43
 
44
44
  ```toml
45
45
  [plugins.sql-postgres]
46
- source = "pypi:toolframe-sql-postgres==0.2.0"
46
+ source = "pypi:toolframe-sql-postgres==0.2.2"
47
47
  enabled = true
48
48
 
49
49
  [bindings]
@@ -84,3 +84,6 @@ For release validation and Trusted Publisher setup, see [releasing](docs/releasi
84
84
  Apache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
85
85
 
86
86
  For development hooks and contribution rules, see [Contributing](CONTRIBUTING.md).
87
+
88
+ Plugin dependencies allow compatible SDK 0.x updates from the declared minimum.
89
+ See the [SDK compatibility policy](https://github.com/toolframe/toolframe-sdk/blob/main/docs/compatibility.md) for API guarantees and minimum/latest verification.
@@ -19,13 +19,14 @@ metadata and licenses, runs Ruff and package tests against an installed wheel,
19
19
  and installs each distribution into a separate fresh consumer environment.
20
20
  Optional database/service integrations require their documented fixtures.
21
21
 
22
- Publish `toolframe-sdk==0.4.0` first. The coordinated order and native CLI channels are documented in
22
+ Publish any newly required SDK version before the plugin. Compatible Core or SDK
23
+ updates alone do not require a plugin release. The coordinated order and native CLI channels are documented in
23
24
  [Toolframe's release guide](https://github.com/toolframe/toolframe-core/blob/main/docs/releasing.md).
24
25
 
25
26
  ## Trusted Publishers
26
27
 
27
- Create GitHub environments named `testpypi` and `pypi`. On each corresponding
28
- package index, configure a normal or pending Trusted Publisher with these values:
28
+ Create a GitHub environment named `pypi`. On PyPI, configure a normal or
29
+ pending Trusted Publisher with these values:
29
30
 
30
31
  | Field | Value |
31
32
  | --- | --- |
@@ -33,7 +34,7 @@ package index, configure a normal or pending Trusted Publisher with these values
33
34
  | GitHub owner | `toolframe` |
34
35
  | GitHub repository | `toolframe-sql-postgres` |
35
36
  | Workflow filename | `publish.yml` |
36
- | Environment | `testpypi` or `pypi`, matching the index |
37
+ | Environment | `pypi` |
37
38
 
38
39
  If publishing from another owner, use that actual owner in the publisher binding.
39
40
  Follow [PyPI's Trusted Publishing guide](https://docs.pypi.org/trusted-publishers/using-a-publisher/).
@@ -49,7 +50,7 @@ sibling owner where the workflow exposes that variable.
49
50
  ## Publish and verify
50
51
 
51
52
  After the release commit and matching tag are available remotely, manually run
52
- `publish.yml` at `v0.1.0`, selecting `testpypi` first and then `pypi`.
53
+ `publish.yml` at the matching `v<project.version>` tag to publish to PyPI.
53
54
  A branch or mismatched tag is rejected. Downloaded files are the artifacts from
54
55
  that run; the publishing job does not rebuild them. Published files cannot be
55
56
  replaced under the same version.
@@ -58,11 +59,11 @@ After PyPI publication, verify a clean installation:
58
59
 
59
60
  ```sh
60
61
  uv venv --python 3.14.7 build/consumer
61
- uv pip install --python build/consumer/bin/python 'toolframe-sql-postgres==0.2.0'
62
+ uv pip install --python build/consumer/bin/python 'toolframe-sql-postgres==0.2.2'
62
63
  uv pip check --python build/consumer/bin/python
63
64
  ```
64
65
 
65
- TestPyPI does not mirror dependencies. Test the specific artifact against an
66
- explicit dependency source; a local or TestPyPI check alone does not demonstrate
67
- that production PyPI resolution works. Keep logs, hashes and exact revisions in
68
- CI artifacts or ignored local evidence directories.
66
+ Test the specific artifact with dependencies from PyPI. Local artifact checks
67
+ alone do not demonstrate that the published package resolves correctly from
68
+ PyPI. Keep logs, hashes and exact revisions in CI artifacts or ignored local
69
+ evidence directories.
@@ -4,14 +4,14 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "toolframe-sql-postgres"
7
- version = "0.2.0"
7
+ version = "0.2.2"
8
8
  description = "Managed PostgreSQL stores for Toolframe plugins"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
11
11
  license-files = ["LICENSE", "NOTICE"]
12
12
  authors = [{ name = "byfb", email = "62798989+byfb@users.noreply.github.com" }]
13
13
  requires-python = ">=3.14"
14
- dependencies = ["toolframe-sdk==0.4.0", "psycopg[binary]>=3.3,<4", "pglast==8.4"]
14
+ dependencies = ["toolframe-sdk>=0.4.0,<1", "psycopg[binary]>=3.3,<4", "pglast==8.4"]
15
15
 
16
16
  [project.urls]
17
17
  Homepage = "https://github.com/toolframe/toolframe-sql-postgres"
@@ -27,7 +27,7 @@ toolframe-postgres = "toolframe_sql_postgres.cli:main"
27
27
 
28
28
  [dependency-groups]
29
29
  dev = ["pytest>=8,<10", "pytest-asyncio>=1,<2", "ruff>=0.12,<1"]
30
- compatibility = ["toolframe-auth==0.3.0", "toolframe-mcp-auth==0.3.0", "toolframe-oidc-auth==0.3.0", "toolframe-demo-entry-register==0.4.0"]
30
+ compatibility = ["toolframe-auth==0.3.1", "toolframe-mcp-auth==0.3.1", "toolframe-oidc-auth==0.3.1", "toolframe-demo-entry-register==0.4.1"]
31
31
 
32
32
  [tool.uv.sources]
33
33
  toolframe-sdk = { path = "../toolframe-sdk", editable = true }
@@ -605,7 +605,7 @@ wheels = [
605
605
 
606
606
  [[package]]
607
607
  name = "toolframe-auth"
608
- version = "0.3.0"
608
+ version = "0.3.1"
609
609
  source = { editable = "../toolframe-auth" }
610
610
  dependencies = [
611
611
  { name = "toolframe-sdk" },
@@ -624,7 +624,7 @@ dev = [
624
624
 
625
625
  [[package]]
626
626
  name = "toolframe-demo-entry-register"
627
- version = "0.4.0"
627
+ version = "0.4.1"
628
628
  source = { editable = "../toolframe-demo-entry-register" }
629
629
  dependencies = [
630
630
  { name = "toolframe-sdk" },
@@ -647,7 +647,7 @@ dev = [
647
647
 
648
648
  [[package]]
649
649
  name = "toolframe-mcp-auth"
650
- version = "0.3.0"
650
+ version = "0.3.1"
651
651
  source = { editable = "../toolframe-mcp-auth" }
652
652
  dependencies = [
653
653
  { name = "toolframe-sdk" },
@@ -666,7 +666,7 @@ dev = [
666
666
 
667
667
  [[package]]
668
668
  name = "toolframe-oidc-auth"
669
- version = "0.3.0"
669
+ version = "0.3.1"
670
670
  source = { editable = "../toolframe-oidc-auth" }
671
671
  dependencies = [
672
672
  { name = "authlib" },
@@ -697,7 +697,7 @@ integration = [{ name = "fastmcp", specifier = ">=4,<5" }]
697
697
 
698
698
  [[package]]
699
699
  name = "toolframe-sdk"
700
- version = "0.4.0"
700
+ version = "0.4.1"
701
701
  source = { editable = "../toolframe-sdk" }
702
702
  dependencies = [
703
703
  { name = "jsonschema" },
@@ -720,11 +720,12 @@ dev = [
720
720
  { name = "pytest", specifier = ">=8,<10" },
721
721
  { name = "pytest-asyncio", specifier = ">=1,<2" },
722
722
  { name = "ruff", specifier = ">=0.12,<1" },
723
+ { name = "tomlkit", specifier = ">=0.13,<1" },
723
724
  ]
724
725
 
725
726
  [[package]]
726
727
  name = "toolframe-sql-postgres"
727
- version = "0.2.0"
728
+ version = "0.2.2"
728
729
  source = { editable = "." }
729
730
  dependencies = [
730
731
  { name = "pglast" },