Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
1cbd575
Document DotMatch Pro boundary
dnncha Jun 23, 2026
54b5c37
Add streaming API and industry exposure surfaces
dnncha Jun 29, 2026
13333d3
Add next ten industry exposure wins
dnncha Jun 29, 2026
81d5bd3
Install pip in workflow ecosystem CI
dnncha Jun 29, 2026
df4caf2
Skip absent Workbench app in CI
dnncha Jun 29, 2026
adf1c78
Prepare DotMatch 0.1.9 release
dnncha Jul 5, 2026
0ef90b6
Record DotMatch 0.1.9 release status
dnncha Jul 5, 2026
af1204a
Record DotMatch 0.1.9 Bioconda release
dnncha Jul 8, 2026
d33fe29
Implement industry evaluation and CRISPR quickstart
dnncha Jul 13, 2026
3d718c2
Preserve complete native CLI source in release branch
dnncha Jul 13, 2026
164a56d
Restore complete source blob for native CLI
dnncha Jul 13, 2026
37dfba7
Include new review assets in docs navigation
dnncha Jul 13, 2026
0077096
Add AssayCode platform identity
dnncha Jul 14, 2026
fbff021
Add AssayCode platform identity
dnncha Jul 14, 2026
80abda9
Add AssayCode compatibility tests
dnncha Jul 14, 2026
28973ff
Add AssayCode platform guide
dnncha Jul 14, 2026
d6caa9a
Install AssayCode command with DotMatch
dnncha Jul 14, 2026
c967444
Add AssayCode to documentation
dnncha Jul 14, 2026
f38cd06
Position AssayCode as the DotMatch platform
dnncha Jul 14, 2026
9edbdab
Add AssayScript v2 compiler foundation
dnncha Jul 14, 2026
5834b42
Expose AssayScript compilation in AssayCode
dnncha Jul 14, 2026
b17363b
Test AssayScript compiler contracts
dnncha Jul 14, 2026
3e9ee3d
Add calibrated and joint decoding foundation
dnncha Jul 14, 2026
d215c39
Test calibrated and joint decoding
dnncha Jul 14, 2026
6a836fb
Add streaming assay quality monitor
dnncha Jul 14, 2026
ee39e57
Expose streaming AssayCode watch command
dnncha Jul 14, 2026
6d3ef62
Test streaming assay watch decisions
dnncha Jul 14, 2026
7cd3e5c
Test AssayCode in Bioconda recipe
dnncha Jul 14, 2026
7947c04
Rewrite paper around auditable assay compilation
dnncha Jul 14, 2026
5b6ee50
Add assay decoding references
dnncha Jul 14, 2026
1b4e2c5
Document AssayCode compiler and monitoring
dnncha Jul 14, 2026
f813c4b
Record AssayCode experimental evidence boundary
dnncha Jul 14, 2026
087eace
Add AssayCode readiness gate
dnncha Jul 14, 2026
2a57d2b
Gate AssayCode release readiness
dnncha Jul 14, 2026
52449bd
Align AssayCode readiness claim check
dnncha Jul 14, 2026
3dfdfcd
Align rewritten paper with JOSS structure
dnncha Jul 14, 2026
ed89820
Repair and extend Bioconda AssayCode smoke tests
dnncha Jul 14, 2026
b6f7b7c
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
94b092c
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
150dd83
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
5dd8f5d
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
7907c92
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
d95069b
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
309d6f9
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
ed88204
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
c653ab9
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
62c0ce2
Prepare AssayCode 0.2.0 release metadata
dnncha Jul 14, 2026
45ff5ab
Align AssayCode 0.2.0 version
dnncha Jul 14, 2026
c610d0e
Align AssayCode 0.2.0 version
dnncha Jul 14, 2026
ab5ed47
Align AssayCode 0.2.0 version
dnncha Jul 14, 2026
f6c34ed
Prepare 0.2.0 distribution record
dnncha Jul 14, 2026
1ab824e
Align site lockfile with 0.2.0
dnncha Jul 14, 2026
465915a
Document AssayCode 0.2.0 changes
dnncha Jul 14, 2026
0c3cf75
Correct 0.2.0 packaging and Bioconda handoff
dnncha Jul 14, 2026
bca13ab
Align preferred citation with rewritten paper
dnncha Jul 14, 2026
015622e
Add calibrated decoding file interfaces
dnncha Jul 14, 2026
730665c
Expose calibrated AssayCode decoding workflow
dnncha Jul 14, 2026
55ba6dc
Test calibrated decoding CLI workflow
dnncha Jul 14, 2026
357d8cc
Gate calibrated AssayCode CLI workflow
dnncha Jul 14, 2026
f5aed18
Document calibrated AssayCode evaluation CLI
dnncha Jul 14, 2026
a080b44
Add deterministic assay panel simulation
dnncha Jul 14, 2026
1bd05fc
Test deterministic assay simulation
dnncha Jul 14, 2026
9aee764
Expose assay panel simulation in AssayCode CLI
dnncha Jul 14, 2026
48692d4
Exercise AssayCode simulation CLI
dnncha Jul 14, 2026
3cdbab6
Enforce integer calibration counts
dnncha Jul 14, 2026
af8ce2a
Test strict abundance prior counts
dnncha Jul 14, 2026
dc76f33
Document experimental assay simulation
dnncha Jul 14, 2026
fd26c5f
Record AssayCode digital twin
dnncha Jul 14, 2026
df6244f
Gate assay simulation assets
dnncha Jul 14, 2026
97072a2
Describe experimental assay digital twin
dnncha Jul 14, 2026
47b87d9
Bound assay simulation scientific claims
dnncha Jul 14, 2026
ca7ec3c
Rebrand public site around AssayCode
dnncha Jul 14, 2026
cdef313
Update AssayCode site metadata
dnncha Jul 14, 2026
c2bd818
Gate AssayCode site positioning
dnncha Jul 14, 2026
81e9412
Register AssayCode and AssayScript branding
dnncha Jul 14, 2026
ea1da24
Describe AssayCode distribution identity
dnncha Jul 14, 2026
91edd03
Lead README with AssayCode platform
dnncha Jul 14, 2026
3f11fb2
Keep compatibility wording machine-checkable
dnncha Jul 14, 2026
85022ba
Align posterior assertion with selective threshold
dnncha Jul 14, 2026
0b1c9c3
Smoke test the 0.2.0 container version
dnncha Jul 14, 2026
857445c
Distinguish current and future BioContainers tags
dnncha Jul 14, 2026
0b798ee
Repair and extend AssayCode readiness gate
dnncha Jul 14, 2026
2b78a6c
Preserve package metadata contract
dnncha Jul 14, 2026
583d1b9
Add AssayCode dual-package Bioconda handoff
dnncha Jul 14, 2026
5260f8f
Add AssayCode dual-package Bioconda handoff
dnncha Jul 14, 2026
d975c82
Add AssayCode dual-package Bioconda handoff
dnncha Jul 14, 2026
8f8ad30
Add AssayCode dual-package Bioconda handoff
dnncha Jul 14, 2026
daf006b
Fix Bioconda handoff regex parsing
dnncha Jul 14, 2026
0267585
Fix Bioconda handoff regex parsing
dnncha Jul 14, 2026
b2920c3
Gate both Bioconda package coordinates
dnncha Jul 14, 2026
ff3029d
Require AssayCode Bioconda handoff assets
dnncha Jul 14, 2026
5b73b28
Document dual-package Bioconda rollout
dnncha Jul 14, 2026
f9ac0e8
Record dual-package Bioconda strategy
dnncha Jul 14, 2026
f4ac702
Track AssayCode Bioconda coordinate
dnncha Jul 14, 2026
cc60000
Verify both Bioconda package coordinates
dnncha Jul 14, 2026
d5f9a10
Test AssayCode distribution verification
dnncha Jul 14, 2026
2c16a69
Explain dual-package install strategy
dnncha Jul 14, 2026
b165105
Use portable Bioconda handoff example path
dnncha Jul 14, 2026
eee12d5
Align 0.2 citation discovery metadata
dnncha Jul 14, 2026
989365c
Harden quickstart and release version gates
dnncha Jul 15, 2026
dfc6358
Repair source blobs in hosted PR branch
dnncha Jul 15, 2026
1bbe4da
Integrate AssayCode 0.2.0 with the verified 0.1.9 line
dnncha Jul 17, 2026
76502f6
Add experimental AssayScript multi-read runtime
dnncha Jul 14, 2026
0a24591
Bump the actions group across 1 directory with 4 updates
dependabot[bot] Jul 16, 2026
f84e06b
Harden 0.2.0 release surfaces
dnncha Jul 17, 2026
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
62 changes: 62 additions & 0 deletions .github/ISSUE_TEMPLATE/pilot_feedback.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Evaluation feedback
description: Record scoped feedback from a DotMatch technical evaluation.
title: "[Evaluation]: "
labels: ["evaluation", "feedback", "needs-triage"]
body:
- type: dropdown
id: assay_context
attributes:
label: Assay Context
options:
- CRISPR guide counting
- Inline barcode demultiplexing
- Feature barcode assignment
- Perturb-seq guide capture
- Amplicon or panel target assignment
- Oligo or adapter-prefix assignment
- Other known-target workflow
validations:
required: true
- type: textarea
id: install_path
attributes:
label: Install Path
description: State PyPI, Bioconda, source checkout, container, or workflow wrapper version.
validations:
required: true
- type: textarea
id: inputs
attributes:
label: Inputs
description: Describe the target table and read window without sharing private raw data.
validations:
required: true
- type: checkboxes
id: outputs_reviewed
attributes:
label: Outputs Reviewed
options:
- label: sample_qc.tsv
- label: summary.json
- label: assignments.tsv
- label: top_unmatched.tsv
- label: HTML report
- label: methods.md / CITATION.bib / software_versions.yml
- type: textarea
id: findings
attributes:
label: Findings
description: What became clearer or blocked the evaluation?
validations:
required: true
- type: dropdown
id: public_use_permission
attributes:
label: Public Use Permission
options:
- No public use record approved
- Anonymized summary approved
- Public project name approved
- Approved public use record text and URL
validations:
required: true
54 changes: 54 additions & 0 deletions .github/ISSUE_TEMPLATE/workflow_integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Workflow integration review
description: Propose or review an external DotMatch workflow integration.
title: "[Integration]: "
labels: ["workflow", "integration", "needs-triage"]
body:
- type: dropdown
id: workflow_manager
attributes:
label: Workflow Manager
options:
- nf-core / Nextflow
- MultiQC
- Galaxy / IUC
- Snakemake
- bio.tools
- Institutional workflow
validations:
required: true
- type: textarea
id: workflow_context
attributes:
label: Workflow Context
description: Which known-target assay workflow would this integration support?
validations:
required: true
- type: textarea
id: source_assets
attributes:
label: Source Assets
description: Link the local module, wrapper, fixture, parser, schema, or registry draft.
validations:
required: true
- type: textarea
id: expected_outputs
attributes:
label: Expected Outputs
description: List the TSV, JSON, FASTQ, HTML, MultiQC, or citation artifacts the integration should expose.
validations:
required: true
- type: textarea
id: review_evidence
attributes:
label: Review Evidence
description: Include commands, CI links, fixture paths, lint output, or external review links.
render: bash
validations:
required: false
- type: textarea
id: validated_scope
attributes:
label: Validated Scope
description: State what the integration supports and what it must not imply.
validations:
required: true
9 changes: 8 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,20 @@
- [ ] `make repository-ready` if governance, security, licensing, trademark, public docs, or commercial-boundary wording changed.
- [ ] Relevant benchmark/report gate, if claims or artifacts changed:

