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

update metaDataTags handling, saving as a group of datasets #2

Closed
wants to merge 1 commit into from

Conversation

fangq
Copy link

@fangq fangq commented Sep 17, 2019

hi Jay, I spent the afternoon reading your Snirf class source code, and made some changes to the metaDataTags handling.

The updated metaDataTags class now uses a struct to handle the key/value pairs. It also has a Set()/Get() method.

Handling metaDataTags entirely as a struct instead of per-item read/write makes file access much faster. It also supports different data types per subitem.

@dboas
Copy link
Collaborator

dboas commented Oct 30, 2019

@jayd1860 and @fangq , what is the status of this pull request? Is it relevant after the discussions this past week?

@fangq
Copy link
Author

fangq commented Oct 30, 2019

if Jay had already implemented his own struct-based metaDataTags, then, he can close this one.

otherwise, he can use my code by doing a manual merge. the patch is not that long, so should be quite easy to merge.

@jayd1860
Copy link
Collaborator

Homer3 is SNIRF compliant as far as I know but it would be good to test by someone other then me. I added the SNIRF files produced by Homer3 to fnirs/snirf-samples and sent a pull request. If Qianqian's reader can load them successfully then Homer3 is snirf-compliant.

@jayd1860
Copy link
Collaborator

I can close this now but if Qianqian has a reader that can load successfully the new sample files in the pull request that would give me more confidence in Homer3 before closing this issue.

@fangq
Copy link
Author

fangq commented Oct 30, 2019

hi @jayd1860 and @dboas, I have accepted the sample data, and updated the sample submodule to snirf. you see the samples here

https://github.com/fNIRS/snirf

I confirm that I can load your sample files, I found two minor things (previously also bugged me when I tested my easyh5 toolbox):

  1. please make your formatVersion to be 1.0, instead of 1.10. Our specification only defines 1.0 SNIRF format.

  2. the strings variables I loaded from your sample files are all transposed - for example, for formatVersion: '1.10', it shows as

>> ss=loadsnirf('neuro_run01.snirf')
ss = 
    formatVersion: [5x1 char]
             nirs: [1x1 struct]
>> ss.formatVersion
ans =
1
.
1
0

this is because hdf5 uses row-major order and matlab uses column-major order. you will have to transpose the data before saving.

https://github.com/fangq/easyh5/blob/master/saveh5.m#L236

you will have to fliplr(size(data)) when creating the H5 space option

  1. this is another annoyance I found with hdf5 - when saving datasets/groups,if you don't do anything, all subfields will be sorted in alphabetic order. this can be a problem if you prefer certain appearance order, say /nirs/data2 to appear before /nirs/data10, for example. To stored/load data in the "creation order", you need extra stuff - I figured it out for my toolbox, please see the patch in this issue I created

https://github.com/fangq/easyh5/issues/1

  • basically, when saving the data, you need to add the below options for a group

fangq/easyh5@66de6e2#diff-4203ac0d8ad7bad17140a6aa360bd313R108-R109

when loading the data, you need to use link iterator (H5L.iterate) to read the data in creation order first

fangq/easyh5@b09c80f#diff-4bbbb3f86d8c5c3f0a4328d9ea208796R86-R92

this is not critical, but just in case you are interested in adding such feature

  1. another "good to have" feature is data compression. we mentioned about it in the spec, here is my patch to support compression in easyh5

https://github.com/fangq/easyh5/issues/2

@fangq
Copy link
Author

fangq commented Oct 30, 2019

@jayd1860, on the other hand, I uploaded an empty dataset (minimum snirf file) that I created using my functions

snf=snirfcreate
savesnirf(snf,'minimum_example.snirf')

I placed it in this folder
https://github.com/fNIRS/snirf-samples/tree/master/test

please let me know if you can read it

@jayd1860
Copy link
Collaborator

Qianqian,

Thanks for the great feedback. I made the change of formatVersion to 1.0. Also I was able to load mininal test file successfully.

Based on your minimal test file I made the defaults for metaDataTags to agree with it.

I made a pull request for the new sample files.

My thoughts regarding the difference in storage - row-major vs column-major - between matlab and HDF5 is that its kind of arbitrary which side an application compensates for this difference - the saving or the loading side. Homer3 SNIRF compensates for it when loading (now it should either row or column). It seems to me that it's up to each developer to know about this difference and to add code that accounts for it either way, since there's no universal standard order between various applications.

Regarding subfields order being sorted by HDF5, that is annoying and I plan to deal with this and the compression (yes would be a great to have) and performance issues after the fnirs course.

@dboas
Copy link
Collaborator

dboas commented Oct 30, 2019 via email

@fangq fangq closed this Oct 30, 2019
@fangq
Copy link
Author

fangq commented Oct 30, 2019

@jayd1860, I updated the sample data.

I also noticed a small problem: in either of our sample files, the metaDataTags.MeasurementDate and Time did not agree with the format that I required in the latest snirf commit

https://github.com/fNIRS/snirf/blob/master/snirf_specification.md#nirsimetadatatags

so, I just updated my parser/sample files to use the ISO8601 format, see

fangq/jsnirf@e52d47a
fNIRS/snirf-samples@606e56e

feel free to update your sample data again. Otherwise, I am closing this ticket (the transpose issue - do it in saving or loading may be a future issue)

@jayd1860
Copy link
Collaborator

Ah ok. Good catch. I'll do the same.

