Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.1.0 update #2812

Closed
wants to merge 582 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
582 commits
Select commit Hold shift + click to select a range
29eaf43
Update docs
bjeurissen Oct 25, 2022
de53159
Fix duplicate author and synopsis and fix description
bjeurissen Oct 27, 2022
98abc83
Update dwi2tensor.rst
bjeurissen Oct 27, 2022
0b41219
Merge remote-tracking branch 'github/master' into dev
jdtournier Nov 10, 2022
5731c02
Merge pull request #2475 from MRtrix3/python_stack_tweak
Lestropie Nov 14, 2022
8d53707
pylint: remove unused or outdated options
jdtournier Nov 14, 2022
7cebcc0
pylint: fix grep regex
jdtournier Nov 14, 2022
7611b59
pylint: fix various warnings
jdtournier Nov 15, 2022
53383aa
Merge pull request #2524 from MRtrix3/dev_update
jdtournier Nov 15, 2022
84e11a4
Merge pull request #2471 from MRtrix3/population_template_space_init_…
jdtournier Nov 15, 2022
74b3020
Merge branch 'dev' into cwlls_and_dkimetrics
jdtournier Nov 15, 2022
31c5a67
dwi2tensor: ignore NaNs also for IWLS (bug fix)
dchristiaens Nov 15, 2022
e191365
Merge branch 'dev' into dwi2tensor_ignore_nan
dchristiaens Nov 15, 2022
efc716e
maskfilter: fix default value of minsize
dchristiaens Nov 15, 2022
b51eaa8
Merge branch 'dev' into connected_components_minsize
dchristiaens Nov 15, 2022
be4826c
Add options to override directions used for numerical evaluation of c…
bjeurissen Nov 16, 2022
45b66f4
Fix man page
bjeurissen Nov 16, 2022
f5549a0
Update dwi2tensor.rst
bjeurissen Nov 16, 2022
d848251
Update tensor2metric.rst
bjeurissen Nov 16, 2022
696f5b6
Update tensor2metric.cpp
bjeurissen Nov 16, 2022
bc67c09
Update tensor2metric.rst
bjeurissen Nov 16, 2022
6f464de
Clean up man page
bjeurissen Nov 17, 2022
66def77
Update docs
bjeurissen Nov 17, 2022
79bca06
add tests for DKI
jdtournier Nov 16, 2022
524df65
dwi2tensor/tensor2metric: minor cosmetic changes
jdtournier Nov 16, 2022
2083b41
tensor2metric: use OptionGroups to organise options
jdtournier Nov 16, 2022
8051824
tensor2metric: performance improvements (avoid heap allocations)
jdtournier Nov 17, 2022
5101773
dwi2tensor: use abs-based testing for constrained fit
jdtournier Nov 17, 2022
ffe5891
configure: fix Qt parameter parsing for MacOS
jdtournier Nov 17, 2022
52fce59
configure: ditch -flto flag from Qt qmake parameters
jdtournier Nov 17, 2022
d41a829
dwi2tensor: relax tolerance around testing for constrained fit
jdtournier Nov 17, 2022
2bfe58a
dwi2tensor: update test data
jdtournier Nov 18, 2022
44ed1d8
Support for Qt6
bjeurissen Mar 9, 2021
e450d2c
gui: show keyboard shortcuts in menu. active for Qt >= 5.13
maxpietsch Mar 29, 2021
f0346f4
Remove expandedTo(QSize(0,0))
bjeurissen Jul 7, 2021
b9a567e
fix remaining compiler warnings when using Qt6 & C++17
jdtournier Jul 9, 2021
b1988d9
mrview: disable vertical tabs to avoid issues with Qt6
jdtournier Jul 9, 2021
42e0af4
mrview: fix tool menu handling to show currently active tools
jdtournier Jul 14, 2021
db1104a
update to latest version of JSON for Modern C++ (3.11.2)
jdtournier Nov 18, 2022
3afe443
remove all uses of deprecated std::random_shuffle()
jdtournier Nov 18, 2022
b613360
Remove all MEMALIGN macros
jdtournier Nov 18, 2022
5344631
Merge pull request #2525 from MRtrix3/fix_configure_qt_macos
jdtournier Nov 21, 2022
7d1344d
Merge pull request #2525 from MRtrix3/fix_configure_qt_macos
jdtournier Nov 21, 2022
a75b609
dwi2tensor: add small value to ADC squared when computing kurtosis co…
jdtournier Nov 22, 2022
8cba1ce
dwi2tensor: switch tests back to -frac 1e-5
jdtournier Nov 22, 2022
640443c
Use setExclusive instead of SetExclusionPolicy for backwards compatib…
bjeurissen Nov 23, 2022
85da5f3
configure: satisfy pylint
bjeurissen Nov 23, 2022
5e33f72
dwi2tensor: crop test data to avoid regions with numerical precision …
jdtournier Nov 23, 2022
5943d75
Merge branch 'dev' into cwlls_and_dkimetrics
jdtournier Nov 24, 2022
6bcfa3b
Merge branch 'dev' into dev_qt6
jdtournier Nov 24, 2022
d16bf56
dwi2tensor: try using voxel-wise tolerance for DKT based on 1/ADC² du…
jdtournier Nov 30, 2022
1786f71
Merge pull request #2520 from MRtrix3/cwlls_and_dkimetrics
bjeurissen Nov 30, 2022
f3c18c3
Merge remote-tracking branch 'github/dev' into dev_qt6_take2
jdtournier Dec 6, 2022
9934f80
Merge remote-tracking branch 'github/master' into dev
jdtournier Dec 19, 2022
eaf158b
GitHub Actions: use ubuntu-supplied version of sphinx-notfound-page
jdtournier Dec 9, 2022
a6ccbaa
update docs
MRtrixBot Dec 19, 2022
00ca7d4
Merge pull request #2538 from MRtrix3/dev_update
jdtournier Dec 19, 2022
642ce18
Merge branch 'dev' into dev_qt6
jdtournier Dec 19, 2022
3f4e266
Merge pull request #2297 from MRtrix3/dev_qt6
jdtournier Dec 19, 2022
fc79295
Merge remote-tracking branch 'github/dev' into dwi2tensor_ignore_nan
jdtournier Dec 20, 2022
e58d502
Merge pull request #2513 from MRtrix3/dwi2tensor_ignore_nan
jdtournier Dec 21, 2022
245f1d3
Merge pull request #2501 from MRtrix3/connected_components_minsize
dchristiaens Jan 3, 2023
9480f96
Merge remote-tracking branch 'github/master' into dev
jdtournier Jan 3, 2023
281b9f1
Merge pull request #2557 from MRtrix3/dev_update
jdtournier Jan 3, 2023
c328600
Fix Qt6 deprecation warning of .pos(), .x(), and .y()
bjeurissen Jan 11, 2023
0a02a84
Forgot to modify render_frame.h as well
bjeurissen Jan 19, 2023
e293cee
Still support QMouseEvent::pos() for the sake of Qt5
bjeurissen Jan 19, 2023
d7d0c72
Merge remote-tracking branch 'origin/master' into dev_update
bjeurissen Jan 19, 2023
2e7b8ae
Merge pull request #2571 from MRtrix3/dev_update
jdtournier Jan 19, 2023
6a127ce
Merge pull request #2572 from MRtrix3/dev
bjeurissen Jan 20, 2023
d4ff95b
Merge pull request #2562 from MRtrix3/qt6_warnings_pos
bjeurissen Jan 20, 2023
d34e5cc
dwi2mask: New algorithm synthstrip
Ruobing-Chen Jan 31, 2023
1bc3bd0
Docs update for addition of dwi2mask synthstrip
Ruobing-Chen Jan 31, 2023
a48984d
Minor change of codes and documentation.
Ruobing-Chen Feb 1, 2023
b2301fc
Minor changes to the codes.
Ruobing-Chen Feb 1, 2023
97ddc48
Small modification to the file.
Ruobing-Chen Feb 1, 2023
be5c7a5
mrview: change option name -orientationlabel to avoid conflict with -…
jdtournier Jan 19, 2023
3a8f3d9
Docs update for mrview_rename_orientationlabel_option
Lestropie Jan 19, 2023
c823b5a
Merge pull request #2582 from MRtrix3/mrview_rename_orientationlabel_…
Lestropie Feb 6, 2023
9ebf684
dwi2mask synthstrip: Refinements
Lestropie Feb 7, 2023
e3c43b9
dwi2mask synthstrip: Fix accessing command-line options
Lestropie Feb 7, 2023
3a4c2b1
Add tests for dwi2mask synthstrip
Lestropie Feb 7, 2023
f910280
Modification to the code and reference.
Ruobing-Chen Mar 7, 2023
687db6e
dwi2mask synthstrip: Add reference.\n\n According to API, added citat…
Ruobing-Chen Mar 8, 2023
6e2e62d
dwi2mask synthstrip: Fix citation
Lestropie Mar 13, 2023
ff36f11
Merge pull request #2583 from Ruobing-Chen/dwi2mask_synthstrip
Lestropie Mar 13, 2023
9106838
dwi2mask consensus: Fix user omission of b02template
Lestropie Mar 13, 2023
97cc2b6
dwi2mask: added algorithm that iteratively performs masking, RF estim…
Arshiyasan Dec 28, 2022
2282ebe
Added additional algorithms
Arshiyasan Feb 20, 2023
f592d89
New command dwibiasnormmask
Arshiyasan Mar 15, 2023
78a3154
dwibiasnormmask: Integrate SynthStrip
Arshiyasan Feb 20, 2023
3fcd8cb
Docs: Generate for dwibiasnormmask and mtnorm algorithms
Arshiyasan Mar 15, 2023
0b82d20
Some tests to check dwibiasnormmask, no new files
Arshiyasan Feb 21, 2023
fd3ba55
Large modifications to dwibiasnormmask
Lestropie Feb 22, 2023
a027a60
dwibiasnormmask: Fix string formatting error
Arshiyasan Mar 15, 2023
4803f03
dwibiasnormmask: New option -output_scale
Lestropie Feb 25, 2023
df6732f
Initial revisions of "mtnorm" Python algorithms
Lestropie Feb 25, 2023
4903e86
dwibiasnormmask & "mtnorm" algorithms: Add references
Lestropie Feb 26, 2023
73704d6
Docs: Resolve dwi2mask mtnorm and synthstrip
Lestropie Mar 16, 2023
81819d4
dwinormalse: Rename "individual" algorithm to "manual"
Lestropie Mar 16, 2023
cb02298
dwibiasnormmask: New config file option "DwibiasnormmaskMaskAlgorithm"
Lestropie Mar 16, 2023
1b34d36
Docs: Global intensity normalisation: Reflect command renaming
Lestropie Mar 17, 2023
3def23d
dwi2mask: Centralise definition of default algorithm
Lestropie Mar 21, 2023
854761f
Docs: Update DWI masking page
Lestropie Mar 21, 2023
9935e12
dwi2mask hdbet: New option -nogpu
Lestropie Mar 22, 2023
ac7765b
dwi2mask hdbet: Fix pylint warnings
Lestropie Mar 31, 2023
3bddf79
Merge pull request #2615 from MRtrix3/dwi2mask_hdbet_nogpu
Lestropie Mar 31, 2023
9e2a374
Merge pull request #2599 from MRtrix3/dwi2mask_consensus_fix
Lestropie Mar 31, 2023
478f0e4
Copyright headers for mtnormalise-related Python scripts
Lestropie Apr 3, 2023
06b4c40
dwibiasnormmask: Multiple fixes
Lestropie Apr 3, 2023
19698dd
dwibiasnormmask: Fix testing and add test data
Lestropie Apr 3, 2023
1514738
dwinormalise group: Reflect renaming of dwinormalise individual -> ma…
Lestropie Apr 3, 2023
79b358c
dwinormalise mtnorm: Fix operation of -reference option
Lestropie Apr 3, 2023
528d0c5
New tests and data for mtnormalise-related Python script algorithms
Lestropie Apr 3, 2023
a5c6081
First draft of compiler caching support
daljit46 May 2, 2023
4d0beb1
Add CI trigger for pushing in this branch
daljit46 May 2, 2023
b1c762f
Fix spacing
daljit46 May 2, 2023
1150b74
Disable CI push trigger
daljit46 May 3, 2023
8766b37
Enable MacOS cached build
daljit46 May 3, 2023
4513a68
Set COMPILER_PREFIX using env
daljit46 May 3, 2023
376b511
Run sccache stats after building
daljit46 May 3, 2023
5b6f093
Rename COMPILER_PREFIX to CXX_COMPILER_LAUNCHER
daljit46 May 3, 2023
a93204f
Don't use .keys() to check env variable
daljit46 May 3, 2023
ca4b1c9
Add sscache support for MSYS2
daljit46 May 5, 2023
46f1cde
Disable -Werror
daljit46 May 5, 2023
4a7a420
Change sccahe cache path
daljit46 May 5, 2023
c62df0a
Fix key parsing for cache
daljit46 May 5, 2023
c3a966f
Add git to the list of installation packages
daljit46 May 5, 2023
a87bdc6
Change cache dir
daljit46 May 5, 2023
ef00e2a
Fix cache dire creation
daljit46 May 5, 2023
6ad5f02
Use sccache from action in msys2
daljit46 May 9, 2023
ba83b4f
Fix CXX_COMPILER_LAUNCHER setting
daljit46 May 9, 2023
e7add3b
Don't checkut dev branch in msys2 workflow
daljit46 May 9, 2023
26fcece
Remove trailing whitespace
daljit46 May 9, 2023
4f1f520
Add workflow to wipe all cache
daljit46 May 10, 2023
6c3ea06
Explicitly set sccache directory
daljit46 May 10, 2023
8162a26
Convert sccache path using cygpath
daljit46 May 10, 2023
6f111a8
Fix compilation warnings on GCC13
Lestropie May 10, 2023
449525e
Potential fix for GCC12 warning on MSYS2
Lestropie May 10, 2023
992ebef
Merge pull request #2631 from MRtrix3/ci_msys2_gcc12_fix
Lestropie May 10, 2023
f23c9aa
Potential fix for GCC12 warning on MSYS2
Lestropie May 10, 2023
35eac69
Install bc and diffutils for msys2 workflow
daljit46 May 10, 2023
e66e2a7
Enable -Werror for msys2 workflow
daljit46 May 10, 2023
bf1753b
Fix typo
daljit46 May 10, 2023
bcd0747
Fix syntax for wipecache workflow
daljit46 May 10, 2023
4a81bab
Disable warnings on msys2 workflow
daljit46 May 10, 2023
7179f3d
Fix trigger name in wipe cache workflow
daljit46 May 17, 2023
9ee01f9
Use default installation for msys2 CI checks
daljit46 May 18, 2023
949d3e8
Fix maybe-uninitialized warning in internalenergy.cpp
daljit46 May 15, 2023
19ff8f5
Fix and polish computeNormals in tckconvert
daljit46 May 16, 2023
35168df
Add default values for ParticleEnd, to be sure.
dchristiaens May 17, 2023
618728a
Fix two unused-but-set-variable warnings in clang.
dchristiaens May 17, 2023
2415d43
Resolution of more GCC13 warnings
Lestropie May 18, 2023
8f29d60
throw std::logic_error if lmax negative
daljit46 May 23, 2023
a870c55
Merge pull request #2632 from MRtrix3/gcc13_warnings
daljit46 May 24, 2023
602b894
Mesh::load_vtk() always open files in binary mode
jdtournier Jun 13, 2023
445fc7c
Merge pull request #2654 from MRtrix3/mesh_vtk_binary_handling
jdtournier Jun 15, 2023
7d867f3
Merge branch 'dev' into compilercaching
daljit46 Jun 16, 2023
e4c1f88
Remove redundant call sccache stats
daljit46 Jun 16, 2023
584cfe2
Merge pull request #2624 from MRtrix3/compilercaching
jdtournier Jun 16, 2023
86d6d89
Add support for multiple arguments to CXX_COMPILER_LAUNCHER
daljit46 Jun 21, 2023
c79b0b1
Merge pull request #2604 from MRtrix3/dwibiasnormmask
Lestropie Jun 27, 2023
c34d09b
Merge pull request #2659 from MRtrix3/cxxlauncher
jdtournier Jun 28, 2023
1aefe89
Merge branch 'master' into master_to_dev
Lestropie Jul 6, 2023
385d590
Merge pull request #2673 from MRtrix3/master_to_dev
Lestropie Jul 6, 2023
0e0224f
Population_template: Terminal tweaks
Lestropie Jul 13, 2023
5a3a8bf
Merge pull request #2680 from MRtrix3/population_template_tweaks
Lestropie Jul 14, 2023
80a0134
Merge branch 'dev' into npy
Lestropie Jul 14, 2023
a3be07c
Resolve compilation of NPY additions against latest dev branch
Lestropie Jul 14, 2023
25c2b74
NPY support: Remove unnecessary variable ghosting
Lestropie Jul 14, 2023
08836f5
Update test commands to reflect 6e1562f
Lestropie Jul 14, 2023
d8ab1c5
NPY: Fixes on revisiting before initial merge
Lestropie Jul 15, 2023
fc18ea2
Add unit tests for NPY handling
Lestropie Jul 15, 2023
b4c5e89
NPY support: Changes to pass CI tests
Lestropie Jul 15, 2023
749eb2c
Neaten header include for half-precision floating-point
Lestropie Jul 16, 2023
82ec7ea
Merge branch 'dev' into fixelconnectivity
Lestropie Jul 18, 2023
be14579
Resolving compilation after merging dev into fixelconnectivity
Lestropie Jul 18, 2023
ab8bf84
fixelconnectivity": New tests and test data to reflect enhancements
Lestropie Jul 18, 2023
cdc1c3b
Fixel::Matrix: Neaten by using typedefs
Lestropie Jul 18, 2023
86eb1ea
Merge pull request #2273 from MRtrix3/fixelconnectivity
Lestropie Jul 19, 2023
088ca97
core/half.h: Modifications for compilation on Mac
Lestropie Jul 20, 2023
9a6f0bb
Math::Stats:: Introduce typedef index_type
Lestropie Jul 21, 2023
45ada4f
Fix Math::Stats::Shuffler::generate_all_signflips()
Lestropie Jul 21, 2023
b5849d0
Math::Stats::FWE: Fix signed / unsigned integer comparisons
Lestropie Jul 21, 2023
864c3da
CI: Alternative solution to installing numpy on Mac
Lestropie Aug 5, 2023
8b22c75
Docs: Include float16 in -datatype choices for various commands
Lestropie Aug 5, 2023
361ea9e
CI: Bypass NPY unit tests on Windows
Lestropie Aug 8, 2023
fc91c33
Merge branch 'dev' into npy
Lestropie Aug 8, 2023
598b076
Merge pull request #2437 from MRtrix3/npy
Lestropie Aug 8, 2023
514b0c0
Add pre-commit configuration file
daljit46 Aug 17, 2023
8e13444
Add clang-format configuration file
daljit46 Aug 17, 2023
45fc06b
Apply formatting for C++ using clang-format
MRtrixBot Aug 17, 2023
9aef86e
Add secondary CI check for clang-format
daljit46 Aug 17, 2023
cb76c92
Fix missing/broken include headers
daljit46 Aug 17, 2023
0600c1a
Make update_copyright compatible with new formatting
daljit46 Jun 21, 2023
c81b970
Fix generation of environment variables
daljit46 Jun 21, 2023
319c464
added some patterns to gitignore
tclose Aug 10, 2023
2e024ee
added MRTRIX_PARSE_ONLY environment variable to change behaviour so t…
tclose Aug 10, 2023
329cd09
Added parse to int of PARSE_ONLY env var
tclose Aug 11, 2023
f3ef857
added MR namespace to internal method calls in logging macros
tclose Aug 13, 2023
8f78456
added warning message to indicate that command is
tclose Aug 13, 2023
568e0de
removed argv[0] from parse_only warning message
tclose Aug 13, 2023
79044b0
added MRTRIX_PARSE_ONLY to list of environment variables
tclose Aug 18, 2023
63211fb
Fix generation of list of config file options
daljit46 Aug 20, 2023
c033eb2
renamed MRTRIX_PARSE_ONLY to MRTRIX_CLI_PARSE_ONLY
tclose Aug 22, 2023
449c596
implemented MRTRIX_CLI_PARSE_ONLY for python commands
tclose Aug 22, 2023
d5f3dd8
reordered CLI_PARSE_ONLY env var in docs reference
tclose Aug 22, 2023
72a368d
Add doc for using clang-format hook
daljit46 Aug 23, 2023
4463bc2
Add script to run clang-format on all C++ files
daljit46 Aug 18, 2023
1e65a64
.git-blame-ignore-devs: Formatting with clang-format
daljit46 Aug 21, 2023
5b0ec65
Merge pull request #2652 from MRtrix3/clangformat
daljit46 Aug 24, 2023
c70cec7
removed generated files from pydra branch
tclose Aug 25, 2023
fd2dfa4
WARN -> INFO for MRTRIX_CLI_PARSE_ONLY
tclose Aug 25, 2023
c7d8f52
relax value for MRTRIX_CLI_PARSE_ONLY to include yes/no in app.py
tclose Aug 25, 2023
486041e
convert parse_only to bool from int
tclose Aug 25, 2023
6ec824d
Merge branch 'dev' into quit-after-usage
tclose Aug 25, 2023
1daa867
made reference to report_to_user_func from logging macros reference f…
tclose Aug 25, 2023
25fd0da
fixed up syntax error and change info() to console()
tclose Aug 25, 2023
349d27f
updated env var description to note that PARSE_ONLY doesn't work for …
tclose Aug 25, 2023
b05e55f
clang formatted command.h
tclose Aug 25, 2023
2afcc3a
Switch CLI_PARSE_ONLY message to CONSOLE
tclose Aug 25, 2023
93d17e2
added in quote to cli_parse_only message
tclose Aug 25, 2023
d7fedca
Merge pull request #2694 from tclose/quit-after-usage
Lestropie Aug 25, 2023
86ab4ba
Remove files src/stats/permstack.*
Lestropie Aug 30, 2023
df7d7d9
Use new CI action for clang-format
daljit46 Sep 1, 2023
1ec2e31
Merge pull request #2706 from MRtrix3/newclangformatci
Lestropie Sep 3, 2023
509479c
mrview: fix crash due to change in order of includes
jdtournier Sep 14, 2023
09d5ca3
Merge pull request #2719 from MRtrix3/fix_mrview_crash_after_clang_fo…
jdtournier Sep 14, 2023
168ddc3
remove TIFF support from core library
jdtournier Sep 18, 2023
761030f
remove remaining mentions of libtiff from docs and other files
jdtournier Sep 19, 2023
8672d5b
Merge pull request #2720 from MRtrix3/remove_tiff_support
jdtournier Oct 13, 2023
22e8200
Replace MR::unpack with std::apply
daljit46 Jan 30, 2024
50be1a8
Reimplement MR::apply using std::apply
daljit46 Jan 30, 2024
c8dcc5d
Rename MR::apply to MR::apply_for_each
daljit46 Feb 1, 2024
a88e5e2
Update copyright to 2024 on dev
MRtrixBot Jan 11, 2024
39240ad
Replace MR::vector and MR::deque with std types
MRtrixBot Nov 30, 2023
0afe37b
Replace MR::make_unique/shared with std::make_unique/shared
MRtrixBot Nov 30, 2023
ada1e17
Remove syntax checking for make_shared and vector
daljit46 Nov 30, 2023
eb3000b
Replace vector with array in axes_on_write
daljit46 Jan 9, 2024
df409ee
Fix memory leaks related to PNG handling
Lestropie Jan 11, 2024
0240f0d
PNG: Use smart pointer on write
Lestropie Jan 17, 2024
cae27a9
Fix memory leak in FFT1D
daljit46 Nov 29, 2023
1f0a3ae
Update fft.h following suggestions from clang-tidy
jdtournier Nov 29, 2023
b1d05c7
Fix memory leak in sh2peaks
daljit46 Nov 28, 2023
4f3836b
mrmath: Fix unfreed memory
Lestropie Jan 23, 2024
72e03bb
Fix mrview compilation through conflict resolution
Lestropie Feb 21, 2024
fed589b
mrmath: Fix compilation
Lestropie Feb 21, 2024
a41514d
run_tests: Write to testing/log/*.log
Lestropie Feb 21, 2024
4a51096
core/misc/voxel2vector.h: Fix compilation
Lestropie Feb 21, 2024
c6ab324
configure: Enforce C++17
Lestropie Feb 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Language: Cpp
BasedOnStyle: LLVM
BinPackArguments: false
BinPackParameters: false
PackConstructorInitializers: NextLine
ColumnLimit: 120
5 changes: 5 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,8 @@ aad44d847ac48d02bb7f8badf801dbfaa0ccdac0
#Author: MRtrixBot <[email protected]>
#Date: Tue Jan 3 13:42:58 2023 +0100
# Update Copyright notice in command docs

45fc06bdf687584bf4d55140720e84c5ef517bf0
#Author: MRtrixBot <[email protected]>
#Date: Thu, 17 Aug 2023 15:36:14 +0100
# Apply formatting for C++ using clang-format
128 changes: 77 additions & 51 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,20 @@ jobs:
env:
CFLAGS: -Werror
QT_SELECT: qt5
SCCACHE_GHA_ENABLED: "true"
SCCACHE_CACHE_SIZE: "2G"
CXX_COMPILER_LAUNCHER: sccache

steps:
- uses: actions/checkout@v1

- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install clang libqt5opengl5-dev libqt5svg5-dev libglvnd-dev libeigen3-dev zlib1g-dev libfftw3-dev
sudo apt-get install clang libqt5opengl5-dev libqt5svg5-dev libglvnd-dev libeigen3-dev zlib1g-dev libfftw3-dev python3-numpy

- name: Run sccache-cache
uses: mozilla-actions/[email protected]

- name: configure
run: ./configure -assert || { cat configure.log; false; }
Expand All @@ -36,10 +42,10 @@ jobs:
run: ./build -nowarnings -persistent -nopaginate || { cat build.log; false; }

- name: unit tests
run: ./run_tests units || { cat testing_units.log; false; }
run: ./run_tests units || { cat testing/log/units.log; false; }

- name: binary tests
run: ./run_tests binaries || { cat testing_binaries.log; false; }
run: ./run_tests binaries || { cat testing/log/binaries.log; false; }



Expand All @@ -54,14 +60,20 @@ jobs:
CXX: g++-9
CFLAGS: -Werror
QT_SELECT: qt5
SCCACHE_GHA_ENABLED: "true"
SCCACHE_CACHE_SIZE: "2G"
CXX_COMPILER_LAUNCHER: sccache

steps:
- uses: actions/checkout@v1

- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install g++-9 libqt5opengl5-dev libqt5svg5-dev libglvnd-dev libeigen3-dev zlib1g-dev libfftw3-dev
sudo apt-get install g++-9 libqt5opengl5-dev libqt5svg5-dev libglvnd-dev libeigen3-dev zlib1g-dev libfftw3-dev

- name: Run sccache-cache
uses: mozilla-actions/[email protected]

- name: configure
run: ./configure -nooptim || { cat configure.log; false; }
Expand All @@ -70,17 +82,16 @@ jobs:
run: ./build -nowarnings -persistent -nopaginate || { cat build.log; false; }






macos-build:

runs-on: macos-latest

env:
CFLAGS: -Werror
PACKAGES: "qt5 eigen pkg-config fftw libpng"
SCCACHE_GHA_ENABLED: "true"
SCCACHE_CACHE_SIZE: "2G"
CXX_COMPILER_LAUNCHER: sccache

steps:
- uses: actions/checkout@v1
Expand All @@ -89,19 +100,23 @@ jobs:
run: |
brew update || brew update # https://github.com/Homebrew/brew/issues/2491#issuecomment-294207661
brew install $PACKAGES || brew install $PACKAGES
/usr/bin/python3 -m ensurepip && /usr/bin/pip3 install numpy
brew link --force qt5

- name: Run sccache-cache
uses: mozilla-actions/[email protected]

- name: configure
run: ./configure -assert || { cat configure.log; false; }

- name: build
run: ./build -nowarnings -persistent -nopaginate || { cat build.log; false; }

- name: unit tests
run: ./run_tests units || { cat testing_units.log; false; }
run: ./run_tests units || { cat testing/log/units.log; false; }

- name: binary tests
run: ./run_tests binaries || { cat testing_binaries.log; false; }
run: ./run_tests binaries || { cat testing/log/binaries.log; false; }

- name: check command documentation
run: ./docs/generate_user_docs.sh && git diff --exit-code docs/
Expand All @@ -113,40 +128,59 @@ jobs:
windows-build:

runs-on: windows-latest
defaults:
run:
shell: msys2 {0}

env:
CFLAGS: -Werror
MSYSTEM: MINGW64
MSYSCON: defterm
# CFLAGS: -Werror
CHERE_INVOKING: enabled_from_arguments
MSYS2_NOSTART: yes
MINGW_PACKAGE_PREFIX: mingw-w64-ucrt-x86_64
SCCACHE_GHA_ENABLED: "true"
SCCACHE_CACHE_SIZE: "2G"
SCCACHE_DIR: ${{ github.workspace }}/.sccache

steps:
- uses: actions/checkout@v3

- uses: actions/checkout@v1
- uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
release: false
install: |
git
python
${{env.MINGW_PACKAGE_PREFIX}}-bc
${{env.MINGW_PACKAGE_PREFIX}}-diffutils
${{env.MINGW_PACKAGE_PREFIX}}-eigen3
${{env.MINGW_PACKAGE_PREFIX}}-fftw
${{env.MINGW_PACKAGE_PREFIX}}-gcc
${{env.MINGW_PACKAGE_PREFIX}}-pkg-config
${{env.MINGW_PACKAGE_PREFIX}}-qt5-base
${{env.MINGW_PACKAGE_PREFIX}}-qt5-svg
${{env.MINGW_PACKAGE_PREFIX}}-zlib

- name: fetch and install MSYS2
run: bash -c 'curl -sL https://github.com/MRtrix3/MinGW/releases/download/1.0/msys2.tar.{0,1} | tar xf -'
- name: Run sccache-cache
uses: mozilla-actions/[email protected]

- name: run qtbinpatcher
shell: cmd
run: msys64\msys2_shell.cmd -c "qtbinpatcher --qt-dir=$(dirname $(which qmake))"
- name: export sccache to msys2 shell
run: |
export SCCACHE_UNIX_PATH=$(cygpath -u "$SCCACHE_PATH")
echo "SCCACHE_UNIX_PATH=$SCCACHE_UNIX_PATH" >> $GITHUB_ENV

- name: configure
shell: cmd
run: msys64\msys2_shell.cmd -c "./configure -assert || { cat configure.log; false; }"
- name: configure
run: |
export CXX_COMPILER_LAUNCHER=${{env.SCCACHE_UNIX_PATH}}
./configure -assert || { cat configure.log; false; }

- name: build
shell: cmd
run: msys64\msys2_shell.cmd -c "./build -nowarnings -persistent -nopaginate || { cat build.log; false; }"
- name: build
run: ./build -nowarnings -persistent -nopaginate || { cat build.log; false; }

- name: unit tests
shell: cmd
run: msys64\msys2_shell.cmd -c "./run_tests units || { cat testing_units.log; false; }"
- name: unit tests
run: ./run_tests units || { cat testing/log/units.log; false; }

- name: binary tests
shell: cmd
run: msys64\msys2_shell.cmd -c "./run_tests binaries || { cat testing_binaries.log; false; }"
- name: binary tests
run: ./run_tests binaries || { cat testing/log/binaries.log; false; }



Expand All @@ -164,35 +198,27 @@ jobs:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install pylint python3-sphinx sphinx-rtd-theme-common python3-recommonmark python3-sphinx-rtd-theme python3-pip
pip3 install sphinx-notfound-page

sudo apt-get install pylint python3-sphinx sphinx-rtd-theme-common python3-recommonmark python3-sphinx-rtd-theme python3-pip python3-sphinx-notfound-page

- name: check syntax
run: ./check_syntax || { cat syntax.log; false; }

- name: pylint (Python 3)
- name: pylint
run: |
echo "__version__ = 'pylint testing' #pylint: disable=unused-variable" > ./lib/mrtrix3/_version.py
PYTHON=python3 ./run_pylint || { cat pylint.log; false; }
./run_pylint || { cat pylint.log; false; }

- name: check copyright headers
run: ./update_copyright && git diff --exit-code

- name: check building of documentation
run: python3 -m sphinx -n -N -W -w sphinx.log docs/ tmp/

- name: install build dependencies
run: sudo apt-get install python2 clang libqt5opengl5-dev libqt5svg5-dev libglvnd-dev libeigen3-dev zlib1g-dev libfftw3-dev

- name: check configure with Python 2
run: python2 ./configure || { cat configure.log; false; }

- name: check build with Python 2
run: python2 ./build -dryrun || { cat build.log; false; }

- name: check configure with Python 3
run: python3 ./configure || { cat configure.log; false; }

- name: check build with Python 3
run: python3 ./build -dryrun || { cat build.log; false; }
- name: clang-format check
uses: DoozyX/[email protected]
with:
source: '.'
extensions: 'h,cpp'
clangFormatVersion: 16
# Ignore third party headers
exclude: './core/file/json.h ./core/file/nifti1.h ./core/file/nifti2.h'
30 changes: 30 additions & 0 deletions .github/workflows/wipecache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Wipe Github Actions cache
on: workflow_dispatch

jobs:
cleanup:
permissions: write-all
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3

- name: Cleanup
run: |
gh extension install actions/gh-actions-cache

REPO=${{ github.repository }}

echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO | cut -f 1 )

## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ build.*
/dev/
/bin/
/tmp/
/compiled_docs/
/.vscode/
.cproject
.idea
Expand All @@ -50,8 +51,12 @@ build.*
testing.log
testing/build.log
testing/bin/
testing/log/
testing/src/project_version.cpp
testing/src/project_version.h
.__tmp.log
.check_syntax.tmp
.check_syntax2.tmp
*.venv
__pycache__
.DS_Store
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
default_language_version:
python: python3
repos:
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v16.0.4
hooks:
- id: clang-format
name: clang-format
types_or: [c++]
language: python
27 changes: 27 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,33 @@ A few explicit notes on such:
introduce Windows-style newline characters ("`CR LF`" / "`\r\n`")
will need to be edited accordingly.

- In C++, we use [clang-format](https://clang.llvm.org/docs/ClangFormat.html) 16
to ensure that all C++ code is formatted using the same conventions.
To comply with this requirement, we recommend that you install a local git hook
using [pre-commit](https://pre-commit.com/):

- Install `pre-commit` via `pip install pre-commit` (or via your OS package manager).

- Run `pre-commit install` in the source directory of MRtrix.
NOTE: you may need to add the pip scripts folder to your `PATH`
(you can check where pip has installed the package using `pip show pre-commit`).

This procedure will install a local git hook to ensure that all of your commits
are correctly formatted. If this isn't the case, the commits will fail and an
automatic formatting of the staged changes will be applied. You will then have
to commit those changes again.

Alternatively, you may wish to configure your editor to automatically format
your code using `clang-format`. We also provide a Python script in the top level directory
called `clang-format-all` that can format all C++ code in the repository. You can run
this to format your code before committing it. The script also allows you to
specify a custom `clang-format` binary by using the `--executable` flag.

NOTE: If you are using a version of `clang-format` that is different from the one
used by the CI (currently version 16), your code may be formatted differently and thus
fail our CI tests. We recommend that you use the same version of `clang-format` as the
CI to avoid this issue.

- In Python, variable / class / module names are enforced through
`pylint`. Script "`run_pylint`" in the *MRtrix3* root directory
will test any code modifications against these expectations.
Expand Down
2 changes: 0 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ RUN apt-get -qq update \
libpng-dev \
libqt5opengl5-dev \
libqt5svg5-dev \
libtiff5-dev \
qt5-default \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*
Expand Down Expand Up @@ -77,7 +76,6 @@ RUN apt-get -qq update \
libqt5svg5 \
libqt5widgets5 \
libquadmath0 \
libtiff5 \
python3-distutils \
&& rm -rf /var/lib/apt/lists/*

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ You can address all *MRtrix3*-related queries there, using your GitHub or Google
## Quick install

1. Install dependencies by whichever means your system uses.
These include: Python (>=2.6), a C++ compiler with full C++11 support (`g++` 4.9 or later, `clang++`),
Eigen (>=3.2.8), zlib, OpenGL (>=3.3), and Qt (>=4.8, or at least 5.1 on MacOSX).
These include: Python3, a C++ compiler with full C++11 support (`g++` 4.9 or later, `clang++`),
Eigen (>=3.2.8), zlib, OpenGL (>=3.3), and Qt (>=5.5).

2. Clone Git repository and compile:

Expand Down
6 changes: 3 additions & 3 deletions Singularity
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ Include: apt
apt-get update && apt-get upgrade -y

# Runtime requirements
apt-get update && apt-get install -y --no-install-recommends dbus dc less libfftw3-bin liblapack3 libpng16-16 libqt5network5 libqt5widgets5 libtiff5 python3 python3-distutils zlib1g
apt-get update && apt-get install -y --no-install-recommends dbus dc less libfftw3-bin liblapack3 libpng16-16 libqt5network5 libqt5widgets5 python3 python3-distutils zlib1g

# Build requirements
apt-get update && apt-get install -y --no-install-recommends build-essential ca-certificates curl git libeigen3-dev libfftw3-dev libgl1-mesa-dev libpng-dev libqt5opengl5-dev libqt5svg5-dev libtiff5-dev qt5-qmake qtbase5-dev-tools wget zlib1g-dev
apt-get update && apt-get install -y --no-install-recommends build-essential ca-certificates curl git libeigen3-dev libfftw3-dev libgl1-mesa-dev libpng-dev libqt5opengl5-dev libqt5svg5-dev qt5-qmake qtbase5-dev-tools wget zlib1g-dev

# Neuroimaging software / data dependencies
# Download minified ART ACPCdetect (V2.0).
Expand All @@ -62,7 +62,7 @@ Include: apt
cd /opt/mrtrix3 && ./configure && ./build -persistent -nopaginate && rm -rf testing/ tmp/ && cd ../../

# apt cleanup to recover as much space as possible
apt-get remove -y build-essential ca-certificates curl git libeigen3-dev libfftw3-dev libgl1-mesa-dev libpng-dev libqt5opengl5-dev libqt5svg5-dev libtiff5-dev qt5-qmake qtbase5-dev-tools wget zlib1g-dev && apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/*
apt-get remove -y build-essential ca-certificates curl git libeigen3-dev libfftw3-dev libgl1-mesa-dev libpng-dev libqt5opengl5-dev libqt5svg5-dev qt5-qmake qtbase5-dev-tools wget zlib1g-dev && apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/*

# Configure DBus to facilitate mrview execution
dbus-uuidgen
Expand Down
Loading