Skip to content

feat: flatten config examples into a single-level shape - #944

Merged
ivan-aksamentov merged 2 commits into
rustfrom
feat/pipeline-config-examples
Sep 1, 2026
Merged

feat: flatten config examples into a single-level shape#944
ivan-aksamentov merged 2 commits into
rustfrom
feat/pipeline-config-examples

Conversation

@ivan-aksamentov

@ivan-aksamentov ivan-aksamentov commented Sep 1, 2026

Copy link
Copy Markdown
Member
  • Depends on: refactor: validate required command arguments before running #943

  • Mark shared leaf arg groups #[serde(flatten)] on each command's *Raw type so config keys match CLI flags [src]

  • Write each step's output_all and read the alignment input path at the top level in the pipeline resolver [src][src]

  • Rewrite every example config and pipeline to the flat shape and drop redundant default keys [src]

  • Add full builds on the largest datasets (mpox clade IIb, SARS-CoV-2, influenza H3N2) mirroring the Nextstrain TreeTime chain [src]

- Shared arg groups (alignment, model, metadata id, output, ...) serialized under a wrapper key that repeated the field name (alignment.alignment, model_args.model, metadata_id.metadata_id_columns), so a config file read worse than the CLI it mirrors and diverged from the "every key has a matching flag" contract
- Flattening the leaf wrapper fields on each command's serde-facing raw type makes config keys one-to-one with CLI flags; schemars inlines them into one flat schema with additionalProperties:false, so strict unknown-key rejection is preserved and validated before deserialization
- Rewrite every example to the flat config shape so each file reads like the CLI it mirrors, and drop redundant default keys
- Add faithful full builds on the largest datasets (mpox clade IIb 1000, SARS-CoV-2 2844, influenza H3N2 500) alongside the existing Ebola build, with shared clock constants defined once in typed vars
- Correct overstated framing: the mpox example now runs the actual optimize/ancestral/timetree chain from the nextstrain/mpox WIP/new_tt workflow rather than a generic two-step stand-in
@ivan-aksamentov ivan-aksamentov changed the title feat/pipeline config examples feat: flatten config examples into a single-level shape Sep 1, 2026
Base automatically changed from refactor/config-args-parse-validate to rust September 1, 2026 01:42
@ivan-aksamentov
ivan-aksamentov merged commit 7c06e7b into rust Sep 1, 2026
9 checks passed
@ivan-aksamentov
ivan-aksamentov deleted the feat/pipeline-config-examples branch September 1, 2026 01:42
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