Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JSON schema: Nanostring #132

Open
13 of 15 tasks
jen-reeve opened this issue Mar 25, 2025 · 0 comments · May be fixed by #133
Open
13 of 15 tasks

JSON schema: Nanostring #132

jen-reeve opened this issue Mar 25, 2025 · 0 comments · May be fixed by #133
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@jen-reeve
Copy link

jen-reeve commented Mar 25, 2025

  • 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

@jen-reeve jen-reeve converted this from a draft issue Mar 25, 2025
@jen-reeve jen-reeve transferred this issue from nf-core/nanoseq Mar 25, 2025
@jen-reeve jen-reeve added the documentation Improvements or additions to documentation label Mar 25, 2025
@jen-reeve jen-reeve moved this from To do to In progress in Hackathon March 2025 Mar 25, 2025
@jen-reeve jen-reeve self-assigned this Mar 25, 2025
@jen-reeve jen-reeve moved this from In progress to Ready for review in Hackathon March 2025 Mar 26, 2025
@jen-reeve jen-reeve linked a pull request Mar 26, 2025 that will close this issue
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: Ready for review
Development

Successfully merging a pull request may close this issue.

1 participant