jayd1860 added a commit that referenced this pull request Jan 20, 2022
…nd Utils libraries. Submodules too difficult to work with and bad git support (#107)

* -- Update DataTree reference pointer

* -- Update Utils submodule reference to latest

* Remove submodules: too hard to work with, not enough support from git

* Remove submodules: too hard to work with, not enough support from git

* Merge in change to get rid of submodule references which are more trouble than they are worth (#2)

* v1.32.4

-- Fix some bugs in path utils functions
-- More improvements in build/installation process

* Update probe class to save and load 3D landmarks

* Update probe class to work with old SD files

* v1.32.4

-- Copy versoin number for Homer3 from AV

* -- Fix small bug in setpaths(0) paths removal

* CCA shrinkage back on

* Update hmrR_PreprocessIntensity_Negative.m

quick fix on negative value check

* v1.32.5

-- Fix issue with tCCA user functions not being loaded into function registry
-- Set data tree structure display in MainGUI to include the group name display unconditionally. In some instances the group name did not show if the all subjects had only one run.

* Update hmrR_PreprocessIntensity_Negative.m

Function to include zero values.

* v1.32.5

-- Sync DataTree and Utils with AtlasViewer

* v1.32.7

-- Add more robust error checking to exclude .snirf files that can't load DataClass.m
-- Add better error checking to DataClass and MeasListClass

* Create shared code and submodule references to DataTree and Utils (#74)

* -- Move DataTree and some Utils functions to independent submodules used by AtlasViewer and Homer3

* Add config file to DataTree and ability to load mutiple config files to config utility

Add config file to DataTree and ability to load mutiple config files to config utility

* Relink submodule references from jayd1860 to BUNPC

* Fix submodule download not working on linux when initializing repo with setpaths. Needed to disable git certificate verification when executing 'git submodule update' from matlab

* -- Add tool to setpaths to be able to download submodules without having git installed.

* -- Change code to setpaths not to initialize submodules every toime it is run. Add option to 'update' submodules to get latest changes.

* ISSUE_TEMPLATE folder (#77)

* Fix setpaths issue on MAC where the initialization of submodules causes setpaths to hang waiting for user to press ENTER because the system command running 'git branch' executes in its own shell. Setting the TERM=ansi seems to fix this issue.

* -- Add .gitignore file to simplify and clatrify git status output

* -- In previous commit didn't entirely fix issue with setpaths waiting for user input on MAC. Need to parse and remove garbage output correctly too

* Just use Snirf style GetAux to display aux data (#75)

* -- Set origin of submodules to be same as parent repo to follow paradigm of submodules and parent repo being one code (#78)

-- Fix submodule download in setpaths without git not working because setpaths options are not parsed correctly.
-- Clean up and remove obsolete files

* -- Fix issue in setpaths when attempting to download submodules using the non-git method. Assumtion that Github creates empty folder as placeholders for submodules when downloading using the "Download ZIP" option is not always true. Sometimes it creates empty folder, somtimes it doesn't. So isemptyFolder doesn't work when folder is not created. Added code to create empty submodule folder placeholder when it is missing.

-- Clean up: remove more obsolete files

* -- Fix typo

* -- Fix issue with setpaths submodules when there's a partial submodules download because of a previous error then need to clean uo submodule folders so there's no garbage in there then retry downloading.

* -- Greatly simplify and make it more straighfoward the setpaths process.
-- Add .numberfiles to submodules and check during setpaths process to make sure an incomplete download is detected and triggers a clean download.

* -- Fix setpaths error exception on linux and mac because ls([pathname, '*.m']) works differently on those platform than on Windows when there are NO files matching the specified pattern. Use dir instead of ls to fix this.
-- Fix multiple issues in submodule downloading using non-git method.
-- When user click cancel in response to download fail dialog, quit rather than retry.
-- Add search paths ONLY for the submodules that were successfully installed
-- Fix typos in dialog failed download message

* -- a) Fix setpaths bug in removeFolderContents.m on linux and MAC because the delimiter for path string is ':' not ';' as it is on Winodws. b) On linux the gitSetBranch.m used to get latest branch revis

* Fix setpaths('update') not working.

* -- Fix problems in setpaths with creating new submodule branches

-- Fix issue in setpaths with non-git submodule download and install.
   a) Fix some bugs and typos preventing correct download.
   b) Clean up and delete downloaded submodules files which are no longer needed after installation like the zip file and initial unzipped folder
   c) Clarify input dialog message and try to guess and or suggest the correct branch that matches parent repo

-- Add exception handling to setpaths. in case of error return to original folder

-- Add comprehensive help comments to setpaths describing it's use

* -- Don't add current app twice. Check app include list to see if it already has been added to search paths

* Glm fixes (#80)

- GLM docs fixes

- Convolve HRFs with stim duration before export

* -- In setpaths exclude more folders to avoid problems and headaches with unexpected matlab behavior because of inclusion of weird .m files from a build of AV. So for instance exclude *.app and *_install folders which contain a large amount of files which should never be included in matlab search paths.
-- Add ability to findDotMFolders to exclude folders based on wildcard patterns rather than only explicit names. This allows exclusion of many folders that fit a pattern without having to explicitly list ALL of them
-- Fix several bugs in the build for MAC
-- Finally fixed the requirement that you have to run MAC installation specifically from ~/Downloads/homer3_install. Added code to makesetup.pl to create a more intelligent setup.command which does not depend on execution from a specific folder.

* -- Fix build not working because need to copy ALL config files to installation folder
-- Improve launch performance by changing config file access to global variable

* -- Change setpath submodule download without git, to not ask questions about which branch to download. Instead derive the branch name from root folder name of parent app and default to master of it cannot be determined. This change somehow did not make it earlier into repo

* -- Update submodule references to latest development branch rev

* -- Change unit test to use global config variable rather than opening/closing ConfigFileClass objects
-- Update getVernum to match AV
-- Update submodule references

* DataTree submodule reference update and Mac support fixes (#89)

-- Update DataTree submodule reference to latest change containing fix for errors when there are no data files (because all have errors that prevent loading)

-- Fix more issues with install executable on MAC

* Gets info about latest version from GitHub API rather than openfnirs.org (#92)

* Gets info about latest version from GitHub API rather than openfnirs.org

* Version++

* -- Change setpaths to not download submodules by default. Use 'init' or 'update' options to download automatically. If using github desktop then github desktop download submodules automatically. (#95)

-- Change downloadSharedLibs to change .gitmodules origin url to point to where ever parent came from
-- Add .gitattributes to exclude files from branch merges such as submodule references and .gitmodules
-- Sync getVernum with Homre3. (getVernum will eventually be moved to Utils/Shared library)
-- Improve creation of installation file and installation process using myCopyFile.m

* -- Update submodule reference for development branch to latest
-- Fix .gitmodules to point to development branch instaead of master

* -- Fix setpaths gitSubmodulesUpdate not updating changes to submodules correctly

* -- Fix wrong path to DataTree to exclude from merges
-- Add .gitattributes in list of files to exclude fropm merges

* -- Update submodule references

* -- Update submodule reference to Utils

* Remove submodules: too hard to work with, not enough support from git

* Remove submodules: too hard to work with, not enough support from git

Co-authored-by: jayd1860 <[email protected]>
Co-authored-by: sreekanthkura7 <[email protected]>
Co-authored-by: Meryem Ayse Yucel <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
Co-authored-by: stephen scott tucker <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>

* -- Step 2 of change to remove submodules references and replacing with hard copy of the DataTree and Utils libraries

Co-authored-by: jayd1860 <[email protected]>
Co-authored-by: sreekanthkura7 <[email protected]>
Co-authored-by: Meryem Ayse Yucel <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
Co-authored-by: stephen scott tucker <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
jayd1860 added a commit that referenced this pull request Jan 20, 2022
…of the DataTree and Utils libraries. Submodules too difficult to work with and bad git support (#107) (#109)

* v1.32.4

-- Fix some bugs in path utils functions
-- More improvements in build/installation process

* Update probe class to save and load 3D landmarks

* Update probe class to work with old SD files

* v1.32.4

-- Copy versoin number for Homer3 from AV

* -- Fix small bug in setpaths(0) paths removal

* CCA shrinkage back on

* Update hmrR_PreprocessIntensity_Negative.m

quick fix on negative value check

* v1.32.5

-- Fix issue with tCCA user functions not being loaded into function registry
-- Set data tree structure display in MainGUI to include the group name display unconditionally. In some instances the group name did not show if the all subjects had only one run.

* Update hmrR_PreprocessIntensity_Negative.m

Function to include zero values.

* v1.32.5

-- Sync DataTree and Utils with AtlasViewer

* v1.32.7

-- Add more robust error checking to exclude .snirf files that can't load DataClass.m
-- Add better error checking to DataClass and MeasListClass

* Create shared code and submodule references to DataTree and Utils (#74)

* -- Move DataTree and some Utils functions to independent submodules used by AtlasViewer and Homer3

* Add config file to DataTree and ability to load mutiple config files to config utility

Add config file to DataTree and ability to load mutiple config files to config utility

* Relink submodule references from jayd1860 to BUNPC

* Fix submodule download not working on linux when initializing repo with setpaths. Needed to disable git certificate verification when executing 'git submodule update' from matlab

* -- Add tool to setpaths to be able to download submodules without having git installed.

* -- Change code to setpaths not to initialize submodules every toime it is run. Add option to 'update' submodules to get latest changes.

* ISSUE_TEMPLATE folder (#77)

* Fix setpaths issue on MAC where the initialization of submodules causes setpaths to hang waiting for user to press ENTER because the system command running 'git branch' executes in its own shell. Setting the TERM=ansi seems to fix this issue.

* -- Add .gitignore file to simplify and clatrify git status output

* -- In previous commit didn't entirely fix issue with setpaths waiting for user input on MAC. Need to parse and remove garbage output correctly too

* Just use Snirf style GetAux to display aux data (#75)

* -- Set origin of submodules to be same as parent repo to follow paradigm of submodules and parent repo being one code (#78)

-- Fix submodule download in setpaths without git not working because setpaths options are not parsed correctly.
-- Clean up and remove obsolete files

* -- Fix issue in setpaths when attempting to download submodules using the non-git method. Assumtion that Github creates empty folder as placeholders for submodules when downloading using the "Download ZIP" option is not always true. Sometimes it creates empty folder, somtimes it doesn't. So isemptyFolder doesn't work when folder is not created. Added code to create empty submodule folder placeholder when it is missing.

-- Clean up: remove more obsolete files

* -- Fix typo

* -- Fix issue with setpaths submodules when there's a partial submodules download because of a previous error then need to clean uo submodule folders so there's no garbage in there then retry downloading.

* -- Greatly simplify and make it more straighfoward the setpaths process.
-- Add .numberfiles to submodules and check during setpaths process to make sure an incomplete download is detected and triggers a clean download.

* -- Fix setpaths error exception on linux and mac because ls([pathname, '*.m']) works differently on those platform than on Windows when there are NO files matching the specified pattern. Use dir instead of ls to fix this.
-- Fix multiple issues in submodule downloading using non-git method.
-- When user click cancel in response to download fail dialog, quit rather than retry.
-- Add search paths ONLY for the submodules that were successfully installed
-- Fix typos in dialog failed download message

* -- a) Fix setpaths bug in removeFolderContents.m on linux and MAC because the delimiter for path string is ':' not ';' as it is on Winodws. b) On linux the gitSetBranch.m used to get latest branch revis

* Fix setpaths('update') not working.

* -- Fix problems in setpaths with creating new submodule branches

-- Fix issue in setpaths with non-git submodule download and install.
   a) Fix some bugs and typos preventing correct download.
   b) Clean up and delete downloaded submodules files which are no longer needed after installation like the zip file and initial unzipped folder
   c) Clarify input dialog message and try to guess and or suggest the correct branch that matches parent repo

-- Add exception handling to setpaths. in case of error return to original folder

-- Add comprehensive help comments to setpaths describing it's use

* -- Don't add current app twice. Check app include list to see if it already has been added to search paths

* Glm fixes (#80)

- GLM docs fixes

- Convolve HRFs with stim duration before export

* -- In setpaths exclude more folders to avoid problems and headaches with unexpected matlab behavior because of inclusion of weird .m files from a build of AV. So for instance exclude *.app and *_install folders which contain a large amount of files which should never be included in matlab search paths.
-- Add ability to findDotMFolders to exclude folders based on wildcard patterns rather than only explicit names. This allows exclusion of many folders that fit a pattern without having to explicitly list ALL of them
-- Fix several bugs in the build for MAC
-- Finally fixed the requirement that you have to run MAC installation specifically from ~/Downloads/homer3_install. Added code to makesetup.pl to create a more intelligent setup.command which does not depend on execution from a specific folder.

* -- Fix build not working because need to copy ALL config files to installation folder
-- Improve launch performance by changing config file access to global variable

* -- Change setpath submodule download without git, to not ask questions about which branch to download. Instead derive the branch name from root folder name of parent app and default to master of it cannot be determined. This change somehow did not make it earlier into repo

* -- Update submodule references to latest development branch rev

* -- Change unit test to use global config variable rather than opening/closing ConfigFileClass objects
-- Update getVernum to match AV
-- Update submodule references

* DataTree submodule reference update and Mac support fixes (#89)

-- Update DataTree submodule reference to latest change containing fix for errors when there are no data files (because all have errors that prevent loading)

-- Fix more issues with install executable on MAC

* Gets info about latest version from GitHub API rather than openfnirs.org (#92)

* Gets info about latest version from GitHub API rather than openfnirs.org

* Version++

* -- Change setpaths to not download submodules by default. Use 'init' or 'update' options to download automatically. If using github desktop then github desktop download submodules automatically. (#95)

-- Change downloadSharedLibs to change .gitmodules origin url to point to where ever parent came from
-- Add .gitattributes to exclude files from branch merges such as submodule references and .gitmodules
-- Sync getVernum with Homre3. (getVernum will eventually be moved to Utils/Shared library)
-- Improve creation of installation file and installation process using myCopyFile.m

* -- Update submodule reference for development branch to latest
-- Fix .gitmodules to point to development branch instaead of master

* -- Fix setpaths gitSubmodulesUpdate not updating changes to submodules correctly

* -- Fix wrong path to DataTree to exclude from merges
-- Add .gitattributes in list of files to exclude fropm merges

* -- Update submodule references

* -- Update submodule reference to Utils

* Remove submodule references and replace with copies of the DataTree and Utils libraries. Submodules too difficult to work with and bad git support (#107)

* -- Update DataTree reference pointer

* -- Update Utils submodule reference to latest

* Remove submodules: too hard to work with, not enough support from git

* Remove submodules: too hard to work with, not enough support from git

* Merge in change to get rid of submodule references which are more trouble than they are worth (#2)

* v1.32.4

-- Fix some bugs in path utils functions
-- More improvements in build/installation process

* Update probe class to save and load 3D landmarks

* Update probe class to work with old SD files

* v1.32.4

-- Copy versoin number for Homer3 from AV

* -- Fix small bug in setpaths(0) paths removal

* CCA shrinkage back on

* Update hmrR_PreprocessIntensity_Negative.m

quick fix on negative value check

* v1.32.5

-- Fix issue with tCCA user functions not being loaded into function registry
-- Set data tree structure display in MainGUI to include the group name display unconditionally. In some instances the group name did not show if the all subjects had only one run.

* Update hmrR_PreprocessIntensity_Negative.m

Function to include zero values.

* v1.32.5

-- Sync DataTree and Utils with AtlasViewer

* v1.32.7

-- Add more robust error checking to exclude .snirf files that can't load DataClass.m
-- Add better error checking to DataClass and MeasListClass

* Create shared code and submodule references to DataTree and Utils (#74)

* -- Move DataTree and some Utils functions to independent submodules used by AtlasViewer and Homer3

* Add config file to DataTree and ability to load mutiple config files to config utility

Add config file to DataTree and ability to load mutiple config files to config utility

* Relink submodule references from jayd1860 to BUNPC

* Fix submodule download not working on linux when initializing repo with setpaths. Needed to disable git certificate verification when executing 'git submodule update' from matlab

* -- Add tool to setpaths to be able to download submodules without having git installed.

* -- Change code to setpaths not to initialize submodules every toime it is run. Add option to 'update' submodules to get latest changes.

* ISSUE_TEMPLATE folder (#77)

* Fix setpaths issue on MAC where the initialization of submodules causes setpaths to hang waiting for user to press ENTER because the system command running 'git branch' executes in its own shell. Setting the TERM=ansi seems to fix this issue.

* -- Add .gitignore file to simplify and clatrify git status output

* -- In previous commit didn't entirely fix issue with setpaths waiting for user input on MAC. Need to parse and remove garbage output correctly too

* Just use Snirf style GetAux to display aux data (#75)

* -- Set origin of submodules to be same as parent repo to follow paradigm of submodules and parent repo being one code (#78)

-- Fix submodule download in setpaths without git not working because setpaths options are not parsed correctly.
-- Clean up and remove obsolete files

* -- Fix issue in setpaths when attempting to download submodules using the non-git method. Assumtion that Github creates empty folder as placeholders for submodules when downloading using the "Download ZIP" option is not always true. Sometimes it creates empty folder, somtimes it doesn't. So isemptyFolder doesn't work when folder is not created. Added code to create empty submodule folder placeholder when it is missing.

-- Clean up: remove more obsolete files

* -- Fix typo

* -- Fix issue with setpaths submodules when there's a partial submodules download because of a previous error then need to clean uo submodule folders so there's no garbage in there then retry downloading.

* -- Greatly simplify and make it more straighfoward the setpaths process.
-- Add .numberfiles to submodules and check during setpaths process to make sure an incomplete download is detected and triggers a clean download.

* -- Fix setpaths error exception on linux and mac because ls([pathname, '*.m']) works differently on those platform than on Windows when there are NO files matching the specified pattern. Use dir instead of ls to fix this.
-- Fix multiple issues in submodule downloading using non-git method.
-- When user click cancel in response to download fail dialog, quit rather than retry.
-- Add search paths ONLY for the submodules that were successfully installed
-- Fix typos in dialog failed download message

* -- a) Fix setpaths bug in removeFolderContents.m on linux and MAC because the delimiter for path string is ':' not ';' as it is on Winodws. b) On linux the gitSetBranch.m used to get latest branch revis

* Fix setpaths('update') not working.

* -- Fix problems in setpaths with creating new submodule branches

-- Fix issue in setpaths with non-git submodule download and install.
   a) Fix some bugs and typos preventing correct download.
   b) Clean up and delete downloaded submodules files which are no longer needed after installation like the zip file and initial unzipped folder
   c) Clarify input dialog message and try to guess and or suggest the correct branch that matches parent repo

-- Add exception handling to setpaths. in case of error return to original folder

-- Add comprehensive help comments to setpaths describing it's use

* -- Don't add current app twice. Check app include list to see if it already has been added to search paths

* Glm fixes (#80)

- GLM docs fixes

- Convolve HRFs with stim duration before export

* -- In setpaths exclude more folders to avoid problems and headaches with unexpected matlab behavior because of inclusion of weird .m files from a build of AV. So for instance exclude *.app and *_install folders which contain a large amount of files which should never be included in matlab search paths.
-- Add ability to findDotMFolders to exclude folders based on wildcard patterns rather than only explicit names. This allows exclusion of many folders that fit a pattern without having to explicitly list ALL of them
-- Fix several bugs in the build for MAC
-- Finally fixed the requirement that you have to run MAC installation specifically from ~/Downloads/homer3_install. Added code to makesetup.pl to create a more intelligent setup.command which does not depend on execution from a specific folder.

* -- Fix build not working because need to copy ALL config files to installation folder
-- Improve launch performance by changing config file access to global variable

* -- Change setpath submodule download without git, to not ask questions about which branch to download. Instead derive the branch name from root folder name of parent app and default to master of it cannot be determined. This change somehow did not make it earlier into repo

* -- Update submodule references to latest development branch rev

* -- Change unit test to use global config variable rather than opening/closing ConfigFileClass objects
-- Update getVernum to match AV
-- Update submodule references

* DataTree submodule reference update and Mac support fixes (#89)

-- Update DataTree submodule reference to latest change containing fix for errors when there are no data files (because all have errors that prevent loading)

-- Fix more issues with install executable on MAC

* Gets info about latest version from GitHub API rather than openfnirs.org (#92)

* Gets info about latest version from GitHub API rather than openfnirs.org

* Version++

* -- Change setpaths to not download submodules by default. Use 'init' or 'update' options to download automatically. If using github desktop then github desktop download submodules automatically. (#95)

-- Change downloadSharedLibs to change .gitmodules origin url to point to where ever parent came from
-- Add .gitattributes to exclude files from branch merges such as submodule references and .gitmodules
-- Sync getVernum with Homre3. (getVernum will eventually be moved to Utils/Shared library)
-- Improve creation of installation file and installation process using myCopyFile.m

* -- Update submodule reference for development branch to latest
-- Fix .gitmodules to point to development branch instaead of master

* -- Fix setpaths gitSubmodulesUpdate not updating changes to submodules correctly

* -- Fix wrong path to DataTree to exclude from merges
-- Add .gitattributes in list of files to exclude fropm merges

* -- Update submodule references

* -- Update submodule reference to Utils

* Remove submodules: too hard to work with, not enough support from git

* Remove submodules: too hard to work with, not enough support from git

Co-authored-by: jayd1860 <[email protected]>
Co-authored-by: sreekanthkura7 <[email protected]>
Co-authored-by: Meryem Ayse Yucel <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
Co-authored-by: stephen scott tucker <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>

* -- Step 2 of change to remove submodules references and replacing with hard copy of the DataTree and Utils libraries

Co-authored-by: jayd1860 <[email protected]>
Co-authored-by: sreekanthkura7 <[email protected]>
Co-authored-by: Meryem Ayse Yucel <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
Co-authored-by: stephen scott tucker <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>

Co-authored-by: jayd1860 <[email protected]>
Co-authored-by: sreekanthkura7 <[email protected]>
Co-authored-by: Meryem Ayse Yucel <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
Co-authored-by: stephen scott tucker <[email protected]>
Co-authored-by: Jay Dubb <[email protected]>
sreekanthkura7 pushed a commit that referenced this pull request Jan 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants