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

Support for Windows #20

Open
AustinWise opened this issue Feb 3, 2024 · 11 comments · Fixed by #492
Open

Support for Windows #20

AustinWise opened this issue Feb 3, 2024 · 11 comments · Fixed by #492

Comments

@AustinWise
Copy link

AustinWise commented Feb 3, 2024

Support for the Windows platform would be nice. As a member of the open source community (not acting officially with any company), here are some things I noticed that stand in the way of full Windows support.

Cloning the repo on Windows

Currently the Git repo cannot be cloned on Windows.

This file has a backslash in its name:

pkl-core/src/test/files/LanguageSnippetTests/input-helper/globtest/\moduleC.pkl

Since Windows uses the backslash a path separator, it is unable to create this file. Cloning fails with this error message:

error: invalid path 'pkl-core/src/test/files/LanguageSnippetTests/input-helper/globtest/\moduleC.pkl'
fatal: unable to checkout working tree

I tried working around this by doing a sparse checkout and have not had success. Git appears to validate path names before applying the sparse checkout filter.

Additionally, there are two directories with colons in the name. By default Git on Windows does not like these paths, but that could be worked around by setting git config core.protectNTFS false.

  • pkl-doc/src/test/files/DocGeneratorTest/output/data/localhost:12110
  • pkl-doc/src/test/files/DocGeneratorTest/output/localhost:12110

Building on Windows

Not yet attempted.

CI support for Windows

Net yet attempted

Release builds on Windows

Net yet attempted

@bioball
Copy link
Contributor

bioball commented Feb 3, 2024

Evidently enough, we haven't tried developing on Windows yet :D

Thanks for the report. We do plan on supporting Windows, so this is helpful.

@AustinWise
Copy link
Author

In the short term, I found a work around: checkout the code in WSL and point IntelliJ at it:

https://www.jetbrains.com/help/idea/how-to-use-wsl-development-environment-in-product.html

@bioball bioball changed the title Unable to checkout Git repository on Windows Support for Windows Feb 5, 2024
@bioball
Copy link
Contributor

bioball commented Feb 5, 2024

I am re-purposing this issue to track Pkl support for Windows, and pointing other issues to this one.

@ghyatzo
Copy link

ghyatzo commented Feb 6, 2024

Is it possible to build native executables on windows as of now?

@translatenix
Copy link
Contributor

A great first step would be to fix the Git clone issues. They block all other work/contributions.

@AustinWise
Copy link
Author

I updated the description of the issue to reflect the broader scope that as been assigned to this issue. I don't know know how issue editing permissions work in GitHub, so feel free to update the issue description as you see fit. Or close this in favor an issue that the maintainers of this project control if that is more convenient.

@holzensp
Copy link
Contributor

holzensp commented Feb 9, 2024

Is it possible to build native executables on windows as of now?

It is not actively supported. @translatenix makes a valid point about cloning needing to be fixed first. Native executables are part of "done" for this issue.

@jack3898
Copy link

Extending the above comments about WSL, you can simply type bash in PowerShell to put your current terminal instance into a WSL bash shell. It's what I have been doing to test this on Windows. Saves faffing about with cd 🤣

@mitchcapper
Copy link
Contributor

Some additional items to add to this:

  • Paths on windows are not case sensitive but things like internal whitelisting checks are. AKA --allowed-modules file:///c:/myPath/to/Something will fail when it expects a capital drive letter --allowed-modules file:///C:/myPath/to/Something will work
  • backslash paths explode, windows allows forward slash paths too though so can work around
  • Windows absolute paths fail as file:// is not appended as it is for linux paths, calling with "c:/myPath/to/Something/test.pkl" when adding "c:/myPath/to/Something" will fail with "MalformedURLException: unknown protocol: c"
  • /myPath/to/Something is transformed into: file:///myPath/to/Something ; ./myPath/to/Something is transformed to file:///C:/myPath/to/Something ; c:/myPath/to/Something just fails (per above) ; file:///c:/myPath/To/Something will work, but is not whitelisted by either of file:///myPath/to/Something / file:///C:/myPath/to/Something there is https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlea which will return the full final path to the handle opened it will return it like FinalPath: \\?\C:\myPath but that is easy enough to translate to file:/// form.

@Ai-N3rd
Copy link

Ai-N3rd commented Mar 14, 2024

Please fix this. I want to try to mess around with Pkl but only own a windows machine.

@mitchcapper
Copy link
Contributor

@Ai-N3rd my PR #241 or #237 include details on how to acquire and use the java version of PKL on windows. Not the most convenient given some of the above but it certainly works.

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 a pull request may close this issue.

8 participants