version-3.3.0
04/12/2024

NEW FEATURES
   - almalinux:9.3 set as default for the containers
   - conda 23.10.0 set as default for the containers

BUGFIX
   - singularity/docker recipes: post command were printed twice.

DOCUMENTATION
   - Update readthedocs config file

version-3.2.1
10/12/2023

BUGFIX
   - singularity/docker profiles:
     * post commands were written twice in the recipes generated by geniac

version-3.2.0
09/08/2023

NEW FEATURES
   - singularity/docker profiles:
      * params.yumOptions added ine the nextflow.config file, and options set with '--setopt=fastestmirror=1 --setopt=metadata_expire=0'
   - new profile created by geniac: apptainer (since 'apptainer.enabled' has been introduced in nextflow 23.04.0)
   - Geniac CLI:
      * 'geniac lint': consider that the nextflow pipeline is implemented using DSL2. Modifications have been made only for process using renv. 'geniac lint' could still work on DSL1 pipeline provided that there is no process using renv.
      * Update conda env with new tool versions

version-3.1.0
08/14/2023

NEW FEATURES
   - almalinux:8.8 set as default for the containers
   - conda 23.5.1 set as default for the containers
   - micromamba is used to create conda envs and install conda packages
   - conda/multiconda profiles:
	 * conda.enable has been added
   - Geniac CLI:
      *  Conda env with apptainer 1.2.2, nextflow 22.10.6, pip 23.2.1

DOCUMENTATION
   - renv updated with BioC 3.17

version-3.0.0
05/05/2023

NEW FEATURES
   - singularity profile:
      * the profile has been simplified since the option '--containall' has been removed and the profile now sets 'autoMounts = true'
	  * functionalities introduced in version 2.6.* to manage singularity bindings are not needed anymore
      * option 'params.containers.specificBinds' (used in the geniac-template) introduced in version-2.1.0 is not needed anymore 
      * cmake option 'ap_mount_dir' introduced in version-2.0.0 to bind folders inside containers is now deprecated since it is not needed anymore
   - Possibility to define label with variable: label (params.someValue ?: 'toolPrefix')
   - Geniac CLI:
      * 'geniac lint': improve error message when name of a conda recipe is not coherent with the label

version-2.6.3
01/06/2023

NEW FEATURES
   - singularity profile:
      * Allow the binding of relative (to launchDir) paths
      * Order the bindings according to the natural ordering
   - Geniac CLI:
      * Possibility to use 'geniac lint' on a repo even if the folder "geniac" is not present
      * 'geniac init':  improve error message display 

DOCUMENTATION
   - Git clone using geniac submodule from remote release branch

BUGFIX
   - Geniac CLI:
      * Avoid to launch Cmake init on several geniac CLI commands
      * 'geniac options': display missing options

version-2.6.2
12/16/2022

NEW FEATURES
   - Geniac CLI:
      *  Conda env with apptainer 1.1.4

BUGFIX
   - singularity profile:
      * checkSymlink: avoid infinite loop in some limit conditions

version-2.6.1
12/07/2022

BUGFIX
   - singularity profile:
      * checkSamplePlan: conditions added to consider files with either 2, 3 or 4 columns

version-2.6.0
11/19/2022

NEW FEATURES
   - almalinux:8.7 set as default for the containers
   - singularity profile:
      * checkBindinds function takes into account the binding of possible symlink inside a path. It also binds the directory defined in 'params.outDir' if it is defined in the nextflow.config file.

BUGFIX
   - Geniac CLI:
      * 'geniac init' will throw an error if it is launched from the working directory to be created

version-2.5.0
08/04/2022

NEW FEATURES
   - Add support to apptainer
   - Upgrade tool versions for the geniac conda env
   - Check during the cmake configuration that mininal version for each software is met
   - Geniac CLI:
      * geniac lint adds an error message if conda recipe is not correctly formatted
      * geniac lint will ignore config file that are not explicitly declared in geniac.ini
      * when installing with sudo privilege, check that singularity and nextflow versions are the same as the one detected in the user environment during cmake configuration
      * avoid 'sudo' command with 'geniac install' if launched by the root user

BUGFIX
   - Geniac CLI:
      * Fix geniac lint error when comment in the middle of a line
      * geniac lint will throw an error if the withLabel process selector is single-line formatted in the process.config file
      * allow '.' in softName in the pip section of a conda recipe

DOCUMENTATION
   - Minimal conda version (4.12.0) required

version-2.4.1
06/10/2022

NEW FEATURES
   - Geniac CLI:
      * allow both patterns ('condaChannelName::softName=version=buildString' and 'softName=version=buildString') in conda yml recipe file

version-2.4.0
06/08/2022

NEW FEATURES
   - conda 4.12.0 and almalinux:8.6 set as default for the containers
   - Geniac CLI:
      * check that conda recipe with a yml file contains an env name
      * check that conda recipe with a yml file have a unique env name
      * check that all dependencies with conda follow the pattern 'condaChannelName::softName=version=buildString'
      * check that pip dependencies with conda follow the pattern 'softName==version'

DOCUMENTATION
   - Guidelines to write conda recipe with a yml file

version-2.3.0
05/20/2022

NEW FEATURES
   - New cmake option:
      * ap_singularity_build_options: allow to pass specific options when building singularity images.
   - Geniac CLI:
      * singularityfakeroot mode added to "geniac install"
   - default runOption expected to "" in geniac.config
   - New profile available: podman

BUGFIX
   - Delete files generated by geniac when "geniac init" uses a path

DOCUMENTATION
   - Describe how to build singularity images with fakeroot option
   - Admin: explain how to build the doc

version-2.2.0
04/27/2022

