Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
80 changes: 80 additions & 0 deletions .github/workflows/distribute.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: distribute-PyPI

permissions:
contents: read

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

Copilot AI Feb 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using uv sync --all-extras will install docs/build extras too, which can significantly slow down the release test job and increase the chance of unrelated dependency breakage. Consider syncing only what the test job needs (e.g., --extra dev) or a dedicated test group/extra.

Suggested change
run: uv sync --all-extras
run: uv sync --extra dev

Copilot uses AI. Check for mistakes.

- name: Lint
run: uv run ruff check .

- name: Format check
run: uv run ruff format --check .

- name: Test
run: uv run pytest

Comment thread
hotung1027 marked this conversation as resolved.
Outdated
build:
Comment thread Fixed
runs-on: ubuntu-latest
needs: test
Comment on lines +13 to +18

Copilot AI Feb 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test job is calling uses: ./.github/workflows/ci.yml, but .github/workflows/ci.yml is not a reusable workflow (it lacks on: workflow_call). As written, this workflow will fail at runtime. Either add workflow_call to ci.yml (and adjust inputs/outputs as needed), or duplicate the CI steps directly in this workflow (or reference a reusable workflow that already supports workflow_call).

Suggested change
test:
uses: ./.github/workflows/ci.yml
secrets: inherit
build:
runs-on: ubuntu-latest
needs: test
build:
runs-on: ubuntu-latest

Copilot uses AI. Check for mistakes.
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:
Comment thread
hotung1027 marked this conversation as resolved.
Fixed
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
14 changes: 8 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[project]
name = "anyiostream"
version = "0.1.0"
authors = [
{ name=" randy", email="hotung1027@gmail.com" },
Comment thread
hotung1027 marked this conversation as resolved.
Outdated
]
Comment thread
hotung1027 marked this conversation as resolved.
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",
Expand All @@ -16,7 +16,6 @@ keywords = [
"concurrency",
"structured-concurrency",
"result",
"backpressure",
]
classifiers = [
"Development Status :: 3 - Alpha",
Expand Down Expand Up @@ -49,15 +48,18 @@ docs = [
"sphinx-design>=0.6",
"sphinx-autodoc2>=0.5",
]
build = [
"uv_build>=0.10.0,<0.11.0",
]
Comment thread
hotung1027 marked this conversation as resolved.
Outdated

[project.urls]
Homepage = "https://github.com/hotung1027/anyiostream"
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]
Comment thread
hotung1027 marked this conversation as resolved.
Outdated
packages = ["src/anyiostream"]
Comment thread
hotung1027 marked this conversation as resolved.
Comment on lines +61 to 62

Copilot AI Feb 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[build-system].requires uses a different requirement-string format ("uv_build >= 0.10.0, <0.11.0") than the rest of the file (e.g. anyio>=4.8.0, uv_build>=0.10.0,<0.11.0). Consider normalizing this to the same no-space specifier style to reduce churn and avoid subtle parsing differences across tooling.

Copilot uses AI. Check for mistakes.
Expand Down