strverify 0.1.0__tar.gz → 0.2.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.
@@ -0,0 +1,117 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ concurrency:
10
+ group: ci-${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ env:
17
+ CARGO_TERM_COLOR: always
18
+
19
+ jobs:
20
+ rust:
21
+ name: Rust checks
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v7
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v7
29
+ with:
30
+ python-version: "3.14"
31
+
32
+ - name: Set up Rust
33
+ uses: dtolnay/rust-toolchain@stable
34
+ with:
35
+ components: rustfmt, clippy
36
+
37
+ - name: Cache Rust build artifacts
38
+ uses: Swatinem/rust-cache@v2
39
+
40
+ - name: Check formatting
41
+ run: cargo fmt --all -- --check
42
+
43
+ - name: Run Clippy
44
+ run: cargo clippy --locked --all-targets -- -D warnings
45
+
46
+ - name: Run Rust tests
47
+ run: cargo test --locked
48
+
49
+ msrv:
50
+ name: MSRV (Rust 1.85)
51
+ runs-on: ubuntu-latest
52
+ steps:
53
+ - name: Checkout repository
54
+ uses: actions/checkout@v7
55
+
56
+ - name: Set up Python
57
+ uses: actions/setup-python@v7
58
+ with:
59
+ python-version: "3.14"
60
+
61
+ - name: Set up Rust 1.85
62
+ uses: dtolnay/rust-toolchain@1.85.0
63
+
64
+ - name: Cache Rust build artifacts
65
+ uses: Swatinem/rust-cache@v2
66
+
67
+ - name: Check the crate against the MSRV
68
+ run: cargo check --locked --all-targets
69
+
70
+ python:
71
+ name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
72
+ runs-on: ${{ matrix.os }}
73
+ strategy:
74
+ fail-fast: false
75
+ matrix:
76
+ include:
77
+ # Python 3.9 is not available on Ubuntu 26.04 (ubuntu-latest).
78
+ - os: ubuntu-24.04
79
+ python-version: "3.9"
80
+ - os: ubuntu-latest
81
+ python-version: "3.10"
82
+ - os: ubuntu-latest
83
+ python-version: "3.11"
84
+ - os: ubuntu-latest
85
+ python-version: "3.12"
86
+ - os: ubuntu-latest
87
+ python-version: "3.13"
88
+ - os: ubuntu-latest
89
+ python-version: "3.14"
90
+ - os: macos-latest
91
+ python-version: "3.14"
92
+ - os: windows-latest
93
+ python-version: "3.14"
94
+ steps:
95
+ - name: Checkout repository
96
+ uses: actions/checkout@v7
97
+
98
+ - name: Set up Python
99
+ uses: actions/setup-python@v7
100
+ with:
101
+ python-version: ${{ matrix.python-version }}
102
+
103
+ - name: Set up Rust
104
+ uses: dtolnay/rust-toolchain@stable
105
+
106
+ - name: Cache Rust build artifacts
107
+ uses: Swatinem/rust-cache@v2
108
+ with:
109
+ key: ${{ matrix.os }}-python-${{ matrix.python-version }}
110
+
111
+ - name: Install package and test dependencies
112
+ run: |
113
+ python -m pip install --upgrade pip
114
+ python -m pip install ".[test]"
115
+
116
+ - name: Run Python tests
117
+ run: python -m pytest
@@ -0,0 +1,121 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+ workflow_dispatch:
7
+ inputs:
8
+ publish:
9
+ description: Publish the built artifacts to PyPI
10
+ required: false
11
+ type: boolean
12
+ default: false
13
+
14
+ concurrency:
15
+ group: release-${{ github.ref }}
16
+ cancel-in-progress: false
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ env:
22
+ CARGO_TERM_COLOR: always
23
+
24
+ jobs:
25
+ wheels:
26
+ name: Wheel (${{ matrix.target }} on ${{ matrix.os }})
27
+ runs-on: ${{ matrix.os }}
28
+ strategy:
29
+ fail-fast: false
30
+ matrix:
31
+ include:
32
+ - os: ubuntu-latest
33
+ target: x86_64
34
+ - os: ubuntu-24.04-arm
35
+ target: aarch64
36
+ - os: macos-15-intel
37
+ target: x86_64
38
+ - os: macos-latest
39
+ target: aarch64
40
+ - os: windows-latest
41
+ target: x86_64
42
+ steps:
43
+ - name: Checkout repository
44
+ uses: actions/checkout@v7
45
+
46
+ - name: Build wheel
47
+ uses: PyO3/maturin-action@v1
48
+ with:
49
+ target: ${{ matrix.target }}
50
+ args: --release --locked --compatibility pypi --out dist
51
+ manylinux: auto
52
+
53
+ - name: Upload wheel
54
+ uses: actions/upload-artifact@v7
55
+ with:
56
+ name: wheel-${{ matrix.os }}-${{ matrix.target }}
57
+ path: dist/*.whl
58
+ if-no-files-found: error
59
+
60
+ sdist:
61
+ name: Source distribution
62
+ runs-on: ubuntu-latest
63
+ steps:
64
+ - name: Checkout repository
65
+ uses: actions/checkout@v7
66
+
67
+ - name: Build sdist
68
+ uses: PyO3/maturin-action@v1
69
+ with:
70
+ command: sdist
71
+ args: --out dist
72
+
73
+ - name: Upload sdist
74
+ uses: actions/upload-artifact@v7
75
+ with:
76
+ name: sdist
77
+ path: dist/*.tar.gz
78
+ if-no-files-found: error
79
+
80
+ publish:
81
+ name: Publish to PyPI
82
+ needs: [wheels, sdist]
83
+ if: startsWith(github.ref, 'refs/tags/v') || inputs.publish
84
+ runs-on: ubuntu-latest
85
+ # Configure a trusted publisher on PyPI and create a matching
86
+ # "pypi" environment in the repository settings.
87
+ # https://docs.pypi.org/trusted-publishers/
88
+ environment:
89
+ name: pypi
90
+ url: https://pypi.org/project/strverify/
91
+ permissions:
92
+ id-token: write
93
+ steps:
94
+ - name: Download artifacts
95
+ uses: actions/download-artifact@v8
96
+ with:
97
+ path: dist
98
+ merge-multiple: true
99
+
100
+ - name: Publish to PyPI
101
+ uses: pypa/gh-action-pypi-publish@release/v1
102
+
103
+ github-release:
104
+ name: GitHub release
105
+ needs: [publish]
106
+ if: startsWith(github.ref, 'refs/tags/v')
107
+ runs-on: ubuntu-latest
108
+ permissions:
109
+ contents: write
110
+ steps:
111
+ - name: Download artifacts
112
+ uses: actions/download-artifact@v8
113
+ with:
114
+ path: dist
115
+ merge-multiple: true
116
+
117
+ - name: Create GitHub release
118
+ uses: softprops/action-gh-release@v3
119
+ with:
120
+ files: dist/*
121
+ generate_release_notes: true
@@ -103,7 +103,7 @@ dependencies = [
103
103
 
104
104
  [[package]]
105
105
  name = "strverify"
106
- version = "0.1.0"
106
+ version = "0.2.0"
107
107
  dependencies = [
108
108
  "pyo3",
109
109
  "unicode-general-category",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "strverify"
3
- version = "0.1.0"
3
+ version = "0.2.0"
4
4
  edition = "2021"
5
5
  rust-version = "1.85"
6
6
  description = "Composable string content filters implemented in Rust"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: strverify
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Operating System :: OS Independent
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "strverify"
7
- version = "0.1.0"
7
+ version = "0.2.0"
8
8
  description = "Fast, composable string-content filters implemented in Rust"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,5 +0,0 @@
1
- # Runtime dependencies: none — the core is a compiled Rust extension.
2
- # The packages below are required for development and testing.
3
-
4
- maturin>=1.9,<2.0
5
- pytest>=8.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes