Skip to content

JSON schema: Cageseq #79

Open
Open
@jen-reeve

Description

@jen-reeve
  • Fork the pipeline to your user account, if you have not done so before (Make sure you deselect Copy the master branch only)
  • Go to the dev branch and sync the upstream changes (Sync fork -> Update branch)
  • Create a branch called json-schema-improvements with the dev branch as base in the fork
  • Open the json-schema-improvements branch of the fork either locally (git clone) or online (via Github Codespaces, GitPod...)
  • Open the nextflow_schema.json file
  • Check that the value in "$schema" is "https://json-schema.org/draft/2020-12/schema". The pipeline should be updated to nf-schema if this is not the case. See the migration guide on how to do this
  • Check the schema for insufficient validation keywords and error messages. See the guide below for more information on this
  • Do the same thing for assets/schema_input.json
  • Run nextflow run main.nf -profile test,docker --outdir results -stub to check for any failures in validation with the basic test setup
  • Update the changelog of the pipeline
  • Push all changes to your fork (if you have not done so yet)
  • Open a pull request to the dev branch of the nf-core repository
  • Request a review in #hackathon-mar-2025-json-schema-improvements or in the pipeline channel (e.g. #sarek for nf-core/sarek) and set the issue status to Ready to review (PR: )
  • Wait for approval and merge the pull request once everything works again
  • Set the issue status to Done

Checking the validation keywords

This section contains options for each type of parameter (the type can be found in the "type" keyword)

IMPORTANT: If an errorMessage is present, please update it so that it covers all possible validation errors for the type (the more it covers the better)

ALSO IMPORTANT: Check that the help_text and description keywords are clear enough

Type-independent keywords

  • enum: A list of allowed values for the value
  • default: The default value, make sure this is filled in if the default value is not null, "" or false
  • required: A list of required parameters for each section

string

  • minLength and maxLength: specify the minimal and/or maximum length of the string value
  • pattern: A regular expression the string value has to adhere to
  • format: This is mainly used to define if a value should be a "file-path", "directory-path", "path" or "file-path-pattern". Other formats are allowed that are part of the official JSON schema specs, but are rarely used in Nextflow JSON schemas
  • exists: Make sure this is true if the file should exist (Be careful, some times files or directories do not have to exist for a pipeline to succesfully start e.g. --outdir)
  • schema: The relative path from the root of the pipeline to another schema to validate the file specified by that value. Please also check this schema very carefully

number and integer

boolean

The boolean type has no type-specific keywords

array

WARNING: This type is not supported in nextflow_schema.json, but is supported in other schemas

  • uniqueEntries: A list of keys that need to be unique in the objects present in this array
  • uniqueItems: Set to true if you want each entry in the array to be unique

object

WARNING: This type is not supported in nextflow_schema.json (apart from the root "type" keyword of the file and of each section in "$defs"), but is supported in other schemas

This type can be very complex and will not be used in 99% of the cases. You can take a look at the official object documentation or ask for help in #hackathon-mar-2025-json-schema-improvements if you need to check object types

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    • Status

      To do

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions