google / clasp

🔗 Command Line Apps Script Projects
https://developers.google.com/apps-script/guides/clasp
Apache License 2.0
4.59k stars 428 forks source link

Folder flattening, unpredictable slash (/) direction #393

Open dustinmichels opened 5 years ago

dustinmichels commented 5 years ago

I am developing on Windows, (using the cmder console emulator for a unix-like experience.)

Expected Behavior

When I run clasp push my files in sub-directories are flattened into files with names like:

Even though I'm on Windows, the slash character is a forward slash / (normal for unix).

Actual Behavior

When I run clasp push my files in sub-directories are flattened into files with names like:

The names use a backslash \ (normal for windows).

Steps to reproduce the problem

I believe the "expected behavior" was happening, and then abruptly the "unexpected behavior" started happening, messing up some of my relative imports.

I'm not sure what changed. I may have run sudo npm i @google/clasp -g, updating my version of clasp?

Preferred Behavior

I'm not actually sure which behavior the developers expect, but I think I would prefer clasp push always flattens files with a forward slash / regardless of OS, or else that this be a setting in .clasp.json.

Specifications

grant commented 5 years ago

I'm not sure exactly what the bug report is stating. Can you provide a EXPECTED/ACTUAL report by editing the comment above?

Are you using the master version of clasp? It might be related to https://github.com/google/clasp/pull/351.

dustinmichels commented 5 years ago

Sorry I wasn't clear enough! Report updated.

Not sure if I'm using master version of clasp. I installed it via sudo npm i @google/clasp -g and clasp -v outputs 1.6.3.

grant commented 5 years ago

OK. It seems like a bug with pushing. We need to make the file separator always be /.

DominikPalo commented 5 years ago

Any updates? It would be really helpful to fix this issue also for our Windows/macOS mixed team - our Windows developers are not able to use the push command, because all internal project references use / delimiter to reference other files (like foo/bar), but Windows pushes these files as foo\bar instead of foo/bar

DominikPalo commented 5 years ago

It seems that this problem was already fixed in the latest version (https://github.com/google/clasp/pull/351), but unfortunately, we have to stay on version 1.x for now - version 2 always fails during the push phase with error:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node_module_register
 2: v8::internal::FatalProcessOutOfMemory
 3: v8::internal::FatalProcessOutOfMemory
 4: v8::internal::Factory::NewRawTwoByteString
 5: v8::internal::Smi::SmiPrint
 6: v8::internal::StackGuard::HandleInterrupts
 7: v8::String::WriteUtf8
 8: v8_inspector::V8InspectorClient::currentTimeMS
 9: node::Buffer::New
10: node::Buffer::New
11: v8::internal::wasm::SignatureMap::Find
12: v8::internal::Builtins::CallableFor
13: v8::internal::Builtins::CallableFor
14: v8::internal::Builtins::CallableFor
15: 0000010722E843C1

but that is another issue...

So, I think this one should be closed/resolved.