## Claim Boundary
## Validated Scope

- [ ] This PR does not broaden README/docs claims beyond checked evidence.
- [ ] New benchmark wording links to raw artifacts, commands, and validation status.
- [ ] Large generated datasets or scratch outputs are not committed.
- [ ] No real FASTQ/BAM/BCL/customer assay data is committed; examples are synthetic, minimized, or public and scoped.

## Public Language and Reviewer Readiness

- [ ] This PR does not imply accepted external workflow integration until `docs/workflow-adoption.json` records it.
- [ ] Distribution, registry, and workflow-integration wording matches the current machine-readable status files.
- [ ] Broad replacement wording or launch copy was removed or avoided.
- [ ] `make reviewer-readiness-ready` was run if public docs, registry metadata, workflow handoff, evaluation, or public-use record materials changed.

## Acceptance Criteria

-
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
Expand Down Expand Up @@ -40,7 +40,7 @@ jobs:
make release-ready
make assay-evidence-ready
make joss-paper-ready
- uses: actions/setup-node@v6
- uses: actions/setup-node@v7
if: runner.os == 'Linux'
with:
node-version: 22
Expand Down Expand Up @@ -106,7 +106,7 @@ jobs:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
Expand All @@ -121,7 +121,7 @@ jobs:
name: Reviewer reproducibility packet
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- language: javascript-typescript
build-mode: none
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7

