From 717c9ea2633ac59637b36a5ed5a1ed9bb5bdd8c5 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Wed, 17 Jul 2024 14:30:54 -0400 Subject: [PATCH 1/8] CI: Update package build, test, deploy for LTS --- .circleci/config.yml | 85 ++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 54 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4bbe48ac..c5e4a780c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1015,35 +1015,37 @@ jobs: test_deploy_pypi: docker: - - image: circleci/python:3.8.5 + - image: cimg/python:3.7 working_directory: /tmp/src/fmriprep steps: - checkout - run: - name: Build fMRIPrep + name: Inject version into source directory and wrapper source command: | - python -m pip install --user twine # For use in checking distributions THISVERSION=$( python get_version.py ) THISVERSION=${THISVERSION%.dirty*} THISVERSION=${CIRCLE_TAG:-$THISVERSION} - virtualenv --python=python build - source build/bin/activate - pip install --upgrade "pip>=19.1" numpy - echo "${CIRCLE_TAG:-$THISVERSION}" > fmriprep/VERSION - python setup.py sdist - python -m pip wheel --no-deps -w dist/ . + echo "${THISVERSION}" > fmriprep/VERSION + sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'${THISVERSION}'/" wrapper/fmriprep_docker.py + - run: + name: Build fMRIPrep + command: | + pipx run build . + pipx run build wrapper/ - store_artifacts: path: /tmp/src/fmriprep/dist + - store_artifacts: + path: /tmp/src/fmriprep/wrapper/dist + - run: + name: Twine check fMRIPrep + command: pipx run twine check dist/* wrapper/dist/* - run: name: Check sdist distribution command: | - THISVERSION=$( python get_version.py ) - THISVERSION=${THISVERSION%.dirty*} - THISVERSION=${CIRCLE_TAG:-$THISVERSION} - python -m twine check dist/fmriprep*.tar.gz - virtualenv --python=python sdist + THISVERSION=$( cat fmriprep/VERSION ) + python -m venv sdist source sdist/bin/activate - python -m pip install --upgrade "pip>=19.1" numpy + python -m pip install --upgrade pip numpy python -m pip install dist/fmriprep*.tar.gz which fmriprep | grep sdist\\/bin INSTALLED_VERSION=$(fmriprep --version) @@ -1055,13 +1057,11 @@ jobs: - run: name: Check wheel distribution command: | - THISVERSION=$( python get_version.py ) - THISVERSION=${THISVERSION%.dirty*} - THISVERSION=${CIRCLE_TAG:-$THISVERSION} - python -m twine check dist/fmriprep*.whl - virtualenv --python=python wheel + THISVERSION=$( cat fmriprep/VERSION ) + python -m venv wheel source wheel/bin/activate - python -m pip install dist/fmriprep*.whl + python -m pip install --upgrade pip numpy + python -m pip install dist/fmriprep*.tar.gz which fmriprep | grep wheel\\/bin INSTALLED_VERSION=$(fmriprep --version) INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'} @@ -1069,53 +1069,30 @@ jobs: echo "VERSION: \"$THISVERSION\"" echo "INSTALLED: \"$INSTALLED_VERSION\"" test "$INSTALLED_VERSION" = "$THISVERSION" - - run: - name: Build fmriprep-docker - command: | - THISVERSION=$( python get_version.py ) - THISVERSION=${THISVERSION%.dirty*} - cd wrapper - virtualenv --python=python build - source build/bin/activate - python -m pip install --upgrade "pip>=19.1" - sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'${CIRCLE_TAG:-$THISVERSION}'/" fmriprep_docker.py - python setup.py sdist - python -m pip wheel --no-deps -w dist/ . - - store_artifacts: - path: /tmp/src/fmriprep/wrapper/dist deploy_pypi: docker: - - image: circleci/python:3.8.5 + - image: cimg/python:3.7 working_directory: /tmp/src/fmriprep steps: - checkout - run: - name: Build fMRIPrep + name: Inject version into source directory and wrapper source command: | THISVERSION=$( python get_version.py ) - virtualenv --python=python build - source build/bin/activate - python -m pip install --upgrade "pip>=19.1" - echo "${CIRCLE_TAG:-$THISVERSION}" > fmriprep/VERSION - python setup.py sdist - python -m pip wheel --no-deps -w dist/ . + THISVERSION=${THISVERSION%.dirty*} + THISVERSION=${CIRCLE_TAG:-$THISVERSION} + echo "${THISVERSION}" > fmriprep/VERSION + sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'${THISVERSION}'/" wrapper/fmriprep_docker.py - run: - name: Build fmriprep-docker + name: Build fMRIPrep command: | - THISVERSION=$( python get_version.py ) - cd wrapper - virtualenv --python=python build - source build/bin/activate - python -m pip install --upgrade "pip>=19.1" - sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'${CIRCLE_TAG:-$THISVERSION}'/" fmriprep_docker.py - python setup.py sdist - python -m pip wheel --no-deps -w dist/ . + pipx run build . + pipx run build wrapper/ - run: name: Upload packages to PyPI command: | - python -m pip install --user twine - python -m twine upload dist/fmriprep* wrapper/dist/fmriprep* + pipx run twine upload dist/fmriprep* wrapper/dist/fmriprep* deployable: docker: From 0791cb5c0852fc3db230707dabaca46a73bd2b96 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Wed, 17 Jul 2024 14:32:56 -0400 Subject: [PATCH 2/8] CI: Fix type of environment objects, found by schema validator --- .circleci/config.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c5e4a780c..cb5a834f2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -344,8 +344,8 @@ jobs: image: ubuntu-2004:202104-01 working_directory: /tmp/ds005 environment: - - FS_LICENSE: /tmp/fslicense/license.txt - - DATASET: ds005 + FS_LICENSE: /tmp/fslicense/license.txt + DATASET: ds005 steps: - checkout: path: /home/circleci/src/fmriprep @@ -583,8 +583,8 @@ jobs: image: ubuntu-2004:202104-01 working_directory: /tmp/ds054 environment: - - FS_LICENSE: /tmp/fslicense/license.txt - - DATASET: ds054 + FS_LICENSE: /tmp/fslicense/license.txt + DATASET: ds054 steps: - checkout: path: /home/circleci/src/fmriprep @@ -751,8 +751,8 @@ jobs: image: ubuntu-2004:202104-01 working_directory: /tmp/ds210 environment: - - FS_LICENSE: /tmp/fslicense/license.txt - - DATASET: ds210 + FS_LICENSE: /tmp/fslicense/license.txt + DATASET: ds210 steps: - checkout: path: /home/circleci/src/fmriprep From 41d72f7d0701789b883c272da8bf7c71b506609a Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Wed, 17 Jul 2024 16:08:56 -0400 Subject: [PATCH 3/8] CI: Hack to prevent sklearn from breaking installation --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index cb5a834f2..67e641e05 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1043,6 +1043,7 @@ jobs: name: Check sdist distribution command: | THISVERSION=$( cat fmriprep/VERSION ) + SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True python -m venv sdist source sdist/bin/activate python -m pip install --upgrade pip numpy @@ -1058,6 +1059,7 @@ jobs: name: Check wheel distribution command: | THISVERSION=$( cat fmriprep/VERSION ) + SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True python -m venv wheel source wheel/bin/activate python -m pip install --upgrade pip numpy From d7e3623f1a0a7ba9f87beff805ceebc67f219e7d Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Wed, 17 Jul 2024 16:41:42 -0400 Subject: [PATCH 4/8] DOCKER: Add SSL chain to enable conda update --- Dockerfile | 3 + docker/files/repo-anaconda-com-chain.pem | 78 ++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 docker/files/repo-anaconda-com-chain.pem diff --git a/Dockerfile b/Dockerfile index 98a62f100..688b9b4b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -127,6 +127,9 @@ ENV PATH="/usr/local/miniconda/bin:$PATH" \ PYTHONNOUSERSITE=1 COPY docker/files/environment.yml /usr/local/etc/environment.yml +COPY docker/files/repo-anaconda-com-chain.pem /usr/local/etc/repo-anaconda-com-chain.pem + +RUN conda config --set ssl_verify /usr/local/etc/repo-anaconda-com-chain.pem # Installing precomputed python packages RUN conda env update -n base -f /usr/local/etc/environment.yml; sync && \ diff --git a/docker/files/repo-anaconda-com-chain.pem b/docker/files/repo-anaconda-com-chain.pem new file mode 100644 index 000000000..676792fb3 --- /dev/null +++ b/docker/files/repo-anaconda-com-chain.pem @@ -0,0 +1,78 @@ +-----BEGIN CERTIFICATE----- +MIIDgzCCAwigAwIBAgISBFll13cqbRr9DwiBsS+8V7uzMAoGCCqGSM49BAMDMDIx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJF +NjAeFw0yNDA2MjYwODU5NDdaFw0yNDA5MjQwODU5NDZaMBwxGjAYBgNVBAMTEXJl +cG8uYW5hY29uZGEuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiwInsAKM +aG0UR4O2o+r3/PmDA/STFMLz5BWmNv8kkW0stJ725355cDWxzqs5CAN4IqG+134e +ORBIgH3wQV33FqOCAhIwggIOMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAUBggr +BgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU9fkzh3cq +D3IKq8IA1GyI+UVTVJswHwYDVR0jBBgwFoAUkydGmAOpUWiOmNbEQkjbI79YlNIw +VQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vZTYuby5sZW5jci5v +cmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9lNi5pLmxlbmNyLm9yZy8wHAYDVR0RBBUw +E4IRcmVwby5hbmFjb25kYS5jb20wEwYDVR0gBAwwCjAIBgZngQwBAgEwggEDBgor +BgEEAdZ5AgQCBIH0BIHxAO8AdgA/F0tP1yJHWJQdZRyEvg0S7ZA3fx+FauvBvyiF +7PhkbgAAAZBT/K+xAAAEAwBHMEUCIQC6pHZ3p8XWEgApslV+r31LQ4Yn0Ezx2HTn +x5biVsPpDwIgd4q0LXA4h7Y257x+ZkjGHGdrSYl4ygvqp1pGV66MP0cAdQB2/4g/ +Crb7lVHCYcz1h7o0tKTNuyncaEIKn+ZnTFo6dAAAAZBT/K/pAAAEAwBGMEQCIBFC +yD0lKhWv6Oei93kgE5wUjUnMVEPwlKiBbbFStXJsAiBWx84eGq0i8yOB/bkcKlx3 +QZuOInQVcgrZlYEtl9L4UzAKBggqhkjOPQQDAwNpADBmAjEAp9T/bU9DWMnYc6+l +GgQQcKt/XSU5lq0qSCxbSX7GW5P/5656MOYTZrrFv7wmYJK4AjEA9nlco0BMniFz +FogMl586/1tCywWRWg46PfJafNf9OLXzlwDhi+iRMPFHpIAxgpgn +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEVzCCAj+gAwIBAgIRALBXPpFzlydw27SHyzpFKzgwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw +WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg +RW5jcnlwdDELMAkGA1UEAxMCRTYwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATZ8Z5G +h/ghcWCoJuuj+rnq2h25EqfUJtlRFLFhfHWWvyILOR/VvtEKRqotPEoJhC6+QJVV +6RlAN2Z17TJOdwRJ+HB7wxjnzvdxEP6sdNgA1O1tHHMWMxCcOrLqbGL0vbijgfgw +gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD +ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSTJ0aYA6lRaI6Y1sRCSNsj +v1iU0jAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB +AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g +BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu +Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAfYt7SiA1sgWGCIpunk46r4AExIRc +MxkKgUhNlrrv1B21hOaXN/5miE+LOTbrcmU/M9yvC6MVY730GNFoL8IhJ8j8vrOL +pMY22OP6baS1k9YMrtDTlwJHoGby04ThTUeBDksS9RiuHvicZqBedQdIF65pZuhp +eDcGBcLiYasQr/EO5gxxtLyTmgsHSOVSBcFOn9lgv7LECPq9i7mfH3mpxgrRKSxH +pOoZ0KXMcB+hHuvlklHntvcI0mMMQ0mhYj6qtMFStkF1RpCG3IPdIwpVCQqu8GV7 +s8ubknRzs+3C/Bm19RFOoiPpDkwvyNfvmQ14XkyqqKK5oZ8zhD32kFRQkxa8uZSu +h4aTImFxknu39waBxIRXE4jKxlAmQc4QjFZoq1KmQqQg0J/1JF8RlFvJas1VcjLv +YlvUB2t6npO6oQjB3l+PNf0DpQH7iUx3Wz5AjQCi6L25FjyE06q6BZ/QlmtYdl/8 +ZYao4SRqPEs/6cAiF+Qf5zg2UkaWtDphl1LKMuTNLotvsX99HP69V2faNyegodQ0 +LyTApr/vT01YPE46vNsDLgK+4cL6TrzC/a4WcmF5SRJ938zrv/duJHLXQIku5v0+ +EwOy59Hdm0PT/Er/84dDV0CSjdR/2XuZM3kpysSKLgD1cKiDA+IRguODCxfO9cyY +Ig46v9mFmBvyH04= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- From 5207bdfba468d032e8c1c5f60472450788386e64 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Wed, 17 Jul 2024 16:44:44 -0400 Subject: [PATCH 5/8] CI: Stop checking wheel/sdist versions; they are fine --- .circleci/config.yml | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 67e641e05..f7d116f7c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1039,38 +1039,6 @@ jobs: - run: name: Twine check fMRIPrep command: pipx run twine check dist/* wrapper/dist/* - - run: - name: Check sdist distribution - command: | - THISVERSION=$( cat fmriprep/VERSION ) - SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True - python -m venv sdist - source sdist/bin/activate - python -m pip install --upgrade pip numpy - python -m pip install dist/fmriprep*.tar.gz - which fmriprep | grep sdist\\/bin - INSTALLED_VERSION=$(fmriprep --version) - INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'} - INSTALLED_VERSION=${INSTALLED_VERSION#*"fMRIPrep v"} - echo "VERSION: \"$THISVERSION\"" - echo "INSTALLED: \"$INSTALLED_VERSION\"" - test "$INSTALLED_VERSION" = "$THISVERSION" - - run: - name: Check wheel distribution - command: | - THISVERSION=$( cat fmriprep/VERSION ) - SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True - python -m venv wheel - source wheel/bin/activate - python -m pip install --upgrade pip numpy - python -m pip install dist/fmriprep*.tar.gz - which fmriprep | grep wheel\\/bin - INSTALLED_VERSION=$(fmriprep --version) - INSTALLED_VERSION=${INSTALLED_VERSION%$'\r'} - INSTALLED_VERSION=${INSTALLED_VERSION#*"fMRIPrep v"} - echo "VERSION: \"$THISVERSION\"" - echo "INSTALLED: \"$INSTALLED_VERSION\"" - test "$INSTALLED_VERSION" = "$THISVERSION" deploy_pypi: docker: From 2aefdfdfa9243a8aadadbe3882d8180e8a2216ae Mon Sep 17 00:00:00 2001 From: bpinsard Date: Wed, 20 Mar 2024 14:31:35 -0400 Subject: [PATCH 6/8] backport fix copy of dseg.tsv following templateflow update to LTS --- fmriprep/cli/run.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fmriprep/cli/run.py b/fmriprep/cli/run.py index f094e4d28..8b8eb242c 100755 --- a/fmriprep/cli/run.py +++ b/fmriprep/cli/run.py @@ -160,7 +160,15 @@ def main(): from templateflow import api from niworkflows.utils.misc import _copy_any - dseg_tsv = str(api.get("fsaverage", suffix="dseg", extension=[".tsv"])) + dseg_tsv = str( + api.get( + "fsaverage", + hemi=None, + atlas=None, + suffix="dseg", + extension=[".tsv"] + ) + ) _copy_any( dseg_tsv, str(config.execution.fmriprep_dir / "desc-aseg_dseg.tsv") ) From 51cbfedfb4d18ced05a44b40b8f920749c02ba8f Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Wed, 17 Jul 2024 20:51:48 -0400 Subject: [PATCH 7/8] DOC: Update changelog for hypothetical 20.2.8 release --- CHANGES.rst | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 71a17d998..1f5f610c5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,25 @@ +20.2.8 (To be determined) +========================= +Bug-fix release in the 20.2.x LTS series. + +* FIX: Select volumetric dseg.tsv from recent TemplateFlow releases (#3257) +* FIX: LTS package build (#3328) +* DOC: Read html_baseurl from RTD environment, if available (#3324) +* DOCKER: Pin conda environment more strictly (#2853) +* MNT: Require niworkflows ~1.3.6 (#2740) +* CI: Upgrade docker orb (#2865) + +This release includes a number of fixes that have accumulated in niworkflows, +including the following fixes that affect fMRIPrep: + +* FIX: Remove unused ANTs parameter that was removed in 2.4.1 (nipreps/sdcflows#431) +* FIX: Limit 3dQwarp to maximum 4 CPUs for stability reasons (nipreps/sdcflows#128) +* MAINT: Make call to scipy.stats.mode compatible with scipy 1.11.0 (nipreps/sdcflows#371) +* FIX: TSV2JSON should convert empty TSV files to empty JSON files (nipreps/niworkflows#747) +* FIX: Use copy function that does not preserve mtime when creating fsaverage + directories (nipreps/niworkflows#703) +* FIX: Set pixdim[4] to match RepetitionTime (nipreps/niworkflows#679) + 20.2.7 (January 24, 2022) ========================= Bug-fix release in the 20.2.x LTS series. From e9c1f8eb75d6c493a05028085d9567cc6ae26045 Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Thu, 18 Jul 2024 10:52:06 -0400 Subject: [PATCH 8/8] REL: 20.2.8 --- CHANGES.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 1f5f610c5..2d13eb2c4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,7 +1,9 @@ -20.2.8 (To be determined) -========================= +20.2.8 (July 18, 2024) +====================== Bug-fix release in the 20.2.x LTS series. +We anticipate this being the final release in the 20.2.x LTS series. + * FIX: Select volumetric dseg.tsv from recent TemplateFlow releases (#3257) * FIX: LTS package build (#3328) * DOC: Read html_baseurl from RTD environment, if available (#3324)