-
Notifications
You must be signed in to change notification settings - Fork 111
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
run-records created on windows are not reexecutable on another platform #7512
Comments
I think a first line of action should be to stop the further creation of such records. The simplest way to achieve this is a patch of the Right now this function just calls It should perform an explicit conversing to POSIX paths for If this change is to be made by a runtime patch, the helper can be wrapped in a function that performs this alteration, and then calls the original with the result. |
- IO specifications are stored in platform-native conventions - IO specifications are reported as-is combined with the absence of any platform type record, this makes run-records non-portable across unix/windows scopes. Ping datalad/datalad#7512
- IO specifications are stored in platform-native conventions - IO specifications are reported as-is combined with the absence of any platform type record, this makes run-records non-portable across unix/windows scopes. Ping datalad/datalad#7512
- IO specifications are stored in platform-native conventions - IO specifications are reported as-is combined with the absence of any platform type record, this makes run-records non-portable across unix/windows scopes. Ping datalad/datalad#7512
- IO specifications are stored in platform-native conventions - IO specifications are reported as-is combined with the absence of any platform type record, this makes run-records non-portable across unix/windows scopes. Ping datalad/datalad#7512
- IO specifications are stored in platform-native conventions - IO specifications are reported as-is combined with the absence of any platform type record, this makes run-records non-portable across unix/windows scopes. Ping datalad/datalad#7512
- IO specifications are stored in platform-native conventions - IO specifications are reported as-is combined with the absence of any platform type record, this makes run-records non-portable across unix/windows scopes. Ping datalad/datalad#7512
Ping sent to chatroom. Will resolve via force-to-POSIX. This is required for a robust implementation of datalad/datalad-next#143 |
I think it is a great idea to store in POSIX what we can. Unfortunately command itself can contain windowsy relative paths, e.g. |
I thought about that scenario too. I believe that the "correct" solution is to document how a user need to approach this in order to yield portable records. And that is, from my POV:
If above rules are followed and normalization is implemented, we should have portable records, also for the case you pointed out. A user can decide to ignore such guidelines, and live with the consequences, of course. |
that's cute... but pragmatically might be painful to use/implement. We might want eventually to add a way to give inputs/outputs values, like A complimentary feature could be allowing to annotate paths in the invocation, e.g. via smth like |
Do I get it right here: there are different problems ?
It seems 1 is a datalad issue, Note for 3: Note for 2: Note: I am a R user, script are called via |
(and vice versa, likely)
The issue is an analog of datalad/datalad-container#224
Input/output specifications are required in platform path conventions, but the platform is not recorded. This makes it generally impossible to determine the storage conventions. It may be possible to guess them using an approach similar to the one implemented in datalad/datalad-container#243. However, given the more general problem here, the fraction of use cases covered would be smaller.
I would suggest that all path specifications should be stored in POSIX notation (this would require them to be relative too, which may already be the case).
A guesstimation algorithm could check if any immediate subdirectory of a backslash-path matches an existing directory in the dataset, and then convert. However, this would need to be made in a way that is also (or only) accessible to
rerun
.Pretty big mess.
The text was updated successfully, but these errors were encountered: