From a777e23f711addbb2f9c4c7d9c88911a8f0ab0f0 Mon Sep 17 00:00:00 2001 From: Randy TANG Date: Thu, 12 Feb 2026 02:23:19 +0800 Subject: [PATCH 01/11] (dotfile): change build backend to uv-build --- pyproject.toml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3ff8c1f..decfa1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,13 @@ [project] name = "anyiostream" version = "0.1.0" +authors = [ + { name=" randy", email="hotung1027@gmail.com" }, +] description = "Composable async pipelines with structured concurrency — built on anyio, inspired by aiostream and Rust's Result type." readme = "README.md" requires-python = ">=3.12" license = { text = "Apache-2.0" } -authors = [ - { name = "randyt" }, -] keywords = [ "async", "pipeline", @@ -16,7 +16,6 @@ keywords = [ "concurrency", "structured-concurrency", "result", - "backpressure", ] classifiers = [ "Development Status :: 3 - Alpha", @@ -49,6 +48,9 @@ docs = [ "sphinx-design>=0.6", "sphinx-autodoc2>=0.5", ] +build = [ + "uv_build>=0.10.0,<0.11.0", +] [project.urls] Homepage = "https://github.com/hotung1027/anyiostream" @@ -56,8 +58,8 @@ Repository = "https://github.com/hotung1027/anyiostream" Issues = "https://github.com/hotung1027/anyiostream/issues" [build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" +requires = ["uv_build >= 0.10.0, <0.11.0"] +build-backend = "uv_build" [tool.hatch.build.targets.wheel] packages = ["src/anyiostream"] From c374ef9d93ca8ede7ced145d9bd50ac661adda50 Mon Sep 17 00:00:00 2001 From: Randy TANG Date: Thu, 12 Feb 2026 02:24:06 +0800 Subject: [PATCH 02/11] (pypi): add github workflow to publish artifacts to pypi --- .github/workflows/distribute.yml | 77 ++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/distribute.yml diff --git a/.github/workflows/distribute.yml b/.github/workflows/distribute.yml new file mode 100644 index 0000000..2b4c9ae --- /dev/null +++ b/.github/workflows/distribute.yml @@ -0,0 +1,77 @@ +name: distribute-PyPI + +on: + push: + tags: ["v*"] + workflow_dispatch: + +jobs: + + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.12", "3.13"] + + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v4 + with: + version: "latest" + + - name: Set up Python ${{ matrix.python-version }} + run: uv python install ${{ matrix.python-version }} + + - name: Install dependencies + run: uv sync --all-extras + + - name: Lint + run: uv run ruff check . + + - name: Format check + run: uv run ruff format --check . + + - name: Test + run: uv run pytest + + build: + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v4 + with: + version: "latest" + + - name: Set up Python + run: uv python install 3.12 + + - name: Build sdist and wheel + run: uv build + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist/ + + publish: + needs: build + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') + environment: pypi + permissions: + id-token: write + steps: + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: dist + path: dist/ + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 From 0e7444a6f9d516609cf95880f2cc5ab62f1dd587 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:31:57 +0800 Subject: [PATCH 03/11] Potential fix for code scanning alert no. 3: Workflow does not contain permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- .github/workflows/distribute.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/distribute.yml b/.github/workflows/distribute.yml index 2b4c9ae..8db8250 100644 --- a/.github/workflows/distribute.yml +++ b/.github/workflows/distribute.yml @@ -1,5 +1,8 @@ name: distribute-PyPI +permissions: + contents: read + on: push: tags: ["v*"] From 91e9c557b33d6d58468b14bfa043e768ec3b3201 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:34:47 +0800 Subject: [PATCH 04/11] Add write permission for pull requests in workflow --- .github/workflows/distribute.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/distribute.yml b/.github/workflows/distribute.yml index 8db8250..33570c5 100644 --- a/.github/workflows/distribute.yml +++ b/.github/workflows/distribute.yml @@ -2,6 +2,7 @@ name: distribute-PyPI permissions: contents: read + pull-requests: write on: push: From 3654c41404b352a797ea0fc29b9bde837c8f4ca7 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:36:07 +0800 Subject: [PATCH 05/11] Update .github/workflows/distribute.yml reuse github workflow in ci test Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/distribute.yml | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/.github/workflows/distribute.yml b/.github/workflows/distribute.yml index 33570c5..35dad41 100644 --- a/.github/workflows/distribute.yml +++ b/.github/workflows/distribute.yml @@ -12,34 +12,8 @@ on: jobs: test: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.12", "3.13"] - - steps: - - uses: actions/checkout@v4 - - - name: Install uv - uses: astral-sh/setup-uv@v4 - with: - version: "latest" - - - name: Set up Python ${{ matrix.python-version }} - run: uv python install ${{ matrix.python-version }} - - - name: Install dependencies - run: uv sync --all-extras - - - name: Lint - run: uv run ruff check . - - - name: Format check - run: uv run ruff format --check . - - - name: Test - run: uv run pytest - + uses: ./.github/workflows/ci.yml + secrets: inherit build: runs-on: ubuntu-latest needs: test From 184afd4d3da92c1f5e4c67aa24d8748d67ffb742 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:36:28 +0800 Subject: [PATCH 06/11] Update pyproject.toml to use uv build target Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index decfa1d..b438d70 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,7 +61,7 @@ Issues = "https://github.com/hotung1027/anyiostream/issues" requires = ["uv_build >= 0.10.0, <0.11.0"] build-backend = "uv_build" -[tool.hatch.build.targets.wheel] +[tool.uv_build] packages = ["src/anyiostream"] [tool.pytest.ini_options] From b4d2a4f6ddb55254f37b9b43af34267b7138dd72 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:36:45 +0800 Subject: [PATCH 07/11] Update pyproject.toml formattings Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b438d70..4e609ff 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "anyiostream" version = "0.1.0" authors = [ - { name=" randy", email="hotung1027@gmail.com" }, + { name="randy", email="hotung1027@gmail.com" }, ] description = "Composable async pipelines with structured concurrency — built on anyio, inspired by aiostream and Rust's Result type." readme = "README.md" From 56973a053eaf374cd2bf7b96d15c65b8a2f07a02 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:37:12 +0000 Subject: [PATCH 08/11] Initial plan From 26598853aefd48df3d9ddafc392d85c75eb92013 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:38:33 +0000 Subject: [PATCH 09/11] Fix pyproject.toml authors table formatting for consistency Co-authored-by: hotung1027 <20833241+hotung1027@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4e609ff..a70d179 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "anyiostream" version = "0.1.0" authors = [ - { name="randy", email="hotung1027@gmail.com" }, + { name = "randy", email = "hotung1027@gmail.com" }, ] description = "Composable async pipelines with structured concurrency — built on anyio, inspired by aiostream and Rust's Result type." readme = "README.md" From 466f46f1f2f54acbf63f5eae16937424a2530255 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:41:15 +0800 Subject: [PATCH 10/11] Update .github/workflows/distribute.yml drop pr write permission Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/distribute.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/distribute.yml b/.github/workflows/distribute.yml index 35dad41..2c5815a 100644 --- a/.github/workflows/distribute.yml +++ b/.github/workflows/distribute.yml @@ -2,7 +2,6 @@ name: distribute-PyPI permissions: contents: read - pull-requests: write on: push: From 8bc7f72a3a1cfe900ea7a5d7f7d184b204775269 Mon Sep 17 00:00:00 2001 From: adntry Date: Thu, 12 Feb 2026 02:45:20 +0800 Subject: [PATCH 11/11] Update pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a70d179..9b3d050 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,9 +48,6 @@ docs = [ "sphinx-design>=0.6", "sphinx-autodoc2>=0.5", ] -build = [ - "uv_build>=0.10.0,<0.11.0", -] [project.urls] Homepage = "https://github.com/hotung1027/anyiostream"