- uses: github/codeql-action/init@v4
with:
Expand Down
91 changes: 5 additions & 86 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ jobs:
name: Build static site
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
Expand All @@ -46,87 +46,6 @@ jobs:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
name: Deploy to GitHub Pages
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail

artifact_id="$(
gh api "repos/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/artifacts" \
--jq '.artifacts[] | select(.name == "github-pages") | .id' \
| head -n 1
)"

if [ -z "${artifact_id}" ]; then
echo "No github-pages artifact found for run ${GITHUB_RUN_ID}" >&2
exit 1
fi

owner_lc="${GITHUB_REPOSITORY_OWNER,,}"
oidc_token="$(
curl -fsSL \
-H "Authorization: bearer ${ACTIONS_ID_TOKEN_REQUEST_TOKEN}" \
"${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=https://github.com/${owner_lc}" \
| jq -r '.value'
)"

if [ -z "${oidc_token}" ] || [ "${oidc_token}" = "null" ]; then
echo "Failed to request a GitHub Pages OIDC token" >&2
exit 1
fi

payload="$(
jq -n \
--argjson artifact_id "${artifact_id}" \
--arg build_version "${GITHUB_SHA}" \
--arg oidc_token "${oidc_token}" \
'{artifact_id: $artifact_id, pages_build_version: $build_version, oidc_token: $oidc_token}'
)"

