Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
4 changes: 2 additions & 2 deletions .github/workflows/release-pypi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

# portable SIMD floor (x86-64-v3/AVX2, apple-m1) - never target-cpu=native for wheels
- name: Use portable cargo config
Expand All @@ -45,7 +45,7 @@ jobs:
sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build & test & rename
Expand Down Expand Up @@ -65,7 +65,7 @@ jobs:
# Skip prerelease tags (SemVer prereleases contain a hyphen, e.g. 0.17.0-rc.1).
if: ${{ !contains(github.ref_name, '-') }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
- uses: dtolnay/rust-toolchain@stable
- name: Publish deacon to crates.io
run: cargo publish -p deacon
Expand Down
26 changes: 25 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry
Expand All @@ -28,3 +28,27 @@ jobs:
# Not a default workspace member, so cargo test skips it
- name: Run deacon-wasm unit tests
run: cargo test -p deacon-wasm

python-test:
name: Python bindings
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: "3.12"
- name: Cache cargo registry
uses: Swatinem/rust-cache@v2
- name: Use portable config
run: mv .cargo/config-portable.toml .cargo/config.toml
- name: Build bindings
run: |
python -m venv .venv
.venv/bin/python -m pip install "maturin>=1.7,<2"
.venv/bin/maturin develop -m deacon-py/Cargo.toml
- name: Run Python tests
run: .venv/bin/python -m unittest discover -s deacon-py/tests -v
12 changes: 8 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.17.0] - 2026-08-11
## [0.17.0] - 2026-08-18

### Added

- `deacon filter --ordered` uses paraseq 0.5.0 order preservation for deterministic output. Also exposed as `ordered` in the Python bindings and JSON summary.
- `deacon filter --ordered` preserves output order via paraseq 0.5.0. Arg `ordered` added to Python bindings and JSON summary.
- `deacon filter` accepts CBQ (BINSEQ) input and writes CBQ when given a `.cbq` path. Single and paired CBQ is supported. Output block size is the greater of `--cbq-block-size` (default 16 MiB) and the input block size given CBQ input. By convention an alternate `.cba` output extension writes CBQ without quality scores, implying `--discard-quality`.
- Python `Index.filter()` now exposes `check_pairs`, `summary`, and `cbq_block_size`, and accepts path-like objects for all paths.

### Changed

- Python `Index.filter()` options after `fastq2` are now keyword-only.
- **Breaking (Python):** index/filter input paths are positional-only; options and all `Index.fetch()` arguments are keyword-only. `filter` also renames `fastq`/`fastq2` to `input`/`input2`.
- Python filtering rejects `abs_threshold=0`, matching the CLI.
- Renamed `--fasta` (`-f`)/`output_fasta` to `--discard-quality`/`discard_quality`.

### Removed

- `deacon filter --rename-random`, and `rename_random` from the JSON summary and Python bindings.
- Removed `--rename-random` CLI arg and `rename_random` from the JSON summary and Python bindings.

## [0.16.0] - 2026-08-09

Expand Down
Loading
Loading