NEW FEATURES
   - generate container recipes with renv and R tool
   - conda 4.11.0 and almalinux:8.5 set as default for the containers
   - Geniac CLI:
      * "clean", "configs" and "recipes" commands have been added
      * allow labels defined in params.geniac.tools in conf/geniac.config to use the content from other tools defined in params.geniac.tools
      * allow labels in params.geniac.containers.yum or params.geniac.containers.git scopes for all kind of labels (and not only for labels defined in params.geniac.tools)
      * check that the container recipes generated by geniac are not in the repo
      * allow custom scope in params.geniac.tools (which is required for a tool with R and renv)
      * geniac folder with the same version of geniac CLI is now included in the python package
      * add "sudo chown" after sudo operation to restore permission to the user
      * "geniac lint" now checks that a conda recipe must have its label in conf/geniac.config

DOCUMENTATION
   - New section with the Geniac CLI commands
   - Explain how to add a process with R and renv to manage package dependencies

BUGFIX:
   - Geniac CLI:
      * change regex to check that a module fromSource is in the ExternalProject_Add directive

version-2.1.0
03/24/2022

NEW FEATURES
   - Geniac CLI:
      * geniac folder with the same version of geniac CLI is downloaded in src dir to ensure that the pipeline will be installed using the same geniac version
      * config files generated by geniac are deleted at init if they are present in the src dir

DOCUMENTATION
   - option containers.specificBinds

version-2.0.1
03/18/2022

DOCUMENTATION
   - Update the config file examples generated by geniac

BUGFIX
   - Geniac CLI: allow the usage of --ap_singularity_image_path

version-2.0.0
02/10/2022

NEW FEATURES
   - Tools from source: 
      * they are installed in ${projectDir}/bin/fromSource in order to allow their usage inside the containers
      * the sh script which allowed the installation inside the container is not needed anymore
      * allow multi-stage building when building docker containers
   - Tools with custom install:
      * their dependencies files needed to build the containers have to be located in recipes/dependencies/label_name (to allow the -resume option)
   - New cmake options:
      * ap_linux_distro and ap_conda_release to bootstrap on containers available on 4geniac docker hub repositories (https://hub.docker.com/u/4geniac)
      * ap_mount_dir to bind folders inside containers
   - singularity profile:
      * 'autoMounts = false' when nextflow launches singularity profile
      * checkBindinds function added in singularity.config to avoid any interaction with HOME of the host for better reproducibility
      * image extension is now '.sif' instead of '.simg'
   - singularity/docker profile:
      * the conda environment is activated inside images
   - Geniac CLI:
      * options, init, install, test commands have been added
      * available on PyPI (https://pypi.org/project/geniac)
   - Use the nextflow '-resume' options when building the configuration files en containers
   - Add params.yum to use 'dnf' instead of yum to install packages in the linux distros
   - New custom target 'build_config_files'
   - Minimal versions for nextflow (21.10.6) and singularity (3.8.5)
   - environment.yml includes all dependencies required by geniac and geniac CLI

BUGFIX
   - Copy files in /usr/local/bin in the singularity image when the tool is built from source code
   - Fix extra quotes in the beforeScript directive added in the conda.config and multiconda.config files
   - Some environment variables from the deffile were not correctly exported inside the image

DOCUMENTATION
   - How to write singularity and docker recipes to activate conda environment
   - New Miscellaneous section
   - Binary or executable script: new use cases added as onlyLinux can not always be used
   - Updates with new functionalities and modifications from version-2.0.0

version-1.1.0
08/09/2021

NEW FEATURES
   - Add retry errorStrategy in the nextflow.config
   - New cmake option ap_docker_registry to bootstrap on custom registry when building the containers
   - baseDir replaced by projectDir
   - New method to detect is the source directory is a git repository

BUGFIX
   - Geniac linter supports empty recipes folder

DOCUMENTATION
   - Update the documentation and fix typos
   - Reference to the article added
   - Custom install section: add missing information where to save the custom recipes
   - Install from source code section: add missing link to modules/CMakeLists.txt template

version-1.0.0
05/31/2021

NEW FEATURES
   - Harmonization of docker.nf / singularity.nf files
   - Add missing indentation in singularity definition files

DOCUMENTATION
   - Update the documentation and fix typos

version-0.2.3
05/21/2021

BUGFIX
   - In the dependencies section of the file environment.yml generated by geniac, pip has been added

DOCUMENTATION
   - Update the documentation and fix typos
   - Example with the use of the cluster profile in useCases.bash

version-0.2.2
05/20/2021

NEW FEATURES
   - Geniac linter allows params.geniac.tools, params.geniac.containers.yum
     and params.geniac.containers.git as optional

version-0.2.1
05/19/2021

NEW FEATURES
   - Option ap_check_config_file_from_source
   - Geniac linter support multiline comments in nf files

DOCUMENTATION
  - Examples to generate the containers recipes

version-0.2.0
03/30/2021

NEW FEATURES
   - Geniac command line interface (linter)

version-0.1.2
03/26/2021

DOCUMENTATION
  - Update documentation with geniac-demo-dsl2

version-0.1.1
11/25/2020

DOCUMENTATION
  - Update documentation with new labels for resource tuning

version-0.1.0
11/06/2020

NEW FEATURES
  - generation of the conda recipe environment.yml
  - checkProfile* function added for path, multipath and singularity profiles
  - reorganisation of the config files with geniac.config added

BUGFIX
  - add condition when empty modules folder is empty
  - symlink to singularity path can be created

version-0.0.2

NEW FEATURES
  - utils folder has been renamed geniac

version-0.0.1

NEW FEATURES
  - set of utilities to build the containers and deploy the pipeline
