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 the workflow under Windows. #9

Open
rluble opened this issue Nov 14, 2018 · 15 comments
Open

Support the workflow under Windows. #9

rluble opened this issue Nov 14, 2018 · 15 comments

Comments

@rluble
Copy link
Collaborator

rluble commented Nov 14, 2018

The current release does not work under Windows.

There are a few known issues:

  1. bazel and all the required dependencies are cumbersome to setup in Windows.
  2. some path handling in J2CL does not work well with windows paths.

Detailed documentation on how to setup under Windows would be very helpful and address the first point.

For now we recommend to use WSL under Windows 10.

@markposterone
Copy link

WSL is not an option for us, we are not permitted to install something like that and also we are on Win7 not 10. We do not have any experience with Basel so it looks like we will have to wait until this issue has been resolved :-(
Does anyone have any plans to make this work with Maven or any other tool that works everywhere or it really can work only with Basel ?

@tbroyer
Copy link
Contributor

tbroyer commented Nov 15, 2018

Does anyone have any plans to make this work with Maven or any other tool that works everywhere or it really can work only with Basel ?

The GWT Community has started work on Maven and Gradle plugins. They are designed towards GWT 3 though, not "pure J2Cl".

@vojkog
Copy link

vojkog commented Nov 15, 2018

Detailed documentation on how to setup under Windows would be very helpful and address the first point.

As a start, I can describe my WIN 10 Bazel setup based on Using Bazel on Windows.

Would external-link to "md file" be useful?

@markposterone
Copy link

@vojkog Did you try everything explained in README.md of J2CL ? If yes, was everything successful on Win 10 for you or not ?

@vojkog
Copy link

vojkog commented Nov 15, 2018

@markposterone see #7

@markposterone
Copy link

Basel is possible to install on Windows as pointed by @vojkog. The GWT community is working hard on Maven but it seams that nobody is looking into "some path handling in J2CL does not work well with windows paths" as they expect that creators of J2CL will take a look at this problem.

@rluble
Copy link
Collaborator Author

rluble commented Nov 30, 2018

We would like the community to take on making J2CL work in Windows natively. None of the core developers uses Windows machines. We do not consider this a blocker since it works under WSL in Windows 10.

W.r.t the path handling I referred to in the previous comment is mostly constrained to the the reading of the source files. It is very localized and should be pretty straightforward to debug and fix.

@lgemeinhardt
Copy link
Contributor

lgemeinhardt commented Dec 7, 2018

I found and fixed the first file/path issue, while running j2cl native with Windows 10 ... added the following fix ".replace('\\', '/')" here "com.google.j2cl.generator.OutputGeneratorStage#generateOutputs:82"

String typeRelativePath = getRelativePath(type).replace('\\', '/');

Not sure if this fix is well placed, but is corrects the issue (looking up an windows path in a map with unix paths)...

Btw. after this, I found a next issue (but only warnings, but tons of it):

WARNING - Failed to resolve sourcemap at bazel-out/x64_windows-fastbuild/bin/external/com_google_j2cl/jre/java/jre.js.zip!/java/io/Closeable$$LambdaAdaptor.js.map: bazel-out\x64_windows-fastbuild\bin\external\com_google_j2cl\jre\java\jre.js.zip!\java\io\Closeable$$LambdaAdaptor.js.map
  Codes: SOURCEMAP_RESOLVE_FAILED

WARNING - Failed to resolve sourcemap at bazel-out/x64_windows-fastbuild/bin/external/com_google_j2cl/jre/java/jre.js.zip!/java/io/Closeable.js.map: bazel-out\x64_windows-fastbuild\bin\external\com_google_j2cl\jre\java\jre.js.zip!\java\io\Closeable.js.map
  Codes: SOURCEMAP_RESOLVE_FAILED

Does somebody from the core team has may a code-pointer to check it?

lgemeinhardt added a commit to lgemeinhardt/j2cl that referenced this issue Jan 22, 2019
I found and fixed the first file/path issue, while running j2cl native with Windows 10 ... added the following fix ".replace('\\', '/')" here "com.google.j2cl.generator.OutputGeneratorStage#generateOutputs:87"

String typeRelativePath = getRelativePath(type).replace('\\', '/');

Not sure if this fix is well placed, but is corrects the issue (looking up an windows path in a map with unix paths)...
lgemeinhardt added a commit to lgemeinhardt/closure-compiler that referenced this issue Jan 23, 2019
…ogle#3206

And fixes parts of "Support the workflow under Windows. google#9" (google/j2cl#9) from j2cl
@lgemeinhardt
Copy link
Contributor

I added a PR to j2cl and one to closure-compiler (for the SOURCEMAP_RESOLVE_FAILED "WARNING") to fix both issues I found.
For sure if the PR for closure-compiler gets included j2cl needs to consume this (not sure how to reference this).

lgemeinhardt added a commit to lgemeinhardt/closure-compiler that referenced this issue Jan 23, 2019
…ogle#3206

And fixes parts of "Support the workflow under Windows. google#9"
(google/j2cl#9) from j2cl
lgemeinhardt added a commit to lgemeinhardt/closure-compiler that referenced this issue Jan 23, 2019
…ogle#3206

And fixes parts of "Support the workflow under Windows. google#9"
(google/j2cl#9) from j2cl
tjgq pushed a commit to google/closure-compiler that referenced this issue Jan 25, 2019
See also google/j2cl#9.

Fixes #3206.
Closes #3207.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=230635801
dtsengchromium pushed a commit to dtsengchromium/closure-compiler that referenced this issue Jan 28, 2019
See also google/j2cl#9.

Fixes google#3206.
Closes google#3207.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=230635801
lgemeinhardt added a commit to lgemeinhardt/j2cl that referenced this issue Mar 1, 2019
Fix to '/' for all operating system (including windows) in
getRelativePath and getAbsolutePath, because the lookup map is using '/'
as well
@lgemeinhardt
Copy link
Contributor

Could we update the closure-compiler to version to v20190215 to solve
"SourceFileTest.testSourceFileResolvesZipEntries failes for Windows #3206" issue?!

jDramaix pushed a commit that referenced this issue Mar 1, 2019
Use hardcoded '/' as the file separator in getRelativePath and getAbsolutePath.

For file operations, Java will interpret the Unix file separator ("/") as if it were the file separator even when running in windows. Internally paths are used as keys and need to be consistent. Some of these paths are constructed programmatically, others are read from zip file directories, etc. It is better to adopt the simple standard to always use "/" as the separator.

Closes #26

PiperOrigin-RevId: 236383428
@markposterone
Copy link

What's the status of this ?

@gkdn
Copy link
Member

gkdn commented Mar 14, 2019

I am working on updating Closure rules workspace to work with the newer Closure release; should be completed next week.

@gkdn
Copy link
Member

gkdn commented Apr 9, 2019

Closure compiler version is updated to latest release in bazelbuild/rules_closure#347.

@v7r
Copy link

v7r commented Jan 13, 2021

As of 2021Jan13, I attempted to setup the j2cl in Windows 10. Following the "Getting Started" guide and installing bazel for Windows 10, the setup was successful. But, I saw an error related to "zipper.exe Argument list too long".

d:\j2cl\samples\helloworld> bazel build src/main/java/com/google/j2cl/samples/helloworld:helloworld
INFO: Analyzed target //src/main/java/com/google/j2cl/samples/helloworld:helloworld (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
ERROR: C:/users/myuser/_bazel_myuser/myku6orf/external/com_google_j2cl/jre/java/BUILD:45:16: error executing shell command: 'C:/msys64/usr/bin/bash.exe -c set -eu
shopt -s extglob
zip_args="c bazel-out/x64_windows-fastbuild/bin/external/com_google_j2cl/jre/java/jre_java_files.srcjar"
for src in "$@"
do
relative_name=${...' failed (Exit 126): bash.exe failed: error executing command C:/msys64/usr/bin/bash.exe -c ... (remaining 304 argument(s) skipped)
: line 11: external/bazel_tools/tools/zip/zipper/zipper.exe: Argument list too long
Target //src/main/java/com/google/j2cl/samples/helloworld:helloworld failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 0.781s, Critical Path: 0.27s
INFO: 3 processes: 3 internal.
FAILED: Build did NOT complete successfully

Error message seems to be related to bazel and may not related to j2cl. Someone please shed light on this.

Does anyone faced this issue ?

@tbroyer
Copy link
Contributor

tbroyer commented Jan 13, 2021

Yes, see #121

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants