kosoku 0.1.0__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.
- kosoku-0.1.0/.gitattributes +1 -0
- kosoku-0.1.0/.github/workflows/ci.yaml +85 -0
- kosoku-0.1.0/.github/workflows/release.yaml +218 -0
- kosoku-0.1.0/.github/workflows/renovate.yaml +18 -0
- kosoku-0.1.0/.gitignore +23 -0
- kosoku-0.1.0/CODE_OF_CONDUCT.md +31 -0
- kosoku-0.1.0/Cargo.lock +1182 -0
- kosoku-0.1.0/Cargo.toml +48 -0
- kosoku-0.1.0/LICENSE +21 -0
- kosoku-0.1.0/NOTICE.txt +182 -0
- kosoku-0.1.0/PKG-INFO +74 -0
- kosoku-0.1.0/README.md +51 -0
- kosoku-0.1.0/kosoku/__init__.py +8 -0
- kosoku-0.1.0/kosoku/_caseindex.py +97 -0
- kosoku-0.1.0/kosoku/_cli.py +155 -0
- kosoku-0.1.0/kosoku/_errors.py +22 -0
- kosoku-0.1.0/kosoku/_kosoku.pyi +541 -0
- kosoku-0.1.0/kosoku/_report.py +638 -0
- kosoku-0.1.0/kosoku/_report_assets.py +427 -0
- kosoku-0.1.0/kosoku/cases/__init__.py +165 -0
- kosoku-0.1.0/kosoku/cases/case.py +140 -0
- kosoku-0.1.0/kosoku/cases/case10_1_1.py +51 -0
- kosoku-0.1.0/kosoku/cases/case12_x_x.py +387 -0
- kosoku-0.1.0/kosoku/cases/case1_1_1.py +34 -0
- kosoku-0.1.0/kosoku/cases/case1_1_2.py +33 -0
- kosoku-0.1.0/kosoku/cases/case1_1_3.py +33 -0
- kosoku-0.1.0/kosoku/cases/case1_1_4.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_1_5.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_1_6.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_1_7.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_1_8.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_1.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_2.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_3.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_4.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_5.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_6.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_7.py +32 -0
- kosoku-0.1.0/kosoku/cases/case1_2_8.py +32 -0
- kosoku-0.1.0/kosoku/cases/case2_1.py +31 -0
- kosoku-0.1.0/kosoku/cases/case2_10.py +37 -0
- kosoku-0.1.0/kosoku/cases/case2_11.py +28 -0
- kosoku-0.1.0/kosoku/cases/case2_2.py +32 -0
- kosoku-0.1.0/kosoku/cases/case2_3.py +33 -0
- kosoku-0.1.0/kosoku/cases/case2_4.py +32 -0
- kosoku-0.1.0/kosoku/cases/case2_5.py +32 -0
- kosoku-0.1.0/kosoku/cases/case2_6.py +32 -0
- kosoku-0.1.0/kosoku/cases/case2_7.py +32 -0
- kosoku-0.1.0/kosoku/cases/case2_8.py +34 -0
- kosoku-0.1.0/kosoku/cases/case2_9.py +33 -0
- kosoku-0.1.0/kosoku/cases/case3_1.py +33 -0
- kosoku-0.1.0/kosoku/cases/case3_2.py +35 -0
- kosoku-0.1.0/kosoku/cases/case3_3.py +35 -0
- kosoku-0.1.0/kosoku/cases/case3_4.py +35 -0
- kosoku-0.1.0/kosoku/cases/case3_5.py +32 -0
- kosoku-0.1.0/kosoku/cases/case3_6.py +32 -0
- kosoku-0.1.0/kosoku/cases/case3_7.py +31 -0
- kosoku-0.1.0/kosoku/cases/case4_1_1.py +31 -0
- kosoku-0.1.0/kosoku/cases/case4_1_2.py +31 -0
- kosoku-0.1.0/kosoku/cases/case4_1_3.py +35 -0
- kosoku-0.1.0/kosoku/cases/case4_1_4.py +35 -0
- kosoku-0.1.0/kosoku/cases/case4_1_5.py +35 -0
- kosoku-0.1.0/kosoku/cases/case4_2_1.py +31 -0
- kosoku-0.1.0/kosoku/cases/case4_2_2.py +31 -0
- kosoku-0.1.0/kosoku/cases/case4_2_3.py +35 -0
- kosoku-0.1.0/kosoku/cases/case4_2_4.py +35 -0
- kosoku-0.1.0/kosoku/cases/case4_2_5.py +35 -0
- kosoku-0.1.0/kosoku/cases/case5_1.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_10.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_11.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_12.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_13.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_14.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_15.py +36 -0
- kosoku-0.1.0/kosoku/cases/case5_16.py +34 -0
- kosoku-0.1.0/kosoku/cases/case5_17.py +34 -0
- kosoku-0.1.0/kosoku/cases/case5_18.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_19.py +57 -0
- kosoku-0.1.0/kosoku/cases/case5_2.py +32 -0
- kosoku-0.1.0/kosoku/cases/case5_20.py +31 -0
- kosoku-0.1.0/kosoku/cases/case5_3.py +33 -0
- kosoku-0.1.0/kosoku/cases/case5_4.py +33 -0
- kosoku-0.1.0/kosoku/cases/case5_5.py +33 -0
- kosoku-0.1.0/kosoku/cases/case5_6.py +35 -0
- kosoku-0.1.0/kosoku/cases/case5_7.py +35 -0
- kosoku-0.1.0/kosoku/cases/case5_8.py +35 -0
- kosoku-0.1.0/kosoku/cases/case5_9.py +33 -0
- kosoku-0.1.0/kosoku/cases/case6_1_1.py +33 -0
- kosoku-0.1.0/kosoku/cases/case6_1_2.py +35 -0
- kosoku-0.1.0/kosoku/cases/case6_1_3.py +36 -0
- kosoku-0.1.0/kosoku/cases/case6_2_1.py +39 -0
- kosoku-0.1.0/kosoku/cases/case6_2_2.py +41 -0
- kosoku-0.1.0/kosoku/cases/case6_2_3.py +39 -0
- kosoku-0.1.0/kosoku/cases/case6_2_4.py +39 -0
- kosoku-0.1.0/kosoku/cases/case6_3_1.py +44 -0
- kosoku-0.1.0/kosoku/cases/case6_3_2.py +39 -0
- kosoku-0.1.0/kosoku/cases/case6_4_1.py +68 -0
- kosoku-0.1.0/kosoku/cases/case6_4_2.py +61 -0
- kosoku-0.1.0/kosoku/cases/case6_4_3.py +64 -0
- kosoku-0.1.0/kosoku/cases/case6_4_4.py +64 -0
- kosoku-0.1.0/kosoku/cases/case6_x_x.py +434 -0
- kosoku-0.1.0/kosoku/cases/case7_13_1.py +47 -0
- kosoku-0.1.0/kosoku/cases/case7_13_2.py +47 -0
- kosoku-0.1.0/kosoku/cases/case7_1_1.py +44 -0
- kosoku-0.1.0/kosoku/cases/case7_1_2.py +46 -0
- kosoku-0.1.0/kosoku/cases/case7_1_3.py +47 -0
- kosoku-0.1.0/kosoku/cases/case7_1_4.py +46 -0
- kosoku-0.1.0/kosoku/cases/case7_1_5.py +47 -0
- kosoku-0.1.0/kosoku/cases/case7_1_6.py +57 -0
- kosoku-0.1.0/kosoku/cases/case7_3_1.py +42 -0
- kosoku-0.1.0/kosoku/cases/case7_3_2.py +42 -0
- kosoku-0.1.0/kosoku/cases/case7_3_3.py +44 -0
- kosoku-0.1.0/kosoku/cases/case7_3_4.py +42 -0
- kosoku-0.1.0/kosoku/cases/case7_3_5.py +43 -0
- kosoku-0.1.0/kosoku/cases/case7_3_6.py +43 -0
- kosoku-0.1.0/kosoku/cases/case7_5_1.py +54 -0
- kosoku-0.1.0/kosoku/cases/case7_7_X.py +57 -0
- kosoku-0.1.0/kosoku/cases/case7_9_X.py +57 -0
- kosoku-0.1.0/kosoku/cases/case9_1_1.py +55 -0
- kosoku-0.1.0/kosoku/cases/case9_1_2.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_1_3.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_1_4.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_1_5.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_1_6.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_2_1.py +55 -0
- kosoku-0.1.0/kosoku/cases/case9_2_2.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_2_3.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_2_4.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_2_5.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_2_6.py +31 -0
- kosoku-0.1.0/kosoku/cases/case9_3_1.py +56 -0
- kosoku-0.1.0/kosoku/cases/case9_3_2.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_3.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_4.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_5.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_6.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_7.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_8.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_3_9.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_1.py +55 -0
- kosoku-0.1.0/kosoku/cases/case9_4_2.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_3.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_4.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_5.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_6.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_7.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_8.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_4_9.py +32 -0
- kosoku-0.1.0/kosoku/cases/case9_5_1.py +57 -0
- kosoku-0.1.0/kosoku/cases/case9_5_2.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_5_3.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_5_4.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_5_5.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_5_6.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_6_1.py +57 -0
- kosoku-0.1.0/kosoku/cases/case9_6_2.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_6_3.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_6_4.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_6_5.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_6_6.py +28 -0
- kosoku-0.1.0/kosoku/cases/case9_7_X.py +95 -0
- kosoku-0.1.0/kosoku/py.typed +0 -0
- kosoku-0.1.0/kosoku/shim/autobahn/__init__.py +0 -0
- kosoku-0.1.0/kosoku/shim/autobahn/websocket/__init__.py +0 -0
- kosoku-0.1.0/kosoku/shim/autobahn/websocket/compress.py +23 -0
- kosoku-0.1.0/kosoku/shim/autobahn/websocket/protocol.py +43 -0
- kosoku-0.1.0/kosoku/shim/autobahn/websocket/utf8validator.py +13 -0
- kosoku-0.1.0/kosoku/shim/autobahntestsuite/__init__.py +7 -0
- kosoku-0.1.0/kosoku/shim/autobahntestsuite/testdata/10.1.1.105.5439.pdf +0 -0
- kosoku-0.1.0/kosoku/shim/autobahntestsuite/testdata/data1.html +4254 -0
- kosoku-0.1.0/kosoku/shim/autobahntestsuite/testdata/data1.json +6581 -0
- kosoku-0.1.0/kosoku/shim/autobahntestsuite/testdata/lena512.bmp +0 -0
- kosoku-0.1.0/kosoku/shim/autobahntestsuite/testdata/pg2229.txt +7429 -0
- kosoku-0.1.0/kosoku/shim/pkg_resources.py +20 -0
- kosoku-0.1.0/kosoku.code-workspace +51 -0
- kosoku-0.1.0/poe_tasks.toml +59 -0
- kosoku-0.1.0/pyproject.toml +64 -0
- kosoku-0.1.0/renovate.json +26 -0
- kosoku-0.1.0/scripts/generate.py +272 -0
- kosoku-0.1.0/src/asyncrt.rs +27 -0
- kosoku-0.1.0/src/client.rs +311 -0
- kosoku-0.1.0/src/compress.rs +162 -0
- kosoku-0.1.0/src/constants.rs +190 -0
- kosoku-0.1.0/src/deflate.rs +201 -0
- kosoku-0.1.0/src/lib.rs +262 -0
- kosoku-0.1.0/src/protocol.rs +790 -0
- kosoku-0.1.0/src/result.rs +363 -0
- kosoku-0.1.0/src/runner.rs +502 -0
- kosoku-0.1.0/src/server.rs +485 -0
- kosoku-0.1.0/src/traffic.rs +138 -0
- kosoku-0.1.0/src/utf8.rs +123 -0
- kosoku-0.1.0/src/wirelog.rs +162 -0
- kosoku-0.1.0/tests/__init__.py +0 -0
- kosoku-0.1.0/tests/_util.py +26 -0
- kosoku-0.1.0/tests/apps/echo.py +16 -0
- kosoku-0.1.0/tests/conftest.py +24 -0
- kosoku-0.1.0/tests/test_fuzzingclient.py +148 -0
- kosoku-0.1.0/tests/test_fuzzingserver.py +210 -0
- kosoku-0.1.0/tests/test_utf8validator.py +75 -0
- kosoku-0.1.0/uv.lock +698 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* text=auto eol=lf
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
pull_request:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
# Cancel in-progress jobs for PRs only
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.sha || github.ref }}
|
|
15
|
+
cancel-in-progress: true
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
matrix:
|
|
23
|
+
os:
|
|
24
|
+
- macos-15
|
|
25
|
+
- ubuntu-24.04
|
|
26
|
+
- windows-2025
|
|
27
|
+
python:
|
|
28
|
+
- "3.10"
|
|
29
|
+
- "3.14"
|
|
30
|
+
# Test oldest and newest on all OS's, but others only on one
|
|
31
|
+
# to save CI load.
|
|
32
|
+
include:
|
|
33
|
+
- os: ubuntu-24.04
|
|
34
|
+
python: "3.11"
|
|
35
|
+
- os: ubuntu-24.04
|
|
36
|
+
python: "3.12"
|
|
37
|
+
- os: ubuntu-24.04
|
|
38
|
+
python: "3.13"
|
|
39
|
+
- os: ubuntu-24.04
|
|
40
|
+
python: "3.14t"
|
|
41
|
+
# Enable coverage on just one job
|
|
42
|
+
- os: ubuntu-24.04
|
|
43
|
+
python: "3.14"
|
|
44
|
+
coverage: "cov"
|
|
45
|
+
|
|
46
|
+
env:
|
|
47
|
+
# Avoid multiple compile e.g. in lint and test by setting as a job env var
|
|
48
|
+
RUSTFLAGS: "${{ matrix.coverage == 'cov' && '-C instrument-coverage' || '' }}"
|
|
49
|
+
MATURIN_DEVELOP_ARGS: ${{ matrix.python != '3.14t' && '--features pyo3/abi3-py310' || '' }}
|
|
50
|
+
|
|
51
|
+
steps:
|
|
52
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
53
|
+
|
|
54
|
+
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
|
55
|
+
with:
|
|
56
|
+
version: "0.11.23"
|
|
57
|
+
python-version: ${{ matrix.python }}
|
|
58
|
+
|
|
59
|
+
- name: Setup rust
|
|
60
|
+
run: |
|
|
61
|
+
rustup update
|
|
62
|
+
${{ matrix.coverage == 'cov' && 'rustup component add llvm-tools' || '' }}
|
|
63
|
+
|
|
64
|
+
- run: uv sync --locked
|
|
65
|
+
|
|
66
|
+
# Go ahead and run lint on all Python versions since we may have version-specific
|
|
67
|
+
# guards in rust in the future.
|
|
68
|
+
- name: run lints
|
|
69
|
+
if: startsWith(matrix.os, 'ubuntu-')
|
|
70
|
+
run: uv run poe lint
|
|
71
|
+
|
|
72
|
+
- name: run tests
|
|
73
|
+
run: uv run poe test ${{ matrix.coverage == 'cov' && '--cov=kosoku --cov-report=xml' || '' }}
|
|
74
|
+
|
|
75
|
+
- name: verify wheel build
|
|
76
|
+
run: uv run poe wheel
|
|
77
|
+
|
|
78
|
+
- name: prepare coverage
|
|
79
|
+
if: ${{ matrix.coverage == 'cov' }}
|
|
80
|
+
run: |
|
|
81
|
+
$(rustc --print=target-libdir)/../bin/llvm-profdata merge -sparse default_*.profraw -o tests.profdata
|
|
82
|
+
$(rustc --print=target-libdir)/../bin/llvm-cov export -format=lcov --ignore-filename-regex='/.cargo/registry' --ignore-filename-regex='.cargo/git/checkouts' --ignore-filename-regex='.rustup/toolchains' -instr-profile tests.profdata kosoku/_kosoku.*.so > tests.lcov
|
|
83
|
+
|
|
84
|
+
- uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
|
|
85
|
+
if: ${{ matrix.coverage == 'cov' }}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
linux:
|
|
14
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
platform:
|
|
18
|
+
- runner: ubuntu-24.04
|
|
19
|
+
target: x86_64
|
|
20
|
+
- runner: ubuntu-24.04-arm
|
|
21
|
+
target: aarch64
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
24
|
+
|
|
25
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
26
|
+
with:
|
|
27
|
+
python-version: 3.x
|
|
28
|
+
|
|
29
|
+
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
|
30
|
+
|
|
31
|
+
- name: Build wheels
|
|
32
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
33
|
+
with:
|
|
34
|
+
target: ${{ matrix.platform.target }}
|
|
35
|
+
args: --release --out dist -i 3.14t -i pypy3.11
|
|
36
|
+
sccache: true
|
|
37
|
+
manylinux: auto
|
|
38
|
+
|
|
39
|
+
- name: Build abi3 wheels
|
|
40
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
41
|
+
with:
|
|
42
|
+
target: ${{ matrix.platform.target }}
|
|
43
|
+
args: --release --out dist -i 3.10 --features pyo3/abi3-py310
|
|
44
|
+
sccache: true
|
|
45
|
+
manylinux: auto
|
|
46
|
+
|
|
47
|
+
- name: Upload wheels
|
|
48
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
49
|
+
with:
|
|
50
|
+
name: wheels-linux-${{ matrix.platform.target }}
|
|
51
|
+
path: dist
|
|
52
|
+
|
|
53
|
+
musllinux:
|
|
54
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
55
|
+
strategy:
|
|
56
|
+
matrix:
|
|
57
|
+
platform:
|
|
58
|
+
- runner: ubuntu-24.04
|
|
59
|
+
target: x86_64
|
|
60
|
+
- runner: ubuntu-24.04-arm
|
|
61
|
+
target: aarch64
|
|
62
|
+
steps:
|
|
63
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
64
|
+
|
|
65
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
66
|
+
with:
|
|
67
|
+
python-version: 3.x
|
|
68
|
+
|
|
69
|
+
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
|
70
|
+
|
|
71
|
+
- name: Build wheels
|
|
72
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
73
|
+
with:
|
|
74
|
+
target: ${{ matrix.platform.target }}
|
|
75
|
+
args: --release --out dist -i 3.14t -i pypy3.11
|
|
76
|
+
sccache: true
|
|
77
|
+
manylinux: musllinux_1_2
|
|
78
|
+
|
|
79
|
+
- name: Build abi3 wheels
|
|
80
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
81
|
+
with:
|
|
82
|
+
target: ${{ matrix.platform.target }}
|
|
83
|
+
args: --release --out dist -i 3.10 --features pyo3/abi3-py310
|
|
84
|
+
sccache: true
|
|
85
|
+
manylinux: musllinux_1_2
|
|
86
|
+
|
|
87
|
+
- name: Upload wheels
|
|
88
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
89
|
+
with:
|
|
90
|
+
name: wheels-musllinux-${{ matrix.platform.target }}
|
|
91
|
+
path: dist
|
|
92
|
+
|
|
93
|
+
windows:
|
|
94
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
95
|
+
strategy:
|
|
96
|
+
matrix:
|
|
97
|
+
platform:
|
|
98
|
+
- runner: windows-2025
|
|
99
|
+
steps:
|
|
100
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
101
|
+
|
|
102
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
103
|
+
with:
|
|
104
|
+
python-version: "3.10"
|
|
105
|
+
|
|
106
|
+
# On Windows, maturin seems to have trouble automatically detecting Python not in
|
|
107
|
+
# the tool cache, so we set these up individually and pass the path directly.
|
|
108
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
109
|
+
id: python-314t
|
|
110
|
+
with:
|
|
111
|
+
python-version: 3.14t
|
|
112
|
+
|
|
113
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
114
|
+
id: python-pypy311
|
|
115
|
+
with:
|
|
116
|
+
python-version: pypy3.11
|
|
117
|
+
|
|
118
|
+
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
|
119
|
+
|
|
120
|
+
- name: Build wheels
|
|
121
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
122
|
+
with:
|
|
123
|
+
args: --release --out dist -i ${{ steps.python-314t.outputs.python-path }} -i ${{ steps.python-pypy311.outputs.python-path }}
|
|
124
|
+
sccache: true
|
|
125
|
+
|
|
126
|
+
- name: Build abi3 wheels
|
|
127
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
128
|
+
with:
|
|
129
|
+
args: --release --out dist -i 3.10 --features pyo3/abi3-py310
|
|
130
|
+
sccache: true
|
|
131
|
+
|
|
132
|
+
- name: Upload wheels
|
|
133
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
134
|
+
with:
|
|
135
|
+
name: wheels-windows-${{ matrix.platform.target }}
|
|
136
|
+
path: dist
|
|
137
|
+
|
|
138
|
+
macos:
|
|
139
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
140
|
+
strategy:
|
|
141
|
+
matrix:
|
|
142
|
+
platform:
|
|
143
|
+
- runner: macos-15
|
|
144
|
+
target: aarch64
|
|
145
|
+
steps:
|
|
146
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
147
|
+
|
|
148
|
+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
149
|
+
with:
|
|
150
|
+
python-version: |
|
|
151
|
+
3.10
|
|
152
|
+
3.14t
|
|
153
|
+
pypy3.11
|
|
154
|
+
|
|
155
|
+
- uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
|
156
|
+
|
|
157
|
+
- name: Build wheels
|
|
158
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
159
|
+
with:
|
|
160
|
+
target: ${{ matrix.platform.target }}
|
|
161
|
+
args: --release --out dist -i 3.14t -i pypy3.11
|
|
162
|
+
sccache: true
|
|
163
|
+
|
|
164
|
+
- name: Build abi3 wheels
|
|
165
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
166
|
+
with:
|
|
167
|
+
target: ${{ matrix.platform.target }}
|
|
168
|
+
args: --release --out dist -i 3.10 --features pyo3/abi3-py310
|
|
169
|
+
sccache: true
|
|
170
|
+
|
|
171
|
+
- name: Upload wheels
|
|
172
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
173
|
+
with:
|
|
174
|
+
name: wheels-macos-${{ matrix.platform.target }}
|
|
175
|
+
path: dist
|
|
176
|
+
|
|
177
|
+
sdist:
|
|
178
|
+
runs-on: ubuntu-24.04
|
|
179
|
+
steps:
|
|
180
|
+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
181
|
+
|
|
182
|
+
- name: Build sdist
|
|
183
|
+
uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
|
|
184
|
+
with:
|
|
185
|
+
command: sdist
|
|
186
|
+
args: --out dist
|
|
187
|
+
|
|
188
|
+
- name: Upload sdist
|
|
189
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
190
|
+
with:
|
|
191
|
+
name: wheels-sdist
|
|
192
|
+
path: dist
|
|
193
|
+
|
|
194
|
+
release:
|
|
195
|
+
name: Release
|
|
196
|
+
runs-on: ubuntu-24.04
|
|
197
|
+
if: ${{ github.event_name != 'pull_request' }}
|
|
198
|
+
environment: ${{ github.event_name == 'push' && 'prod' || 'dev' }}
|
|
199
|
+
needs:
|
|
200
|
+
- linux
|
|
201
|
+
- musllinux
|
|
202
|
+
- windows
|
|
203
|
+
- macos
|
|
204
|
+
- sdist
|
|
205
|
+
permissions:
|
|
206
|
+
id-token: write
|
|
207
|
+
contents: write
|
|
208
|
+
attestations: write
|
|
209
|
+
steps:
|
|
210
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
211
|
+
with:
|
|
212
|
+
path: dist/
|
|
213
|
+
merge-multiple: true
|
|
214
|
+
|
|
215
|
+
- uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
216
|
+
with:
|
|
217
|
+
repository-url: ${{ github.event_name != 'push' && 'https://test.pypi.org/legacy/' || null }}
|
|
218
|
+
skip-existing: ${{ github.event_name != 'push' }}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: Renovate Dependencies
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# https://crontab.guru/#5_12_*_*_1
|
|
6
|
+
- cron: "5 12 * * 1"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
# Uses app token so default token needs no permissions
|
|
10
|
+
permissions: {}
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
renovate:
|
|
14
|
+
uses: curioswitch/go-build/.github/workflows/export-renovate.yaml@338fc9f50df6cb664134b5c600630dcbc483d81f # v0.7.3
|
|
15
|
+
with:
|
|
16
|
+
github_app_id: "1047503"
|
|
17
|
+
secrets:
|
|
18
|
+
github_app_key: ${{ secrets.CURIOSWITCH_APP_KEY }}
|
kosoku-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
This project follows the CurioSwitch code of conduct.
|
|
2
|
+
|
|
3
|
+
> [!WARNING]
|
|
4
|
+
> Any following content is overridden by the laws of CurioSwitch's residing country, Japan.
|
|
5
|
+
> For example, things like death threats will be dealt with strictly.
|
|
6
|
+
|
|
7
|
+
There is just one guideline: be fair. It is not possible to define fairness precisely
|
|
8
|
+
but consider these examples when thinking about it.
|
|
9
|
+
|
|
10
|
+
Fair:
|
|
11
|
+
|
|
12
|
+
- Respond promptly to submitted issues / PRs.
|
|
13
|
+
- Contributors spend time on submissions and it is not fair to not do the same in return.
|
|
14
|
+
- Aim for robust / tested code and systems.
|
|
15
|
+
- It is not fair to users to give them a tool that only half-works and causes them frustration.
|
|
16
|
+
- Acknowledge others' points, even if disagreeing, instead of ignoring.
|
|
17
|
+
- People engage in good faith, and it is not fair to leave it wasted.
|
|
18
|
+
|
|
19
|
+
Unfair:
|
|
20
|
+
|
|
21
|
+
- Keep issues about bugs or significant pain points open for a long time or suggest the contributor can raise a PR.
|
|
22
|
+
- Users are not maintainers and it is not fair to expect them to become one to fix a bug
|
|
23
|
+
(it is always welcome when they have the time and will to contribute though).
|
|
24
|
+
- Prioritize issues and discussions with friends, acquaintances, or those in the same timezone over others.
|
|
25
|
+
- This is OSS and it is not fair to create boundaries or factions within it.
|
|
26
|
+
|
|
27
|
+
We are not perfect and may act in a way that isn't fair. This is fine and generally will not
|
|
28
|
+
need punitive measures - we will aim to improve over time. But do accept feedback about it in
|
|
29
|
+
good faith and respond to it fairly. If you need to provide feedback related to the above in
|
|
30
|
+
a private matter, feel free to email oss@curioswitch.org and we will aim to help in a fair
|
|
31
|
+
manner.
|