Skip to content

Prepare DotMatch 0.2.0 - #57

Merged
dnncha merged 105 commits into
mainfrom
codex/dotmatch-0.2.0-release
Jul 17, 2026
Merged

Prepare DotMatch 0.2.0#57
dnncha merged 105 commits into
mainfrom
codex/dotmatch-0.2.0-release

Conversation

@dnncha

@dnncha dnncha commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

This prepares DotMatch 0.2.0 on top of the verified 0.1.9 release line.

  • adds the AssayCode command, AssayScript compiler, calibrated decoding interfaces, assay simulation, streaming assay checks, and the experimental multi-read runtime
  • aligns Python, native, R, container, citation, site, and distribution metadata at 0.2.0
  • provides self-contained nf-core module candidates pinned to the published DotMatch 0.1.9 BioContainers build
  • replaces the custom GitHub Pages deployment request with the supported Pages action
  • updates Actions dependencies and adds repository checks for Pages, container pins, release metadata, and public documentation language
  • records each publication channel as pending until an immutable 0.2.0 release exists

This PR consolidates and supersedes #54, #55, and #56 so the release is reviewed and tested from one candidate SHA.

Validation

  • make pretag-ready
    • 567 Python tests passed, 1 skipped, twice within the gate
    • native and CLI tests passed
    • AddressSanitizer and UndefinedBehaviorSanitizer passed
    • source distribution and macOS universal2 wheel built, installed, and smoke-tested
    • line coverage: 78.70% (75% required)
    • Sphinx documentation built with warnings treated as errors
    • scientific, workflow, citation, repository, packaging, and distribution-readiness checks passed
    • TypeScript, npm audit, production site build, and GitHub Pages site build passed
  • git diff --check

The release tag is intentionally withheld until this PR's hosted checks pass on the consolidated candidate.

dnncha and others added 26 commits July 14, 2026 15:53
Bumps the actions group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-node](https://github.com/actions/setup-node), [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) and [mamba-org/setup-micromamba](https://github.com/mamba-org/setup-micromamba).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

Updates `actions/setup-node` from 6 to 7
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v6...v7)

Updates `pypa/cibuildwheel` from 3.4.1 to 4.1.0
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](pypa/cibuildwheel@v3.4.1...v4.1.0)

Updates `mamba-org/setup-micromamba` from 2 to 3
- [Release notes](https://github.com/mamba-org/setup-micromamba/releases)
- [Commits](mamba-org/setup-micromamba@v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pypa/cibuildwheel
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: mamba-org/setup-micromamba
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
@dnncha
dnncha marked this pull request as ready for review July 17, 2026 11:27
@dnncha
dnncha merged commit 311ecc5 into main Jul 17, 2026
20 of 21 checks passed
@dnncha
dnncha deleted the codex/dotmatch-0.2.0-release branch July 17, 2026 11:27

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f84e06bc95

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +299 to +302
columns = [column.strip() for column in line.split(delimiter)]
sequence = columns[1] if len(columns) > 1 else columns[0]
normalized = sequence.upper()
if normalized.lower() in {"sequence", "seq", "target_seq", "guide_seq", "barcode_seq"}:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Parse the configured sequence column from target libraries

When a valid target table contains metadata columns or reorders target_id and target_seq, this parser always treats the second field as the sequence and can even treat the header as a target. The runtime later uses the header-aware load_targets(), so the compiler's target count, lengths, strategy, and pairwise safety findings can describe target IDs while execution matches the actual sequences; use the same CSV/header parsing semantics in both paths.

Useful? React with 👍 / 👎.

"""
if not 0.0 <= max_fdr < 1.0:
raise ValueError("max_fdr must be in [0, 1)")
ranked = sorted(calls, key=lambda item: (-item[0], not item[1]))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Evaluate FDR cutoffs across whole confidence ties

When correct and incorrect calibration calls share a confidence, sorting the correct calls first lets an intermediate prefix satisfy max_fdr and records that shared confidence as the cutoff even if all calls accepted at that cutoff violate the limit. For example, (0.9, true) and (0.9, false) with max_fdr=0.1 returns 0.9, whose actual accepted set has FDR 0.5; evaluate each complete equal-confidence group before selecting its cutoff.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant