diff --git a/.mailmap b/.mailmap index 946919557c..ced66b4099 100644 --- a/.mailmap +++ b/.mailmap @@ -1,197 +1,170 @@ +Aimi Watanabe Aimi Watanabe stymy -Aimi Watanabe stymy -Alejandro Tabas qTabs -Alejandro Tabas qtabs -Alejandro de la Vega adelavega -Alejandro de la Vega delavega4 -Alexander Schaefer Alexander Schaefer -Alexander Schaefer alexschaefer83 -Alexander Schaefer aschaefer -Alexandre M. Savio Alexandre M. S -Alexandre M. Savio Alexandre M. S -Alexandre M. Savio Alexandre Manhaes Savio -Andrew Floren afloren -Andrey Chetverikov Andrey Chetverikov -Andrey Chetverikov achetverikov -Anibal Sólon Heinsfeld anibalsolon -Anisha Keshavan Anisha Keshavan -Anisha Keshavan akeshavan -Ariel Rokem Ariel Rokem -Ariel Rokem arokem -Ariel Rokem arokem -Arman Eshaghi armaneshaghi -Ashely Gillman Ashley Gillman -Ashely Gillman ashgillman -Basille Pinsard bpinsard -Basille Pinsard bpinsard -Ben Cipollini Ben Cipollini -Benjamin Acland Ben Acland -Benjamin Meyers <34044274+BenjaminMey@users.noreply.github.com> BenjaminMey <34044274+BenjaminMey@users.noreply.github.com> -Benjamin Yvernault Benjamin Yvernault -Benjamin Yvernault byvernault -Blake Dewey Blake Dewey -Blake Dewey blakedewey -Blake Dewey blakedewey -Brendan Moloney moloney -Caroline Froehlich carolFrohlich -Christopher J. Markiewicz Chris Markiewicz -Christopher J. Markiewicz Chris Markiewicz -Christopher J. Markiewicz Christopher J. Johnson -Christopher J. Markiewicz Christopher J. Markiewicz -Christopher J. Markiewicz Christopher J. Markiewicz -Cindee Madison cindeem -Cindee Madison cindeem <> -Colin Buchanan Colin Buchanan -Colin Buchanan colinbuchanan -Daniel Brenner brennerd -Daniel Brenner brennerd11 -Daniel Clark dclark87 -Daniel Geisler daniel-ge -Daniel Ginsburg danginsburg -Daniel McNamee danmc -David Ellis David Ellis -David Ellis David Ellis -David Mordom dmordom -David Welch David Welch -Dimitri Papadopoulos Orfanos Dimitri Papadopoulos -Dmytro belevtsoff -Dylan M. Nielson Dylan -Dylan M. Nielson Dylan Nielson -Eduard Ort eort -Elizabeth DuPre emdupre -Erik Ziegler Erik -Erik Ziegler Erik Ziegler -Erik Ziegler erik -Erik Ziegler erikz -Erik Ziegler swederik -Feilong Ma Ma Feilong -Fernando Pérez-García Fernando -Franz Liem fliem -Franz Liem fliem -Fred Loney FredLoney -Gael Varoquaux GaelVaroquaux -Gael Varoquaux GaelVaroquaux -Gavin Cooper gjcooper -Gilles de Hollander Gilles86 -Gio Piantoni Gio at UMCU -Guillaume Flandin Guillaume -Hans Johnson Hans Johnson -Hans Johnson hjmjohnson -Horea Christian Horea Christian -Isaac Schwabacher ischwabacher -Jakub Kaczmarzyk jakubk -Jakub Kaczmarzyk kaczmarj -James Kent jdkent -Janosch Linkersdörfer Januzz -Jason Wong Jason -Jason Wong Jason W -Jason Wong Jason W -Jason Wong jason -Jason Wong jason-wg -Jens Kleesiek JensNRAD -Jessica Forbes jessicaforbes -Jérémy Guillon GUILLON Jeremy -Joerg Stadler Joerg Stadler -Joerg Stadler Joerg Stadler -Joerg Stadler Jörg Stadler -John A. Lee john anthony lee -John A. Lee leej3 -Joke Durnez jokedurnez -Josh Warner JDWarner -Josh Warner Josh Warner (Mac) -Kai Schlamp medihack -Katherine Bottenhorn 62442katieb -Katherine Bottenhorn Katie Bottenhorn -Kesshi Jordan Kesshi Jordan -Kesshi Jordan Kesshi Jordan -Kesshi Jordan Kesshi Jordan -Kesshi Jordan Kesshi Jordan -Kesshi Jordan Kesshi Jordan -Kesshi Jordan Kesshi jordan -Kesshi Jordan kesshijordan -Kevin Sitek sitek -Kevin Sitek sitek -Kornelius Podranski Kornelius -Krzysztof J. Gorgolewski Chris Filo Gorgolewski -Krzysztof J. Gorgolewski Chris Filo Gorgolewski -Krzysztof J. Gorgolewski Chris Filo Gorgolewski -Krzysztof J. Gorgolewski Chris Filo Gorgolewski -Krzysztof J. Gorgolewski Chris Gorgolewski -Krzysztof J. Gorgolewski Krzysztof Gorgolewski -Krzysztof J. Gorgolewski filo -Krzysztof J. Gorgolewski filo -Krzysztof J. Gorgolewski filo -Krzysztof J. Gorgolewski filo -Kshitij Chawla Kshitij Chawla (kchawla-pi) -Leonie Lampe Leonie Lmape -Lukas Snoek Lukas Snoek -Marcel Falkiewicz Marcel Falkiewicz -Mathias Goncalves Mathias Goncalves -Mathias Goncalves mathiasg -Mathieu Dubois Mathieu Dubois -Mathieu Dubois duboism -Matteo Mancini matteomancini -Matteo Visconti di Oleggio Castello Matteo Visconti dOC -Matteo Visconti di Oleggio Castello Matteo Visconti dOC -Matteo Visconti di Oleggio Castello mvdoc -Matthew Cieslak Matt Cieslak -Michael Clark Clark -Michael Dayan Michael -Michael Dayan Michael +Alejandro Tabas +Alejandro Tabas +Alejandro de la Vega +Alejandro de la Vega +Alexander Schaefer +Alexander Schaefer +Alexander Schaefer +Alexandre M. Savio +Alexandre M. Savio +Andrew Floren +Andrey Chetverikov +Andrey Chetverikov +Anibal Sólon Heinsfeld +Anisha Keshavan +Anisha Keshavan +Ariel Rokem +Ariel Rokem +Arman Eshaghi +Ashely Gillman +Basille Pinsard +Basille Pinsard +Ben Cipollini +Benjamin Acland +Benjamin Meyers <34044274+BenjaminMey@users.noreply.github.com> +Benjamin Yvernault +Benjamin Yvernault +Blake Dewey +Blake Dewey +Blake Dewey +Brendan Moloney +Caroline Froehlich +Christopher J. Markiewicz +Christopher J. Markiewicz +Christopher J. Markiewicz +Cindee Madison +Colin Buchanan +Colin Buchanan +Daniel Brenner +Daniel Clark +Daniel Geisler +Daniel Ginsburg +Daniel McNamee +David Ellis +David Ellis +David Mordom +David Welch +Dimitri Papadopoulos Orfanos +Dmytro Belevtsoff +Dylan M. Nielson +Dylan M. Nielson +Eduard Ort +Elizabeth DuPre +Erik Ziegler +Erik Ziegler +Erik Ziegler +Feilong Ma +Fernando Pérez-García +Franz Liem +Franz Liem +Fred Loney +Gael Varoquaux +Gavin Cooper +Gilles de Hollander +Gio Piantoni +Guillaume Flandin +Hans Johnson +Horea Christian +Isaac Schwabacher +Jakub Kaczmarzyk +James Kent +Janosch Linkersdörfer +Jason Wong +Jason Wong +Jens Kleesiek +Jessica Forbes +Jérémy Guillon +Joerg Stadler +Joerg Stadler +Joerg Stadler +John A. Lee +Joke Durnez +Josh Warner +Junhao WEN +Kai Schlamp +Katherine Bottenhorn +Kesshi Jordan +Kesshi Jordan +Kesshi Jordan +Kesshi Jordan +Kesshi Jordan +Kesshi Jordan +Kevin Sitek +Kevin Sitek +Kim, Sin +Kornelius Podranski +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski +Krzysztof J. Gorgolewski +Kshitij Chawla +Leonie Lampe +Lukas Snoek +Marcel Falkiewicz +Martin Perez-Guevara +Mathias Goncalves +Mathieu Dubois +Mathieu Dubois +Matteo Mancini +Matteo Visconti di Oleggio Castello +Matteo Visconti di Oleggio Castello +Matthew Cieslak +Michael Clark +Michael Dayan +Michael Dayan Michael Dayan mick-d -Michael Dayan Michael -Michael Joseph mjoseph -Michael Joseph Michael Joseph -Michael Philipp Notter Michael Notter -Michael Philipp Notter miykael -Michael Waskom Michael Waskom -Michael Waskom Michael Waskom -Michael Waskom Michael Waskom -Michael Waskom mwaskom -Michael Waskom mwaskom -Michael Waskom mwaskom -Miguel Molina-Romero Miguel Molina -Murat Bilgel Murat Bilgel -Oliver Contier oliver-contier -Oscar Esteban Oscar Esteban -Oscar Esteban oesteban -Pablo Polosecki pipolose -Pablo Polosecki pipolose -Paul Sharp psharp1289 -Ranjit Khanuja RanjitK -Rastko Ćirić rciric -Rastko Ćirić Rastko Ćirić -Rastko Ćirić rciric -Ross Markello Ross Markello -Russell Poldrack Russ Poldrack -Russell Poldrack poldrack -Salma Bougacha Salma BOUGACHA -Salma Bougacha salma -Salma Bougacha salma1601 -Sami Kristian Andberg Sami Andberg -Satrajit Ghosh Satrajit Ghosh -Sebastian Urchs sebastian -Serge Koudoro skoudoro -Sharad Sikka ssikka -Shariq Iqbal shariqiqbal2810 -Shariq Iqbal shariqiqbal2810 +Michael Dayan +Michael Joseph +Michael Philipp Notter +Michael Philipp Notter +Michael Waskom +Michael Waskom +Michael Waskom +Miguel Molina-Romero +Murat Bilgel +Oliver Contier +Olivia Stanley +Oscar Esteban +Oscar Esteban +Pablo Polosecki +Pablo Polosecki +Paul Sharp +Ranjit Khanuja +Rastko Ćirić +Rastko Ćirić +Rastko Ćirić +Ross Markello +Russell Poldrack +Russell Poldrack +Salma Bougacha +Sami Kristian Andberg +Satrajit Ghosh +Sebastian Urchs +Serge Koudoro +Sharad Sikka +Shariq Iqbal +Shariq Iqbal Shoshana Berleant Shoshana Berleant -Shoshana Berleant Shoshana Berleant -Simon Rothmei Simon R -Simon Rothmei Simon Rothmeier -Siqi Liu siqi liu -Siqi Liu sql -Steven Giavasis Steven Giavasis -Steven Giavasis sgiavasis -Steven Giavasis sgiavasis -Steven Tilley Steven Tilley -Tristan Glatard Tristan Glatard -Victor Férat Victor -Victor Férat Victor Ferat -Victor Férat Victor Férat -Victor Saase vsaase -Weijie Huang forwho -William Triplett William Triplett -Wolfgang Pauli Wolfgang Pauli -Xiangzhen Kong bnucon -Yaroslav Halchenko Yaroslav Halchenko +Shoshana Berleant +Simon Rothmei +Simon Rothmei +Siqi Liu +Steven Giavasis +Steven Giavasis +Steven Giavasis +Steven Tilley +Tristan Glatard +Victor Férat +Victor Férat +Victor Férat +Victor Saase +Weijie Huang +William Triplett +Wolfgang Pauli +Xiangzhen Kong +Yaroslav Halchenko diff --git a/.zenodo.json b/.zenodo.json index 06bd8a4ebc..ac9972984b 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,10 +1,5 @@ { "creators": [ - { - "affiliation": "Department of Psychology, Stanford University", - "name": "Gorgolewski, Krzysztof J.", - "orcid": "0000-0003-3321-7583" - }, { "affiliation": "Department of Psychology, Stanford University", "name": "Esteban, Oscar", @@ -150,15 +145,20 @@ "affiliation": "Concordia University", "name": "Benderoff, Erin" }, + { + "affiliation": "Dartmouth College: Hanover, NH, United States", + "name": "Halchenko, Yaroslav O.", + "orcid": "0000-0003-3456-2493" + }, { "affiliation": "Institute for Biomedical Engineering, ETH and University of Zurich", "name": "Christian, Horea", "orcid": "0000-0001-7037-2449" }, { - "affiliation": "Dartmouth College: Hanover, NH, United States", - "name": "Halchenko, Yaroslav O.", - "orcid": "0000-0003-3456-2493" + "affiliation": "The Centre for Addiction and Mental Health", + "name": "Joseph, Michael", + "orcid": "0000-0002-0068-230X" }, { "affiliation": "UC San Diego", @@ -202,11 +202,6 @@ "name": "Varoquaux, Gael", "orcid": "0000-0003-1076-5122" }, - { - "affiliation": "The Centre for Addiction and Mental Health", - "name": "Joseph, Michael", - "orcid": "0000-0002-0068-230X" - }, { "affiliation": "Athena EPI, Inria Sophia-Antipolis", "name": "Wassermann, Demian", @@ -250,14 +245,14 @@ "affiliation": "Nathan s Kline institute for psychiatric research", "name": "Sikka, Sharad" }, + { + "name": "Forbes, Jessica" + }, { "affiliation": "University College London", "name": "Mancini, Matteo", "orcid": "0000-0001-7194-4568" }, - { - "name": "Forbes, Jessica" - }, { "affiliation": "Duke University", "name": "Iqbal, Shariq", @@ -295,10 +290,6 @@ { "name": "Kent, James" }, - { - "name": "Heinsfeld, Anibal S\u00f3lon", - "orcid": "0000-0002-2050-0614" - }, { "name": "Watanabe, Aimi" }, @@ -325,6 +316,10 @@ "name": "Eshaghi, Arman", "orcid": "0000-0002-6652-3512" }, + { + "name": "Heinsfeld, Anibal S\u00f3lon", + "orcid": "0000-0002-2050-0614" + }, { "name": "Ginsburg, Daniel" }, @@ -352,14 +347,14 @@ "affiliation": "UniversityHospital Heidelberg, Germany", "name": "Kleesiek, Jens" }, - { - "name": "Erickson, Drew" - }, { "affiliation": "NIMH IRP", "name": "Lee, John A.", "orcid": "0000-0001-5884-4247" }, + { + "name": "Erickson, Drew" + }, { "affiliation": "Child Mind Institute", "name": "Giavasis, Steven" @@ -378,6 +373,9 @@ { "name": "K\u00fcttner, Ren\u00e9" }, + { + "name": "Perez-Guevara, Martin" + }, { "name": "Millman, Jarrod" }, @@ -412,6 +410,11 @@ "name": "Stadler, J\u00f6rg", "orcid": "0000-0003-4313-129X" }, + { + "affiliation": "Korea Advanced Institute of Science and Technology", + "name": "Kim, Sin", + "orcid": "0000-0003-4652-3758" + }, { "affiliation": "University College London", "name": "P\u00e9rez-Garc\u00eda, Fernando", @@ -524,6 +527,11 @@ { "name": "Matsubara, K" }, + { + "affiliation": "University of Pennsylvania", + "name": "Junhao WEN", + "orcid": "0000-0003-2077-3070" + }, { "name": "Cheung, Brian" }, @@ -679,9 +687,6 @@ "name": "Pellman, John", "orcid": "0000-0001-6810-4461" }, - { - "name": "Perez-Guevara, Martin" - }, { "name": "Khanuja, Ranjeet" }, @@ -701,6 +706,11 @@ { "name": "Lai, Jeff" }, + { + "affiliation": "Department of Psychology, Stanford University", + "name": "Gorgolewski, Krzysztof J.", + "orcid": "0000-0003-3321-7583" + }, { "affiliation": "MIT, HMS", "name": "Ghosh, Satrajit", diff --git a/doc/changelog/1.X.X-changelog b/doc/changelog/1.X.X-changelog index 71363170df..82747d9903 100644 --- a/doc/changelog/1.X.X-changelog +++ b/doc/changelog/1.X.X-changelog @@ -1,3 +1,24 @@ +1.2.3 (September 23, 2019) +========================== + +Python 1.2.3 will be the last version to support Python 3.4. + +##### [Full changelog](https://github.com/nipy/nipype/milestone/35?closed=1) + + * FIX: Patch Path.mkdir for Python 2 (https://github.com/nipy/nipype/pull/3037) + * FIX: Drop deprecated message argument to ``FileNotFoundError`` (https://github.com/nipy/nipype/pull/3035) + * FIX: Handle NIFTI extensions in ``afni.Qwarp`` (https://github.com/nipy/nipype/pull/3028) + * FIX: Disallow returning ``None`` in ``pipeline.utils.load_resultfile`` (https://github.com/nipy/nipype/pull/3023) + * ENH: Allow afni.CatMatvec to accept empty string opkeys (https://github.com/nipy/nipype/pull/2943) + * ENH: Add ``mrrtrix3.MRResize`` interface (https://github.com/nipy/nipype/pull/3031) + * ENH: Add version check / telemetry to Nipype (https://github.com/nipy/nipype/pull/3027) + * ENH: Update MCFLIRT outputs for FSL 6+ (https://github.com/nipy/nipype/pull/3029) + * ENH: Lightweight node cache checking (https://github.com/nipy/nipype/pull/3026) + * ENH: Avoid loading result from file when writing reports (https://github.com/nipy/nipype/pull/3024) + * ENH: replace portalocker with filelock (https://github.com/nipy/nipype/pull/3025) + * MAINT: Set minimum yapf for `checkspecs` to 0.27 (https://github.com/nipy/nipype/pull/3033) + + 1.2.2 (September 07, 2019) ========================== diff --git a/doc/conf.py b/doc/conf.py index bdf938a70c..10ac3c36db 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -82,7 +82,7 @@ # The short X.Y version. version = nipype.__version__ # The full version, including alpha/beta/rc tags. -release = "1.2.2" +release = "1.2.3" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/nipype/info.py b/nipype/info.py index 313278b555..e3bd9aa2df 100644 --- a/nipype/info.py +++ b/nipype/info.py @@ -9,7 +9,7 @@ # nipype version information # Remove -dev for release -__version__ = '1.2.3-dev' +__version__ = '1.2.3' def get_nipype_gitversion(): diff --git a/tools/feedstock.sh b/tools/feedstock.sh index b34aae2c8b..b37dba8671 100755 --- a/tools/feedstock.sh +++ b/tools/feedstock.sh @@ -108,6 +108,10 @@ Updating feedstock to release branch * URL = https://github.com/$SRCREPO/archive/$REF.tar.gz * SHA256 = \`$SHA256\` + +--- + +@conda-forge-admin, please rerender. END fi diff --git a/tools/update_zenodo.py b/tools/update_zenodo.py index 163f88084d..c83e14ff14 100755 --- a/tools/update_zenodo.py +++ b/tools/update_zenodo.py @@ -1,52 +1,21 @@ #!/usr/bin/env python3 +"""Update and sort the creators list of the zenodo record.""" +import sys +import shutil +from pathlib import Path import json from fuzzywuzzy import fuzz, process -import shutil -import os import subprocess as sp -if os.path.exists('line-contributions.txt'): - with open('line-contributions.txt', 'rt') as fp: - lines = fp.readlines() -else: - if shutil.which('git-line-summary'): - print("Running git-line-summary on nipype repo") - lines = sp.check_output(['git-line-summary']).decode().split('\n') - else: - raise RuntimeError("Install Git Extras to view git contributors") - -data = [' '.join(line.strip().split()[1:-1]) for line in lines if '%' in line] - -# load zenodo from master -with open('.zenodo.json', 'rt') as fp: - zenodo = json.load(fp) -zen_names = [' '.join(val['name'].split(',')[::-1]).strip() - for val in zenodo['creators']] - -name_matches = [] - -for ele in data: - matches = process.extract(ele, zen_names, scorer=fuzz.token_sort_ratio, - limit=2) - # matches is a list [('First match', % Match), ('Second match', % Match)] - if matches[0][1] > 80: - val = zenodo['creators'][zen_names.index(matches[0][0])] - else: - # skip unmatched names - print("No entry to sort:", ele) - continue - - if val not in name_matches: - name_matches.append(val) - +# These ORCIDs should go last +CREATORS_LAST = ['Gorgolewski, Krzysztof J.', 'Ghosh, Satrajit'] # for entries not found in line-contributions -missing_entries = [ +MISSING_ENTRIES = [ {"name": "Varada, Jan"}, {"name": "Schwabacher, Isaac"}, {"affiliation": "Child Mind Institute / Nathan Kline Institute", "name": "Pellman, John", "orcid": "0000-0001-6810-4461"}, - {"name": "Perez-Guevara, Martin"}, {"name": "Khanuja, Ranjeet"}, {"affiliation": "Medical Imaging & Biomarkers, Bioclinica, Newark, CA, USA.", @@ -61,31 +30,62 @@ {"name": "Lai, Jeff"} ] -for entry in missing_entries: - name_matches.append(entry) +if __name__ == '__main__': + contrib_file = Path('line-contributors.txt') + lines = [] + if contrib_file.exists(): + print('WARNING: Reusing existing line-contributors.txt file.', file=sys.stderr) + lines = contrib_file.read_text().splitlines() - -def fix_position(creators): - # position first / last authors - f_authr = None - l_authr = None - - for i, info in enumerate(creators): - if info['name'] == 'Gorgolewski, Krzysztof J.': - f_authr = i - if info['name'] == 'Ghosh, Satrajit': - l_authr = i - - if f_authr is None or l_authr is None: - raise AttributeError('Missing important people') - - creators.insert(0, creators.pop(f_authr)) - creators.insert(len(creators), creators.pop(l_authr + 1)) - return creators - - -zenodo['creators'] = fix_position(name_matches) - -with open('.zenodo.json', 'wt') as fp: - json.dump(zenodo, fp, indent=2, sort_keys=True) - fp.write('\n') + git_line_summary_path = shutil.which('git-line-summary') + if not lines and git_line_summary_path: + print("Running git-line-summary on nipype repo") + lines = sp.check_output([git_line_summary_path]).decode().splitlines() + contrib_file.write_text('\n'.join(lines)) + + if not lines: + raise RuntimeError("""\ +Could not find line-contributors from git repository.%s""" % """ \ +git-line-summary not found, please install git-extras. """ * (git_line_summary_path is None)) + + data = [' '.join(line.strip().split()[1:-1]) for line in lines if '%' in line] + + # load zenodo from master + zenodo_file = Path('.zenodo.json') + zenodo = json.loads(zenodo_file.read_text()) + zen_names = [' '.join(val['name'].split(',')[::-1]).strip() + for val in zenodo['creators']] + total_names = len(zen_names) + len(MISSING_ENTRIES) + + name_matches = [] + position = 1 + for ele in data: + matches = process.extract(ele, zen_names, scorer=fuzz.token_sort_ratio, + limit=2) + # matches is a list [('First match', % Match), ('Second match', % Match)] + if matches[0][1] > 80: + val = zenodo['creators'][zen_names.index(matches[0][0])] + else: + # skip unmatched names + print("No entry to sort:", ele) + continue + + if val not in name_matches: + if val['name'] not in CREATORS_LAST: + val['position'] = position + position += 1 + else: + val['position'] = total_names + CREATORS_LAST.index(val['name']) + name_matches.append(val) + + for missing in MISSING_ENTRIES: + missing['position'] = position + position += 1 + name_matches.append(missing) + + zenodo['creators'] = sorted(name_matches, key=lambda k: k['position']) + # Remove position + for creator in zenodo['creators']: + del creator['position'] + + zenodo_file.write_text('%s\n' % json.dumps(zenodo, indent=2, sort_keys=True))