pl-row-encode 0.3.1__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 @@
1
+ {"sessionId":"ed1ac758-6dc2-4ee4-8ca4-3f4a9d526f6f","pid":25058,"procStart":"Wed Jun 3 01:56:30 2026","acquiredAt":1780883354895}
@@ -0,0 +1,44 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ concurrency:
10
+ group: ci-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ checks:
18
+ name: tox (py${{ matrix.python }})
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ python: ["3.12", "3.13", "3.14"]
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+
27
+ - name: Install Rust toolchain
28
+ uses: dtolnay/rust-toolchain@stable
29
+
30
+ - name: Cache Rust build
31
+ uses: Swatinem/rust-cache@v2
32
+
33
+ - name: Install uv
34
+ uses: astral-sh/setup-uv@v5
35
+ with:
36
+ enable-cache: true
37
+
38
+ - name: Set up Python ${{ matrix.python }}
39
+ run: uv python install ${{ matrix.python }}
40
+
41
+ # `-f pyXYZ` selects every factor (test/lint/type) for this Python version
42
+ # from tox.ini's `py{312,313,314}-{test,lint,type}` matrix.
43
+ - name: Run tox
44
+ run: uvx --with tox-uv tox -f py${{ matrix.python == '3.12' && '312' || matrix.python == '3.13' && '313' || '314' }}
@@ -0,0 +1,18 @@
1
+ name: PR Title
2
+
3
+ # Squash-merges use the PR title as the commit message, so it must be a valid
4
+ # Conventional Commit for release-please to compute the next version correctly.
5
+ on:
6
+ pull_request_target:
7
+ types: [opened, edited, synchronize, reopened]
8
+
9
+ permissions:
10
+ pull-requests: read
11
+
12
+ jobs:
13
+ lint-title:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: amannn/action-semantic-pull-request@v6
17
+ env:
18
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,144 @@
1
+ name: build-wheels
2
+
3
+ # Builds compiled wheels (+ sdist) for every supported platform and uploads them as
4
+ # `wheels-*` artifacts. This is a reusable, build-only workflow: it does NOT publish.
5
+ # release-please.yml calls it via `workflow_call` and then runs the PyPI upload itself.
6
+ #
7
+ # Why the upload lives in the caller, not here: PyPI Trusted Publishing does not work
8
+ # from inside a reusable workflow (it raises `invalid-publisher`), so the
9
+ # `pypa/gh-action-pypi-publish` step must run in a top-level workflow.
10
+ # See https://github.com/pypa/gh-action-pypi-publish/issues/166
11
+ on:
12
+ workflow_call:
13
+ pull_request:
14
+ paths:
15
+ - "src/**"
16
+ - "Cargo.*"
17
+ - "pyproject.toml"
18
+ - ".github/workflows/publish.yml"
19
+ workflow_dispatch:
20
+
21
+ permissions:
22
+ contents: read
23
+
24
+ jobs:
25
+ linux:
26
+ runs-on: ubuntu-latest
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ target: [x86_64, aarch64]
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ - uses: actions/setup-python@v5
34
+ with:
35
+ python-version: "3.x"
36
+ - name: Build wheels
37
+ uses: PyO3/maturin-action@v1
38
+ with:
39
+ target: ${{ matrix.target }}
40
+ args: --release --out dist
41
+ sccache: true
42
+ manylinux: auto
43
+ - name: Build free-threaded wheels
44
+ uses: PyO3/maturin-action@v1
45
+ with:
46
+ target: ${{ matrix.target }}
47
+ args: --release --out dist -i python3.13t
48
+ sccache: true
49
+ manylinux: auto
50
+ - uses: actions/upload-artifact@v4
51
+ with:
52
+ name: wheels-linux-${{ matrix.target }}
53
+ path: dist
54
+
55
+ musllinux:
56
+ runs-on: ubuntu-latest
57
+ strategy:
58
+ fail-fast: false
59
+ matrix:
60
+ target: [x86_64]
61
+ steps:
62
+ - uses: actions/checkout@v4
63
+ - uses: actions/setup-python@v5
64
+ with:
65
+ python-version: "3.x"
66
+ - name: Build wheels
67
+ uses: PyO3/maturin-action@v1
68
+ with:
69
+ target: ${{ matrix.target }}
70
+ args: --release --out dist
71
+ sccache: true
72
+ manylinux: musllinux_1_2
73
+ - uses: actions/upload-artifact@v4
74
+ with:
75
+ name: wheels-musllinux-${{ matrix.target }}
76
+ path: dist
77
+
78
+ windows:
79
+ runs-on: windows-latest
80
+ strategy:
81
+ fail-fast: false
82
+ matrix:
83
+ target: [x64]
84
+ steps:
85
+ - uses: actions/checkout@v4
86
+ - uses: actions/setup-python@v5
87
+ with:
88
+ python-version: "3.x"
89
+ architecture: ${{ matrix.target }}
90
+ - name: Build wheels
91
+ uses: PyO3/maturin-action@v1
92
+ with:
93
+ target: ${{ matrix.target }}
94
+ args: --release --out dist
95
+ sccache: true
96
+ - uses: actions/upload-artifact@v4
97
+ with:
98
+ name: wheels-windows-${{ matrix.target }}
99
+ path: dist
100
+
101
+ macos:
102
+ # Both targets build on Apple-Silicon macos-14 runners (which can cross-compile
103
+ # the x86_64 wheel). The Intel macos-13 runners are being wound down and can sit
104
+ # queued for hours, which would block the whole release on the `pypi` job.
105
+ runs-on: macos-14
106
+ strategy:
107
+ fail-fast: false
108
+ matrix:
109
+ target: [x86_64, aarch64]
110
+ steps:
111
+ - uses: actions/checkout@v4
112
+ - uses: actions/setup-python@v5
113
+ with:
114
+ python-version: "3.x"
115
+ - name: Build wheels
116
+ uses: PyO3/maturin-action@v1
117
+ with:
118
+ target: ${{ matrix.target }}
119
+ args: --release --out dist
120
+ sccache: true
121
+ - name: Build free-threaded wheels
122
+ uses: PyO3/maturin-action@v1
123
+ with:
124
+ target: ${{ matrix.target }}
125
+ args: --release --out dist -i python3.13t
126
+ sccache: true
127
+ - uses: actions/upload-artifact@v4
128
+ with:
129
+ name: wheels-macos-${{ matrix.target }}
130
+ path: dist
131
+
132
+ sdist:
133
+ runs-on: ubuntu-latest
134
+ steps:
135
+ - uses: actions/checkout@v4
136
+ - name: Build sdist
137
+ uses: PyO3/maturin-action@v1
138
+ with:
139
+ command: sdist
140
+ args: --out dist
141
+ - uses: actions/upload-artifact@v4
142
+ with:
143
+ name: wheels-sdist
144
+ path: dist
@@ -0,0 +1,61 @@
1
+ name: release-please
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+
12
+ jobs:
13
+ release-please:
14
+ runs-on: ubuntu-latest
15
+ outputs:
16
+ release_created: ${{ steps.release.outputs.release_created }}
17
+ tag_name: ${{ steps.release.outputs.tag_name }}
18
+ steps:
19
+ # Maintains a release PR off main; merging it bumps Cargo.toml + Cargo.lock,
20
+ # updates CHANGELOG.md, tags vX.Y.Z, and publishes a GitHub Release.
21
+ - uses: googleapis/release-please-action@v4
22
+ id: release
23
+ with:
24
+ config-file: release-please-config.json
25
+ manifest-file: .release-please-manifest.json
26
+
27
+ # When a release was just created, build wheels (reusable workflow) then publish.
28
+ # This all runs in the push-to-main context rather than via a `release:` trigger
29
+ # because releases made with GITHUB_TOKEN cannot trigger downstream workflows.
30
+ build:
31
+ needs: release-please
32
+ if: ${{ needs.release-please.outputs.release_created == 'true' }}
33
+ uses: ./.github/workflows/publish.yml
34
+
35
+ # The PyPI upload must run in this top-level workflow, not the reusable one above:
36
+ # Trusted Publishing fails (`invalid-publisher`) from inside a reusable workflow.
37
+ # NOTE: the PyPI trusted publisher must be configured with workflow file
38
+ # `release-please.yml` (this file), since that is the workflow that runs the upload.
39
+ pypi:
40
+ needs: [release-please, build]
41
+ if: ${{ needs.release-please.outputs.release_created == 'true' }}
42
+ runs-on: ubuntu-latest
43
+ environment: pypi
44
+ permissions:
45
+ id-token: write # OIDC Trusted Publishing
46
+ contents: read
47
+ attestations: write # build provenance
48
+ steps:
49
+ - uses: actions/download-artifact@v4
50
+ with:
51
+ pattern: wheels-*
52
+ path: dist
53
+ merge-multiple: true
54
+ - name: Generate artifact attestation
55
+ uses: actions/attest-build-provenance@v2
56
+ with:
57
+ subject-path: "dist/*"
58
+ - name: Publish to PyPI
59
+ uses: pypa/gh-action-pypi-publish@release/v1
60
+ with:
61
+ packages-dir: dist
@@ -0,0 +1,20 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ .ruff_cache
10
+
11
+ # Virtual environments
12
+ .venv
13
+
14
+ target/
15
+
16
+ *.so
17
+
18
+ .tox/
19
+
20
+ .pytest_cache
@@ -0,0 +1,53 @@
1
+ # Runnable with `prek` (the project's fast pre-commit runner) or vanilla `pre-commit`.
2
+ # prek install # sets up pre-commit AND commit-msg hooks (see below)
3
+ # prek run --all-files
4
+ default_install_hook_types: [pre-commit, commit-msg]
5
+
6
+ repos:
7
+ # Enforces Conventional Commit messages so release-please can compute versions.
8
+ - repo: https://github.com/compilerla/conventional-pre-commit
9
+ rev: v4.0.0
10
+ hooks:
11
+ - id: conventional-pre-commit
12
+ stages: [commit-msg]
13
+
14
+ - repo: https://github.com/pre-commit/pre-commit-hooks
15
+ rev: v5.0.0
16
+ hooks:
17
+ - id: trailing-whitespace
18
+ - id: end-of-file-fixer
19
+ - id: check-toml
20
+ - id: check-yaml
21
+ - id: check-merge-conflict
22
+ - id: check-added-large-files
23
+
24
+ - repo: https://github.com/astral-sh/ruff-pre-commit
25
+ rev: v0.15.15
26
+ hooks:
27
+ - id: ruff-format
28
+ - id: ruff
29
+ args: [--fix]
30
+
31
+ # Local hooks use the project toolchain so versions stay in sync with the repo.
32
+ - repo: local
33
+ hooks:
34
+ - id: cargo-fmt
35
+ name: cargo fmt
36
+ entry: cargo fmt --
37
+ language: system
38
+ files: \.rs$
39
+ pass_filenames: false
40
+
41
+ - id: cargo-clippy
42
+ name: cargo clippy
43
+ entry: cargo clippy --all-targets -- -D warnings
44
+ language: system
45
+ files: \.rs$
46
+ pass_filenames: false
47
+
48
+ - id: ty
49
+ name: ty check
50
+ entry: uv run ty check
51
+ language: system
52
+ types: [python]
53
+ pass_filenames: false
@@ -0,0 +1 @@
1
+ 3.14
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.3.1"
3
+ }
@@ -0,0 +1,33 @@
1
+ # Changelog
2
+
3
+ ## [0.3.1](https://github.com/tylerriccio33/pl-row-encode/compare/v0.3.0...v0.3.1) (2026-06-09)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * build both macOS wheels on macos-14 to avoid stuck macos-13 runner ([9be245a](https://github.com/tylerriccio33/pl-row-encode/commit/9be245a68dbc0b31be87827fa14beb100f27bd20))
9
+ * build both macOS wheels on macos-14 to avoid stuck macos-13 runner ([4703b0d](https://github.com/tylerriccio33/pl-row-encode/commit/4703b0dcd0df106d9e9ad334c80f2a267c4cd29f))
10
+
11
+ ## [0.3.0](https://github.com/tylerriccio33/pl-row-encode/compare/v0.2.0...v0.3.0) (2026-06-09)
12
+
13
+
14
+ ### Features
15
+
16
+ * enable automated PyPI release pipeline ([cf82771](https://github.com/tylerriccio33/pl-row-encode/commit/cf82771e6601cb4419d6e976db48f70fe26503b4))
17
+ * enable automated PyPI release pipeline ([cf8e0df](https://github.com/tylerriccio33/pl-row-encode/commit/cf8e0df43bfb00ec3356648dc26204855462925f))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * publish to PyPI from release-please instead of release trigger ([932af88](https://github.com/tylerriccio33/pl-row-encode/commit/932af882a147188042fb783d4ab2c2cb02b19fc9))
23
+ * publish to PyPI from release-please instead of release trigger ([66c2385](https://github.com/tylerriccio33/pl-row-encode/commit/66c2385988bbb672446182a237b380a1b3d1c409))
24
+ * run PyPI upload from top-level workflow not reusable one ([71101d8](https://github.com/tylerriccio33/pl-row-encode/commit/71101d80b0e45418322a9050145f991601425b2b))
25
+ * run PyPI upload from top-level workflow not reusable one ([9e9a2eb](https://github.com/tylerriccio33/pl-row-encode/commit/9e9a2eb75677d2cfc297bb809a1aaa0022b7466e))
26
+
27
+ ## [0.2.0](https://github.com/tylerriccio33/pl-row-encode/compare/v0.1.0...v0.2.0) (2026-06-08)
28
+
29
+
30
+ ### Features
31
+
32
+ * enable automated PyPI release pipeline ([cf82771](https://github.com/tylerriccio33/pl-row-encode/commit/cf82771e6601cb4419d6e976db48f70fe26503b4))
33
+ * enable automated PyPI release pipeline ([cf8e0df](https://github.com/tylerriccio33/pl-row-encode/commit/cf8e0df43bfb00ec3356648dc26204855462925f))