Pyinstall can't resolve all dependencies on it's own, so
we need to help it with hoolks. From now on, we could
try to use pyinstall on Windows and MacOS to see if will
build standalone binaries.
This patch introduces DataCloud class that used config to
determine proper cloud class(DataCloudAWS and DataCloudGCP
are awailable) to use in "data_sync" and "remove" commands.
This patch focuses on introducing the common class itself
saving original code and definetly needs some RFC later.
It also adds simple DataCloudLOCAL class that uses directory
as a StoragePath and cp as a sync method. Which makes testing
so much easier and covers local scenarios.
And it also introduces ability to run data sync in parallel
by collecting files first and then running sync in a number
of threads.
Signed-off-by: Ruslan Kuprieiev <[email protected]>
This will fix CreateSymLinkPermission modification in systems with
locale that is other than english.
Signed-off-by: Ruslan Kuprieiev <[email protected]>
This will allow us to make our installer ~4 times smaller(120MB ->
30MB). This patch also has fix for PATH bug and installs dvc to whatever
direstory user specified.
Nuitka is not able to handle all of our dependencies correctly,
so instead we're using anaconda which is essentially portable
python in single directory, that we can use to simply pip intsall
everything we need, pack it up and create an installer with inno
setup.
Currently, to build on windows(and for windows) you need to only
have Inno Setup 5 installed(no need for python!) and simply run
build.cmd from your prompt. It will automatically download latest
miniconda and produce dvc-{version}.exe in project's root.
Use dvc-{version}.exe to distribute dvc as a standalone application.
It doesn't require anything from user, everything it needs is provided
by our installer.
Moving dvc.py contents to dvc/main.py and making
dvc.py to be just a wrapper for calling dvc/main.py.
This will allow us to both keep changes minimal and
use automatic script building.
Signed-off-by: Ruslan Kuprieiev <[email protected]>