## Description
This is my first time in ente! I modified two commands to allow the
build scripts for web and desktop to work in a Windows environment.
- Before running the command to get the git SHA in `next.config.js`, I
checked the platform of the current OS and changed it so that we could
run a command that would work on Windows.
- `NUL` is same as `/dev/null` in Windows, and `cd .` is always return
nothing with 0 status code.
- Added a new package called
[`shx`](https://[github.com/shelljs/shx](https://github.com/shelljs/shx))
to the development dependencies to support `rm` and `ln`, which are
commands not supported by Windows when running the Desktop build
command.
#1191
## Tests
I've tested the web build and desktop build in a Windows environment. I
don't have a Mac, so I'd love for someone to test it on a Mac and let me
know the results.
The preload script is now self contained, and the app when launched
tries to open the renderer correctly. It goes on to fail because of an
infinite navigation loop, but that's a different issue.
Beyond the navigation loop, there is more pending work to do - not all
the ipcMain/ipcRenderer communication would currently be working since
the objects being passed around (like "File") are not copyable. Still,
this PR is a checkpoint for the preload structure.
## Description
- Fix broken integration test used for benchmarking gallery scroll
performance.
- Automate email and password entry.
- Write script to run perf test.
- Refactor towards making preload.ts self contained (see comments at the
top of the file why)
- More PRs in this series will come
- Build is still broken
Don't upload existing translation when syncing with Crowdin. This way,
we let the existing translations be invalidated when we change the
source string (this was not happening previously since we also upload
the (older) translations when
we upload the changed source strings).
**Tested by**
Doing this on a different test branch, changing a source string,
manually running the workflow against that branch, and verifying that
the strings are getting reset in the PR that Crowdin' action opens.
Don't upload existing translation when syncing with Crowdin. This way, we let
the existing translations be invalidated when we change the source string (this
was not happening previously since we also upload the (older) translations when
we upload the changed source strings).