Releases: nf-core/tools
v2.4.1 - Cobolt Koala Patch
Somehow it wouldn't feel like a real nf-core/tools release if there wasn't some error with the automatic template sync that required an immediate patch release.. 🤔
Hopefully this release will fill everyone's inboxes with automated update pull requests.. 🤞🏻
v2.4 - Cobolt Koala
This release started off as a patch release to fix some errors introduced in 2.3 (eg. pipeline email template errors). However, it slowly collected enough new features to warrant a proper minor release of its own.
Many thanks to everyone who contributed!
Full Changelog: 2.3.2...2.4
Template
- ✨ Add actions workflow to respond to
@nf-core-bot fix linting
comments on pipeline PRs - Fix Prettier formatting bug in completion email HTML template (#1509)
- Fix bug in pipeline readme logo URL
- Set the default DAG graphic output to HTML to have a default that does not depend on Graphviz being installed on the host system (#1512).
- Removed retry strategy for AWS tests CI, as Nextflow now handles spot instance retries itself
- Add
.prettierignore
file to stop Prettier linting tests from running over test files - Made module template test command match the default used in
nf-core modules create-test-yml
(#1562) - Removed black background from Readme badges now that GitHub has a dark mode, added Tower launch badge.
- Don't save md5sum for
versions.yml
when runningnf-core modules create-test-yml
(#1511) - Read entire lines when sniffing the samplesheet format (fix #1561)
General
- ✨ Add actions workflow to respond to
@nf-core-bot fix linting
comments on nf-core/tools PRs - Use
$XDG_CONFIG_HOME
or~/.config/nf-core
instead of~/.nfcore
for API cache (the latter can be safely deleted) - Consolidate GitHub API calls into a shared function that uses authentication from the
gh
GitHub cli tool orGITHUB_AUTH_TOKEN
to avoid rate limiting (#1499) - Add an empty line to
modules.json
,params.json
andnextflow-schema.json
when dumping them to avoid prettier errors. - Remove empty JSON schema definition groups to avoid usage errors (#1419)
- Bumped the minimum version of
rich
fromv10
tov10.7.0
Modules
- ✨ Add a new command
nf-core modules mulled
which can generate the name for a multi-tool container image. - ✨ Add a new command
nf-core modules test
which runs pytests locally. - ✨ Print include statement to terminal when
modules install
(#1520) - Allow follow links when generating
test.yml
file withnf-core modules create-test-yml
(1570) - Escaped test run output before logging it, to avoid a rich
MarkupError
Linting
- Don't allow a
.nf-core.yaml
file, should be.yml
(#1515). shell
blocks now recognised to avoid errorwhen: condition has too many lines
(#1557)- Fixed error when using comments after
input
tuple lines (#1542) - Don't lint the
shell
block whenscript
is used (1558) - Check that
template
is used inscript
blocks - Tweaks to CLI output display of lint results
v2.3.2 - Mercury Vulture Fixed Formatting
Very minor patch release to fix the full size AWS tests and re-run the template sync, which partially failed due to GitHub pull-requests being down at the time of release.
Template
- Updated the AWS GitHub actions to let nf-core/tower-action use it's defaults for pipeline and git sha (#1488)
- Add prettier editor extension to
gitpod.yml
in template (#1485) - Remove traces of markdownlint in the template (#1486
- Remove accidentally added line in
CHANGELOG.md
in the template (#1487) - Update linting to check that
.editorconfig
is there and.yamllint.yml
isn't.
v2.3.1 - Mercury Vulture Formatting
⚠️ TLDR: Run Prettier on your pipeline's codebase before attempting the template sync merge.
The sync PR may be a little big because of many major changes (whitespace, quotation mark styles etc). To help with the merge, we highly recommend running Prettier on your pipeline's codebase before attempting the template merge.
Please copy .editorconfig
and .prettierrc.yml
from the template to your pipeline root first, as they configure the behaviour of Prettier.
This patch release is primarily to address problems that we had in the v2.3 release with code linting. Instead of resolving those specific issues, we chose to replace the linting tools (markdownlint
, yamllint
) with a new tool: Prettier
This is a fairly major change and affects a lot of files. However, it will hopefully simplify future usage. Prettier can auto-format many different file formats (for pipelines the most relevant are markdown and YAML) and is extensible with plugins (Nextflow, anyone?). It tends to be a bit less strict than markdownlint
and yamllint
and importantly can fix files for you rather than just complaining.
To run Prettier, go to the base of the repository where .editorconfig
and .prettierrc.yml
are located. Make sure your git status
is clean so that the changes don't affect anything you're working on and run:
prettier --write .
This runs Prettier and tells it to fix any issues it finds in place.
Please note that there are many excellent integrations for Prettier available, for example VSCode can be set up to automatically format files on save.
Template
- Replace
markdownlint
andyamllint
with Prettier for linting formatting / whitespace (#1470) - Add CI test using
editorconfig-checker
for other file types to look for standardised indentation and formatting (#1476) - Add md5sum check of
versions.yml
totest.yml
on the modules template. - Update bundled module wrappers to latest versions (#1462)
- Renamed
assets/multiqc_config.yaml
toassets/multiqc_config.yml
(yml
notyaml
) (#1471)
General
- Convert nf-core/tools API / lint test documentation to MyST (#1245)
- Build documentation for the
nf-core modules lint
tests (#1250) - Fix some colours in the nf-core/tools API docs (#1467)
- Install tools inside GitPod Docker using the repo itself and not from Conda.
- Rewrite GitHub Actions workflow for publishing the GitPod Docker image.
- Improve config for PyTest so that you can run
pytest
instead ofpytest tests/
(#1461) - New pipeline lint test
multiqc_config
that checks YAML structure instead of basic file contents (#1461) - Updates to the GitPod docker image to install the latest version of nf-core/tools
v2.3 - Mercury Vulture
Another big release that's been coming for quite some time (apologies to all who have been running with dev
for weeks / months).
One or two major bugfixes, such as making nf-core download
work again with the latest DSL2 formats. See below for the full list of changes in this release.
Full Changelog: 2.2...2.3
Template
- Removed mention of
--singularity_pull_docker_container
in pipelineREADME.md
- Replaced equals with ~ in nf-core headers, to stop false positive unresolved conflict errors when committing with VSCode.
- Add retry strategy for AWS megatests after releasing nf-core/tower-action v2.2
- Added
.nf-core.yml
file withrepository_type: pipeline
for modules commands - Update igenomes path to the
BWAIndex
to fetch the wholeversion0.6.0
folder instead of only thegenome.fa
file - Remove pinned Node version in the GitHub Actions workflows, to fix errors with
markdownlint
- Bumped
nf-core/tower-action
tov3
and removedpipeline
andrevision
from the AWS workflows, which were not needed - Add yamllint GitHub Action.
- Add
.yamllint.yml
to avoid line length and document start errors (#1407) - Add
--publish_dir_mode
back into the pipeline template (nf-core/rnaseq#752) - Add optional loading of of pipeline-specific institutional configs to
nextflow.config
- Make
--outdir
a mandatory parameter (nf-core/tools#1415)
General
- Updated
nf-core download
to work with latest DSL2 syntax for containers (#1379) - Made
nf-core modules create
detect repository type with explicit.nf-core.yml
instead of random readme stuff (#1391) - Added a Gitpod environment and Dockerfile (#1384)
- Adds conda, Nextflow, nf-core, pytest-workflow, mamba, and pip to base Gitpod Docker image.
- Adds GH action to build and push Gitpod Docker image.
- Adds Gitpod environment to template.
- Adds Gitpod environment to tools with auto build of nf-core tool.
- Shiny new command-line help formatting (#1403)
- Call the command line help with
-h
as well as--help
(was formerly just the latter) (#1404) - Add
.yamllint.yml
config file to avoid line length and document start errors in the tools repo itself. - Switch to
yamllint-github-action
to be able to configure yaml lint exceptions (#1404) - Prevent module linting KeyError edge case (#1321)
- Bump-versions: Don't trim the trailing newline on files, causes editorconfig linting to fail (#1265)
- Handle exception in
nf-core list
when a broken git repo is found (#1273) - Updated URL for pipeline lint test docs (#1348)
- Updated
nf-core create
to tolerate failures and retry when fetching pipeline logos from the website (#1369)
Modules
- New command
nf-core modules info
that prints nice documentation about a module to the terminal ✨ (#1427) - Linting a pipeline now fails instead of warning if a local copy of a module does not match the remote (#1313)
- Fixed linting bugs where warning was incorrectly generated for:
Module does not emit software version
Container versions do not match
input:
/output:
not being specified in module- Allow for containers from other biocontainers resource as defined here
- Fixed traceback when using
stageAs
syntax as defined here - Added
nf-core schema docs
command to output pipline parameter documentation in Markdown format for inclusion in GitHub and other documentation systems (#741) - Allow conditional process execution from the configuration file (#1393)
- Add linting for when condition(#1397)
- Added modules ignored table to
nf-core modules bump-versions
. (#1234) - Added
--conda-package-version
flag for specifying version of conda package innf-core modules create
. (#1238) - Add option of writing diffs to file in
nf-core modules update
using either interactive prompts or the new--diff-file
flag. - Fixed edge case where module names that were substrings of other modules caused both to be installed (#1380)
- Tweak handling of empty files when generating the test YAML (#1376)
- Fail linting if a md5sum for an empty file is found (instead of a warning)
- Don't skip the md5 when generating a test file if an empty file is found (so that linting fails and can be manually checked)
- Linting checks test files for
TODO
statements as well as the main module code (#1271) - Handle error if
manifest
isn't set innextflow.config
(#1418)
v2.2 - Lead Liger
Template
- Update repo logos to utilize GitHub's
#gh-light/dark-mode-only
, to switch between logos optimized for light or dark themes. The old repo logos have to be removed (indocs/images
andassets/
). - Deal with authentication with private repositories
- Bump minimun Nextflow version to 21.10.3
- Convert pipeline template to updated Nextflow DSL2 syntax
- Solve circular import when importing
nf_core.modules.lint
- Disable cache in
nf_core.utils.fetch_wf_config
while performingtest_wf_use_local_configs
. - Modify software version channel handling to support multiple software version emissions (e.g. from mulled containers), and multiple software versions.
- Update
dumpsoftwareversion
module to correctly report versions with trailing zeros. - Remove
params.hostnames
from the pipeline template (#1304) - Update
.gitattributes
to mark installed modules and subworkflows aslinguist-generated
(#1311) - Adding support for Julia package environments to
nextflow.config
(#1317) - New YAML issue templates for pipeline bug reports and feature requests, with a much richer interface (#1165)
- Update AWS test GitHub Actions to use v2 of nf-core/tower-action
- Post linting comment even when
linting.yml
fails - Update
CONTRIBUTION.md
bullets to remove points related toscrape_software_versions.py
- Update AWS test to set Nextflow version to 21.10.3
General
- Made lint check for parameters defaults stricter [#992]
- Default values in
nextflow.config
must match the defaults given in the schema (anything with{
in, or inmain.nf
is ignored) - Defaults in
nextflow.config
must now match the variable type specified in the schema - If you want the parameter to not have a default value, use
null
- Strings set to
false
or an empty string innextflow.config
will now fail linting
- Default values in
- Bump minimun Nextflow version to 21.10.3
- Changed
questionary
ask()
tounsafe_ask()
to not catchKeyboardInterupts
(#1237) - Fixed bug in
nf-core launch
due to revisions specified with-r
not being added to nextflow command. (#1246) - Update regex in
readme
test ofnf-core lint
to agree with the pipeline template (#1260) - Update 'fix' message in
nf-core lint
to conform to the current command line options. (#1259) - Fixed bug in
nf-core list
whenNXF_HOME
is set - Run CI test used to create and lint/run the pipeline template with minimum and latest edge release of NF (#1304)
- New YAML issue templates for tools bug reports and feature requests, with a much richer interface (#1165)
- Handle synax errors in Nextflow config nicely when running
nf-core schema build
(#1267) - Erase temporary files and folders while performing Python tests (pytest)
- Remove base
Dockerfile
used for DSL1 pipeline container builds - Run tests with Python 3.10
- #1363 Fix tools CI workflow nextflow versions.
Modules
- Fixed typo in
module_utils.py
. - Fixed failing lint test when process section was missing from module. Also added the local failing tests to the warned section of the output table. (#1235)
- Added
--diff
flag tonf-core modules update
which shows the diff between the installed files and the versions - Update
nf-core modules create
help texts which were not changed with the introduction of the--dir
flag - Check if README is from modules repo
- Update module template to DSL2 v2.0 (remove
functions.nf
from modules template and updatingmain.nf
(#1289) - Substitute get process/module name custom functions in module
main.nf
using template replacement (#1284) - Linting now fails instead of warning if a local copy of a module does not match the remote (#1313)
- Check test YML file for md5sums corresponding to empty files (#1302)
- Exit with an error if empty files are found when generating the test YAML file (#1302)
v2.1 - Zinc Zebra
Template
- Correct regex pattern for file names in
nextflow_schema.json
- Remove
.
from nf-core/tools command examples - Update Nextflow installation link in pipeline template (#1201)
- Command
hostname
is not portable [#1212] - Changed how singularity and docker links are written in template to avoid duplicate links
General
- Changed names of some flags with
-r
as short options to make the flags more consistent between commands.
Modules
- Added consistency checks between installed modules and
modules.json
(#1199) - Added support excluding or specifying version of modules in
.nf-core.yml
when updating withnf-core modules install --all
(#1204) - Created
nf-core modules update
and removed updating options fromnf-core modules install
- Added missing function call to
nf-core lint
(#1198) - Fix
nf-core lint
not filtering modules test when run with--key
(#1203) - Fixed
nf-core modules install
not working when installing from branch with-b
(#1218) - Added prompt to choose between updating all modules or named module in
nf-core modules update
- Check if modules is installed before trying to update in
nf-core modules update
- Verify that a commit SHA provided with
--sha
exists forinstall/update
commands - Add new-line to
main.nf
afterbump-versions
command to make ECLint happy
v2.0.1 - Palladium Platypus Junior
Template
- Critical tweak to add
--dir
declaration tonf-core lint
GitHub Actionslinting.yml
workflow
General
- Add
--dir
declaration tonf-core sync
GitHub Actionssync.yml
workflow
v2.0 - Palladium Platypus
v2.0 - Palladium Platypus - [2021-07-13]
⚠️ Major enhancements & breaking changes
This marks the first Nextflow DSL2-centric release of tools
which means that some commands won't work in full with DSL1 pipelines anymore. Please use a v1.x
version of tools
for such pipelines or better yet join us to improve our DSL2 efforts! Here are the most important changes:
- The pipeline template has been completely re-written in DSL2
- A module template has been added to auto-create best-practice DSL2 modules to speed up development
- A whole suite of commands have been added to streamline the creation, installation, removal, linting and version bumping of DSL2 modules either installed within pipelines or the nf-core/modules repo
Template
General
- Fixed a bug in the Docker image build for tools that failed due to an extra hyphen. [#1069]
- Regular release sync fix - this time it was to do with JSON serialisation [#1072]
- Fixed bug in schema validation that ignores upper/lower-case typos in parameters [#1087]
- Bugfix: Download should use path relative to workflow for configs
- Remove lint checks for files related to conda and docker as not needed anymore for DSL2
- Removed
params_used
lint check because of incompatibility with DSL2 - Added
modules bump-versions
command toREADME.md
- Update docs for v2.0 release
Modules
- Update comment style of modules
functions.nf
template file [#1076] - Changed working directory to temporary directory for
nf-core modules create-test-yml
[#908] - Use Biocontainers API instead of quayi.io API for
nf-core modules create
[#875] - Update
nf-core modules install
to handle different versions of modules #1116 - Added
nf-core modules bump-versions
command to update all versions in thenf-core/modules
repository [#1123] - Updated
nf-core modules lint
to check whether agit_sha
exists in themodules.json
file or whether a new version is available [#1114] - Refactored
nf-core modules
command into one file per command #1124 - Updated
nf-core modules remove
to also remove entry inmodules.json
file (#1115) - Bugfix: Interactive prompt for
nf-core modules install
was receiving too few arguments - Added progress bar to creation of 'modules.json'
- Updated
nf-core modules list
to show versions of local modules - Improved exit behavior by replacing
sys.exit
with exceptions - Updated
nf-core modules remove
to remove module entry inmodules.json
if module directory is missing - Create extra tempdir as work directory for
nf-core modules create-test-yml
to avoid adding the temporary files to thetest.yml
- Refactored passing of command line arguments to
nf-core
commands and subcommands (#1139, #1140) - Check for
modules.json
for entries of modules that are not actually installed in the pipeline [#1141] - Added
<keywords>
argument tonf-core modules list
for filtering the listed modules. (#1139 - Added support for a
bump-versions
configuration file [#1142] - Fixed
nf-core modules create-test-yml
so it doesn't break when the output directory is supplied [#1148] - Updated
nf-core modules lint
to work with new directory structure [#1159] - Updated
nf-core modules install
andmodules.json
to work with new directory structure (#1159) - Updated
nf-core modules remove
to work with new directory structure [#1159] - Restructured code and removed old table style in
nf-core modules list
- Fixed bug causing
modules.json
creation to loop indefinitly - Added
--all
flag tonf-core modules install
- Added
remote
andlocal
subcommands tonf-core modules list
- Fix bug due to restructuring in modules template
- Added checks for verifying that the remote repository is well formed
- Added checks to
ModulesCommand
for verifying validity of remote repositories - Misc. changes to
modules install
: check that module exist in remote,--all
is has--latest
by default.
Sync
- Don't set the default value to
"null"
when a parameter is initialised asnull
in the config [#1074]
Tests
- Added a test for the
version_consistency
lint check - Refactored modules tests into separate files, and removed direct comparisons with number of tests in
lint
tests (#1158)
v1.14 - Brass Chicken 🐔
Template
- Fixed an issue regarding explicit disabling of unused container engines [#972]
- Removed trailing slash from
params.igenomes_base
to yield valid s3 paths (previous paths work with Nextflow but not aws cli) - Added a timestamp to the trace + timetime + report + dag filenames to fix overwrite issue on AWS
- Rewrite the
params_summary_log()
function to properly ignore unset params and have nicer formatting [#971] - Fix overly strict
--max_time
formatting regex in template schema [#973] - Convert
d
today
in thecleanParameters
function to make Duration objects like2d
pass the validation [#858] - Added nextflow version to quick start section and adjusted
nf-core bump-version
[#1032] - Use latest stable Nextflow version
21.04.0
for CI tests instead of the-edge
release
Download
- Fix bug in
nf-core download
where image names were getting a hyphen innf-core
which was breaking things. - Extensive new interactive prompts for all command line flags [#1027]
- It is now recommended to run
nf-core download
without any cli options and follow prompts (though flags can be used to run non-interactively if you wish)
- It is now recommended to run
- New helper code to set
$NXF_SINGULARITY_CACHEDIR
and add to.bashrc
if desired [#1027]
Launch
- Strip values from
nf-core launch
web response which areFalse
and have no default in the schema [#976] - Improve API caching code when polling the website, fixes noisy log message when waiting for a response [#1029]
- New interactive prompts for pipeline name [#1027]
Modules
- Added
tool_name_underscore
to the module template to allow TOOL_SUBTOOL inmain.nf
[#1011] - Added
--conda-name
flag tonf-core modules create
command to allow sidestepping questionary [#988] - Extended
nf-core modules lint
functionality to check tags intest.yml
and to look for a entry in thepytest_software.yml
file - Update
modules
commands to use new test tag formattool/subtool
- New modules lint test comparing the
functions.nf
file to the template version - Modules installed from alternative sources are put in folders based on the name of the source repository
Linting
- Fix bug in nf-core lint config skipping for the
nextflow_config
test [#1019] - New
-k
/--key
cli option fornf-core lint
to allow you to run only named lint tests, for faster local debugging - Merge markers lint test - ignore binary files, allow config to ignore specific files [#1040]
- New lint test to check if all defined pipeline parameters are mentioned in
main.nf
[#1038] - Added fix to remove warnings about params that get converted from camelCase to camel-case [#1035]
- Added pipeline schema lint checks for missing parameter description and parameters outside of groups [#1017]
General
- Try to fix the fix for the automated sync when we submit too many PRs at once [#970]
- Rewrite how the tools documentation is deployed to the website, to allow multiple versions
- Created new Docker image for the tools cli package - see installation docs for details [#917]
- Ignore permission errors for setting up requests cache directories to allow starting with an invalid or read-only
HOME
directory