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

make gool does not work on Windows #3549

Closed
hrzhuang opened this issue Jul 20, 2023 · 12 comments
Closed

make gool does not work on Windows #3549

hrzhuang opened this issue Jul 20, 2023 · 12 comments
Labels
question verify-fixed When an issue seems fixed, but someone needs to check

Comments

@hrzhuang
Copy link
Collaborator

For examples that use odelib, odelib is located using UNIX symlinks such as datafiles/nopcm/cpp (which points to datafiles/odelib/cpp). However, these symlinks do not work on Windows under Git Bash. I'm not sure if it would work under Cygwin, but in any case I don't think we should be relying on UNIX symlinks in a repository that is supposed to be cross-platform.

@smiths
Copy link
Collaborator

smiths commented Jul 20, 2023

@hrzhuang I agree that we want to be as cross platform as possible, but I'm not sure what the solution is. Do you have a proposal on how we could replace the UNIX symlinks? We don't want to do anything too time consuming or complex because linking to the external libraries the way we do is not likely to be a typical use case for Drasil in the long-term. Right now we build all of our cases studies, in all of the relevant languages, together. An actual use of Drasil would want to use the system to generate their own software, or software family. They wouldn't likely care about generating GlassBR, or swhs, etc. Eventually we would want a way to use Drasil that would generate just the software someone wished to generate, without it being fully integrated into the repo.

The other issue your issue highlights is how we deal with external libraries. Right now we keep a copy of each external library and link to it. At some point this won't be feasible, since we could be adding many more external libraries. There will also come a point where we might need to keep multiple versions of the same library, since different programs might need different versions. At some point, we will want to do a proper design of how we handle external dependencies.

If there is an easy fix for cross-platform capability, we should do it now. If it isn't an easy fix, we should probably postpone the task until we understand better how we wish to manage the generation of end-user programs and external dependencies.

@hrzhuang
Copy link
Collaborator Author

hrzhuang commented Jul 20, 2023

I actually found this Stack Overflow answer about enabling symlink support on Windows. I'm hoping some of us (i.e. @ManvendraJani, @harmanpreet-sagar, and @samm82) could try this and see if it works. After the configuration, it might be necessary to git clone the repository again to update the Windows file system information. If this works, then I think we should add these instructions to New Workspace Setup.

@smiths
Copy link
Collaborator

smiths commented Jul 20, 2023

This sounds good @hrzhuang. I hope it works! I won't be able to test, since I don't have a Windows system, but several of our colleagues will be able to test. Fingers crossed. 😄

@JacquesCarette
Copy link
Owner

Do either @harmanpreet-sagar or @ManvendraJani work on Windows?

The bigger issue is indeed to work with external libraries without having to copy them into Drasil.

@balacij
Copy link
Collaborator

balacij commented Jul 20, 2023

Using WSL will definitely simplify things for Windows users, but otherwise, Git Bash supports symbolic links, from what I've understood. We might need to add that instruction to the New Workspace Setup wiki page to tick off the "Enable Symbolic Links" option when installing Git Bash on Windows.

@hrzhuang
Copy link
Collaborator Author

@ManvendraJani and @harmanpreet-sagar have tried the instructions on their Windows computers and the symlinks now work. Note that after updating the settings, we need to re-clone the repository in order for them to take effect. It is not enough to just re-checkout the working tree.

@smiths
Copy link
Collaborator

smiths commented Jul 20, 2023

@hrzhuang great to hear that it worked! Can you please update the New Workspace Setup wiki page?

@hrzhuang
Copy link
Collaborator Author

I have updated the New Workspace Setup wiki page. If it looks good, then I think we can close this issue.

@smiths
Copy link
Collaborator

smiths commented Jul 21, 2023

@ManvendraJani and @harmanpreet-sagar can you please check the new content on the New Workspace Setup wiki page? Since you have Windows systems, and recently tested make gool, you can @hrzhuang know if anything is missing or unclear.

@janim2-2004
Copy link
Collaborator

janim2-2004 commented Jul 21, 2023

Looks good to me, but maybe we should clarify that this is only for windows as we do for other examples.

Correction: at a second look, it is under the windows section

@harmanpreet-sagar
Copy link
Collaborator

Looks good to me!

@balacij balacij added question verify-fixed When an issue seems fixed, but someone needs to check labels Jul 21, 2023
@hrzhuang
Copy link
Collaborator Author

Since the symlinks now work with the instructions added to New Workspace Setup, I am closing this issue now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question verify-fixed When an issue seems fixed, but someone needs to check
Projects
None yet
Development

No branches or pull requests

6 participants