-
Notifications
You must be signed in to change notification settings - Fork 67
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
ENH: Migrate data to IPFS #398
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is kicking out sha512s a WIP simplification, or a longer-term plan?
Both |
eded441
to
284281a
Compare
This improves build reliability, addressing #395, but also simplifies the contributor experience and improves maintainability and sustainability. Documentation updates were factored into a separate commit to facilitate review. |
|
||
#]=======================================================================] | ||
|
||
function(ExternalData_add_test target) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not strictly necessary, but it would be helpful to have a comment on each function summarizing intended behavior and detailing input formats and example usage. I.e. # Usage: ExternalData_add_test(ReadAnImageData)
, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, although we do not want to diverge from upstream ExternalData.cmake.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we do not want to diverge from upstream ExternalData.cmake
It doesn't seem like this constraint will be easy to enforce on a forked file here. Is there another way we could reference ExternalData.cmake
from an existing ITK source dir or fetch it from an ITK hash with FetchContent
at build time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could require a newer version of CMake which does have IPFS support in ExternalData. Matt, do you know which is the oldest version good enough for this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To clarify, the IPFS support has not yet been contributed to upstream CMake 1
Waiting we integrate it upstream, an intermediate approach would be to maintain the modified ExternalData module into a project called for example cmake-IPFS-ExternalData
(or just cmake-ExternalData
) maintained in the @InsightSoftwareConsortium GitHub organization.
Structure would be similar to what we are doing for scikit-build/cmake-FindVcvars and scikit-build/cmake-FindFortran.
The proposal structure provide clear guideline for:
- integrating the custom module in projects
- versioning the module for easy integration
Footnotes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, good idea. I will start a new dedicated repository for the module when integrating into the ITK repository.
Note that it intentionally has not been submitted to upstream CMake because of the current lack of availability of a C++ CID verification library.
This improves reliability, addressing InsightSoftwareConsortium#395, but also the contributor experience, maintainability, and sustainability.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for adding documentation @thewtex .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all this hard work Matt 💯.
I only have one concern: why is the Documentation/Contribute/ContributeWithGit.rst
file being removed?
It deals with contributing to the repository; and is not related to the data part (if any part does refer to the data, then cross-referencing Documentation/Contribute/UploadBinaryData.rst would suffice).
Last, I think we have tried keeping the line length under 79 characters for RST files. Maybe in the long run having a linter for this would make our life easier.
@jhlegarreta great catch! That should not have been removed.
Yes, I went through and wrapped. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Building the documentation is causing some probably justified warnings.
Provide motivation and simplified contributor experience.
No description provided.