deployment="$(
gh api \
--method POST \
"repos/${GITHUB_REPOSITORY}/pages/deployments" \
--input - <<< "${payload}"
)"

page_url="$(jq -r '.page_url // empty' <<< "${deployment}")"
deployment_id="$(jq -r '.id // (.status_url // "" | split("/")[-1]) // empty' <<< "${deployment}")"

if [ -z "${page_url}" ]; then
page_url="https://${owner_lc}.github.io/${{ github.event.repository.name }}/"
fi
echo "page_url=${page_url}" >> "${GITHUB_OUTPUT}"

if [ -z "${deployment_id}" ]; then
echo "Pages deployment response did not include a deployment id" >&2
echo "${deployment}" | jq .
exit 1
fi

for _ in {1..120}; do
status="$(
gh api \
"repos/${GITHUB_REPOSITORY}/pages/deployments/${deployment_id}" \
--jq '.status'
)"

case "${status}" in
succeed)
echo "Pages deployment succeeded: ${page_url}"
exit 0
;;
deployment_failed|deployment_content_failed|deployment_cancelled|deployment_lost)
echo "Pages deployment failed with status: ${status}" >&2
exit 1
;;
esac

echo "Pages deployment status: ${status}"
sleep 5
done

echo "Timed out waiting for Pages deployment ${deployment_id}" >&2
exit 1
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
16 changes: 8 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
name: Release preflight gates
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
label: macOS
artifact_name: dotmatch-wheel-macos
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
Expand All @@ -67,12 +67,12 @@ jobs:
runs-on: ubuntu-latest
needs: [preflight]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Build and test repaired Linux wheels
uses: pypa/cibuildwheel@v3.4.1
uses: pypa/cibuildwheel@v4.1.0
env:
CIBW_PLATFORM: linux
with:
Expand All @@ -89,7 +89,7 @@ jobs:
needs: [preflight]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
Expand All @@ -107,16 +107,16 @@ jobs:
needs: [preflight]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: docker/setup-buildx-action@v4
- name: Build local smoke-test image
run: docker build -t dotmatch:ci .
- name: Smoke test container
run: |
docker run --rm dotmatch:ci --version | grep '^dotmatch 0.1.8$'
docker run --rm dotmatch:ci --version | grep '^dotmatch 0.2.0$'
docker run --rm dotmatch:ci dist ACGT AGGT | grep '^1$'
docker run --rm dotmatch:ci leq 1 ACGT AGGT | grep '^true$'
docker image inspect dotmatch:ci --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' | grep '^0.1.8$'
docker image inspect dotmatch:ci --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' | grep '^0.2.0$'
- uses: docker/metadata-action@v6
id: meta
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/workflow-ecosystem.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ jobs:
name: Nextflow, nf-test, Snakemake, Galaxy, MultiQC
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.11"
- uses: mamba-org/setup-micromamba@v2
- uses: mamba-org/setup-micromamba@v3
with:
environment-name: dotmatch-workflows
create-args: >-
Expand Down
2 changes: 1 addition & 1 deletion .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"title": "DotMatch: deterministic known-target short-DNA assignment for sequencing workflows",
"upload_type": "software",
"version": "0.1.8",
"version": "0.2.0",
"conceptdoi": "10.5281/zenodo.20541628",
"creators": [
{
Expand Down
Loading
Loading