Skip to content

Comments

Open v2.5.0 params schema for development#15

Merged
nrminor merged 4 commits intomainfrom
schema-v2.5.0
Feb 17, 2026
Merged

Open v2.5.0 params schema for development#15
nrminor merged 4 commits intomainfrom
schema-v2.5.0

Conversation

@nrminor
Copy link
Member

@nrminor nrminor commented Feb 12, 2026

Why a separate PR for the schema version?

The v2.4.0 params schema was released alongside the v2.4.0 tag and is now immutable — users in the wild may be referencing it by URL in their params files for reproducibility. Any new pipeline parameters (from deacon integration, GOTTCHA2, etc.) need to land in a new schema version rather than retroactively modifying v2.4.0.

By putting the version bump in its own PR, we avoid the situation where every feature branch that adds params has to independently create the v2.5.0 file. Instead, this PR establishes v2.5.0 as the open development schema, and feature branches simply add their properties to it.

What changed

This PR creates nvd-params.v2.5.0.schema.json as an identical copy of the released v2.4.0 schema with only the $id field updated. It also points the latest symlink and the SCHEMA_URL in params.py at the new version. The v2.4.0 file is untouched.

Working with this in feature branches

If your feature branch adds new pipeline parameters, it should be based on top of this commit so that it can add properties to the v2.5.0 schema file.

With jujutsu: If you created your branch off main before this landed, rebase onto the schema-v2.5.0 bookmark (or onto main after this merges):

jj rebase -s <your-branch-root> -d schema-v2.5.0

To start a new feature branch that depends on this one:

jj new schema-v2.5.0 -m "my new feature"

With git: If your branch predates this change, rebase onto the schema-v2.5.0 branch (or onto main after this merges):

git fetch origin
git rebase origin/schema-v2.5.0

To start a new feature branch from it:

git checkout -b my-feature origin/schema-v2.5.0

Related

This is a dependency of #14 (deacon integration).

@nrminor nrminor requested a review from wkgardner February 12, 2026 15:02
The BLAST workflow currently .collect()s all per-sample prepared CSVs into a single list and hands them to one LABKEY_UPLOAD_BLAST and one LABKEY_UPLOAD_FASTA process invocation. Those processes discover files via os.listdir() and loop over them. This means no upload can start until every sample finishes preparation, and a failure in any batch fails the entire upload.

The GOTTCHA2 workflow already uses the eager pattern: each upload process receives a per-sample queue channel tuple, fires as soon as that sample is ready, and emits its own log. Logs are .mix()ed together for downstream gating.

This commit brings BLAST uploads in line with that pattern. The change is entirely in the Nextflow wiring (bundle_blast_for_labkey.nf and stat_blast_workflow.nf). The Python upload scripts are unchanged — they already handle the single-file case correctly because their os.listdir() loop naturally finds one file when Nextflow stages one file.
The v2.4.0 schema was released with that tag and should not be modified. New params from feature branches (deacon, GOTTCHA2, etc.) need a new schema version to land in.
@nrminor nrminor merged commit cce49a4 into main Feb 17, 2026
12 checks passed
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