-
Notifications
You must be signed in to change notification settings - Fork 7
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
Windows build #22
base: master
Are you sure you want to change the base?
Windows build #22
Conversation
@2-5 this is huge! Running Aim on windows has been one of the most requested features since the day Aim v3 was launched. Would you mind also submitting the instructions on how to run Aim on windows to the official docs? https://github.com/aimhubio/aim/tree/main/docs/source/using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added a few more commits to this PR to bundle the libs to make it work with the aim package. Now both aim and aimrocks build. |
Hey @2-5! Thanks again for the huge contribution! I've managed to install aimrocks on my end, and done some research on unicode path issue, despite python supporting unicode paths on Windows, |
I'm trying to make Aim work on Windows, and I've managed to build
aimrocks
.All the tests pass, except
test_unicode_path
. I tried fixing it, but somewhere between Python -> C Extension -> rocksdb the Unicode path name gets mangled despite Python supporting Unicode paths on Windows.The big idea is using
vcpkg
to buildrocksdb
and all it's dependencies (zlib
, ...) on Windows.Build Instructions
Install a Windows C++ compiler
I used Visual Studio 2022 Community Edition (free). I'm not sure where the other Python packages with Windows binaries get the compiler and how they integrate it in the CI/CD.
Clone vcpkg
Checkout supported version of rocksdb
The current version (
HEAD
) ofvcpkg
hasrocksdb-7.7.3
which is incompatible withaimrocks
.vcpkg
was updated to use this version on 30 Dec 2021, so we need to use avcpkg
snapshot before that, which hasrocksdb-6.27.3
cd vcpkg git checkout tags/2022.11.14
Bootstrap vcpkg
-disableMetrics
disables telemetry.cd vcpkg bootstrap-vcpkg.bat -disableMetrics
Build rocksdb and dependencies
We build the static library version of everything (
x64-windows-static-md
) so that we don't have .DLLs to manage. The-md
at the end uses the DLL version of the Microsoft C Runtime (just like Python).cd vcpkg vcpkg install rocksdb[bzip2,lz4,snappy,zlib,zstd]:x64-windows-static-md
Clone aimrocks
Clone next to the
vcpkg
directories, so they are siblings:Create virtual env
Install required Python packages
Build and install aimrocks
Run tests