diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0fbb78f..ac57ccd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,6 +24,8 @@ jobs: - tests steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: cachix/install-nix-action@v31 - name: Install devenv.sh run: nix profile install nixpkgs#devenv diff --git a/README.md b/README.md index e21a206..34475e2 100644 --- a/README.md +++ b/README.md @@ -82,4 +82,4 @@ This repository uses [devenv](https://devenv.sh/). Devenv and enabled direnv wil ## Releasing Create a new release [here](https://github.com/stevieflyer/pydantic-api-sdk-notion/releases/new). -Choose a semver-style tag (i.e. `X.X.X`). Make sure the tag matches the version in `pyproject.toml`. +Choose a semver-style tag with a `v` prefix, (i.e. `vX.X.X`). The release will happen automatically. diff --git a/devenv.lock b/devenv.lock index 7804634..91232bf 100644 --- a/devenv.lock +++ b/devenv.lock @@ -3,10 +3,10 @@ "devenv": { "locked": { "dir": "src/modules", - "lastModified": 1742998885, + "lastModified": 1752507617, "owner": "cachix", "repo": "devenv", - "rev": "4e56212b1781ab297b506bfca0085bb0e8ba1cfb", + "rev": "d26f9cf218d8617168d26f749e02a6d87ea4bc28", "type": "github" }, "original": { @@ -19,10 +19,10 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1733328505, + "lastModified": 1747046372, "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -34,10 +34,10 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1733328505, + "lastModified": 1747046372, "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -55,10 +55,10 @@ ] }, "locked": { - "lastModified": 1742649964, + "lastModified": 1750779888, "owner": "cachix", "repo": "git-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", "type": "github" }, "original": { @@ -89,10 +89,10 @@ }, "nixpkgs": { "locked": { - "lastModified": 1733477122, + "lastModified": 1750441195, "owner": "cachix", "repo": "devenv-nixpkgs", - "rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857", + "rev": "0ceffe312871b443929ff3006960d29b120dc627", "type": "github" }, "original": { @@ -110,10 +110,10 @@ ] }, "locked": { - "lastModified": 1733319315, + "lastModified": 1749760516, "owner": "cachix", "repo": "nixpkgs-python", - "rev": "01263eeb28c09f143d59cd6b0b7c4cc8478efd48", + "rev": "908dbb466af5955ea479ac95953333fd64387216", "type": "github" }, "original": { diff --git a/devenv.nix b/devenv.nix index ec752b0..0ea4ff2 100644 --- a/devenv.nix +++ b/devenv.nix @@ -7,11 +7,15 @@ }: { - packages = [ pkgs.git ]; + packages = [ + pkgs.git + pkgs.python312Packages.poetry-dynamic-versioning + ]; languages.python.enable = true; languages.python.poetry.enable = true; languages.python.poetry.activate.enable = true; + languages.python.poetry.package = pkgs.python312Packages.pkgs.poetry; languages.python.version = "3.12"; git-hooks.hooks = { diff --git a/poetry.lock b/poetry.lock index c0a8cd2..6179020 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "annotated-types" @@ -6,6 +6,7 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -17,6 +18,7 @@ version = "4.9.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, @@ -29,7 +31,7 @@ typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] -test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] +test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] trio = ["trio (>=0.26.1)"] [[package]] @@ -38,6 +40,7 @@ version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, @@ -49,6 +52,7 @@ version = "2.7.0" description = "DNS toolkit" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"}, {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"}, @@ -69,6 +73,7 @@ version = "2.2.0" description = "A robust email address syntax and deliverability validation library." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, @@ -84,6 +89,7 @@ version = "2.14.1" description = "Emoji for Python" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "emoji-2.14.1-py3-none-any.whl", hash = "sha256:35a8a486c1460addb1499e3bf7929d3889b2e2841a57401903699fef595e942b"}, {file = "emoji-2.14.1.tar.gz", hash = "sha256:f8c50043d79a2c1410ebfae833ae1868d5941a67a6cd4d18377e2eb0bd79346b"}, @@ -98,6 +104,7 @@ version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -109,6 +116,7 @@ version = "1.0.7" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"}, {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"}, @@ -130,6 +138,7 @@ version = "0.28.1" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"}, @@ -142,7 +151,7 @@ httpcore = "==1.*" idna = "*" [package.extras] -brotli = ["brotli", "brotlicffi"] +brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -154,6 +163,7 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" +groups = ["main"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -168,6 +178,7 @@ version = "2.3.0" description = "Python client for the official Notion API" optional = false python-versions = "<4,>=3.7" +groups = ["main"] files = [ {file = "notion-client-2.3.0.tar.gz", hash = "sha256:c4b4ae04ce182eb89611d41544dac710049683a4d7309c4b22fde52f81cbcb39"}, {file = "notion_client-2.3.0-py2.py3-none-any.whl", hash = "sha256:6696bb057b7872477077d6a3bb4299c4a7924450e7d168174e79cbf8e01d9576"}, @@ -182,6 +193,7 @@ version = "2.11.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pydantic-2.11.1-py3-none-any.whl", hash = "sha256:5b6c415eee9f8123a14d859be0c84363fec6b1feb6b688d6435801230b56e0b8"}, {file = "pydantic-2.11.1.tar.gz", hash = "sha256:442557d2910e75c991c39f4b4ab18963d57b9b55122c8b2a9cd176d8c29ce968"}, @@ -196,7 +208,7 @@ typing-inspection = ">=0.4.0" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] [[package]] name = "pydantic-api-models" @@ -204,6 +216,7 @@ version = "0.0.2" description = "Make API self-explanatory with pydantic" optional = false python-versions = "<4.0,>=3.8" +groups = ["main"] files = [ {file = "pydantic_api_models-0.0.2-py3-none-any.whl", hash = "sha256:cb5bbb7177e51a2022e4ffb503f5818a5549238e3441ad5054199f5d55d7bd56"}, {file = "pydantic_api_models-0.0.2.tar.gz", hash = "sha256:917c13220c06bd9239f28579fdb636364b5ec80c12aaa8009e17cbd5581a2332"}, @@ -214,13 +227,14 @@ pydantic = {version = ">=2.9.2,<3.0.0", extras = ["email"]} [[package]] name = "pydantic-api-models-notion" -version = "0.0.20" +version = "0.0.22" description = "A Pydantic-based library for Notion API data models" optional = false python-versions = "<4.0,>=3.10" +groups = ["main"] files = [ - {file = "pydantic_api_models_notion-0.0.20-py3-none-any.whl", hash = "sha256:0ec2bb8a8914eb9a5d14905b7a3937e8c68437a955d88bff6c5bdb9308268ccf"}, - {file = "pydantic_api_models_notion-0.0.20.tar.gz", hash = "sha256:212c77be0f0ed0c94349147d056bf6d65612966837b8fb2e4d8ac581398000e9"}, + {file = "pydantic_api_models_notion-0.0.22-py3-none-any.whl", hash = "sha256:0c7d90eebac9d9b0139d4088065627f23e86659d0f65bb4cfcb79be69ba0f1b2"}, + {file = "pydantic_api_models_notion-0.0.22.tar.gz", hash = "sha256:163f18f7f57bf98be173e13c3b9c72384077bcedfc7e4b6081939706f1836ab4"}, ] [package.dependencies] @@ -233,6 +247,7 @@ version = "2.33.0" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "pydantic_core-2.33.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71dffba8fe9ddff628c68f3abd845e91b028361d43c5f8e7b3f8b91d7d85413e"}, {file = "pydantic_core-2.33.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:abaeec1be6ed535a5d7ffc2e6c390083c425832b20efd621562fbb5bff6dc518"}, @@ -344,6 +359,7 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" +groups = ["main"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -355,6 +371,7 @@ version = "4.13.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" +groups = ["main"] files = [ {file = "typing_extensions-4.13.0-py3-none-any.whl", hash = "sha256:c8dd92cc0d6425a97c18fbb9d1954e5ff92c1ca881a309c45f06ebc0b79058e5"}, {file = "typing_extensions-4.13.0.tar.gz", hash = "sha256:0a4ac55a5820789d87e297727d229866c9650f6521b64206413c4fbada24d95b"}, @@ -366,6 +383,7 @@ version = "0.4.0" description = "Runtime typing introspection tools" optional = false python-versions = ">=3.9" +groups = ["main"] files = [ {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, @@ -375,6 +393,6 @@ files = [ typing-extensions = ">=4.12.0" [metadata] -lock-version = "2.0" +lock-version = "2.1" python-versions = "^3.12" -content-hash = "2f8f36dbc9143cd11c0d6274111439c40264351c53a139f30461a0963daf51ad" +content-hash = "025a1ec1e96dd4d26f52eeea946cc46c725b61db54de81267652986722974560" diff --git a/pyproject.toml b/pyproject.toml index 096b9a0..626ee74 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,9 @@ -[tool.poetry] -version = "0.0.35" +[project] +dynamic = ["version"] name = "pydantic-api-sdk-notion" + +[tool.poetry] +version = "0.0.0" description = "Type Safe SDK For Notion API" packages = [{ include = "pydantic_api" }] authors = ["stevieflyer"] @@ -20,11 +23,16 @@ classifiers = [ "Topic :: Software Development :: Libraries", ] +[tool.poetry-dynamic-versioning] +enable = true +vcs = "git" +style = "semver" + [tool.poetry.dependencies] python = "^3.12" notion-client = "^2.2.1" -pydantic-api-models-notion = "^0.0.20" +pydantic-api-models-notion = "^0.0.22" [build-system] -requires = ["poetry-core>=1.5.0"] -build-backend = "poetry.core.masonry.api" +requires = ["poetry-core>=1.5.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"] +build-backend = "poetry_dynamic_versioning.backend"