JSON schema: Detaxizer
Nobody has claimed this yet.
- Dominant language
- Nextflow
- Stars
- 24
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
- 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
devbranch and sync the upstream changes (Sync fork->Update branch) - Create a branch called
json-schema-improvementswith thedevbranch as base in the fork - Open the
json-schema-improvementsbranch of the fork either locally (git clone) or online (via Github Codespaces, GitPod...) - Open the
nextflow_schema.jsonfile - 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 -stubto 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
devbranch 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,""orfalse - required: A list of required parameters for each section
string
- minLength and maxLength: specify the minimal and/or maximum length of the
stringvalue - pattern: A regular expression the
stringvalue 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
trueif 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
- multipleOf: The value needs to be a multiple of this number
- minimum, exclusiveMinimum, maximum and exclusiveMaximum: Specify a specific range in which the numeric value should be
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
trueif 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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with nextflow_schema.json and assets/schema_input.json, then read the linked nf-schema migration guide to understand the expected schema version and validation keywords. Run nextflow run main.nf -profile test,docker --outdir results -stub before and after reviewing the schemas. Done means the schemas and changelog are updated and the test pipeline validates successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- bioinformatics
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100