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

Add windows precompiled binary workflow and shared library to pre-compiled binary archive #1686

Merged
merged 3 commits into from
Jun 19, 2023

Conversation

benjaminwinger
Copy link
Collaborator

I also modified the script which produces the pre-compiled binaries so that it includes both the shared library .dll and the import library .lib (needed for linking stuff against the dll; the dll is only needed at runtime as far as I know). The last release just included a libkuzu.lib (presumably just the static library? I didn't check; the pre-compiled-bin script wasn't working, so I'm guessing that was created manually).

One question though: should the libraries be kuzu_shared.dll and kuzu_shared.lib (to distinguish them from kuzu.lib, which is the name of the static library), or just be kuzu.dll and kuzu.lib?

@codecov
Copy link

codecov bot commented Jun 16, 2023

Codecov Report

Patch and project coverage have no change.

Comparison is base (054ac20) 91.16% compared to head (2855010) 91.16%.

Additional details and impacted files
@@           Coverage Diff            @@
##           master    #1686    +/-   ##
========================================
  Coverage   91.16%   91.16%            
========================================
  Files         733      735     +2     
  Lines       26623    26773   +150     
========================================
+ Hits        24270    24407   +137     
- Misses       2353     2366    +13     

see 51 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

Copy link
Collaborator

@mewim mewim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Could you please teat that all of the pre-compiled workflows are still working correctly by running Build-Linux-Precompiled-Binaries and Build-Mac-Precompiled-Binaries? You may not be able to test the Windows workflow itself before the PR has been merged but let's ensure it does not break the existing ones.
  2. Before releasing 0.0.4, @acquamarin tested the lib and dll we built manually but it seems he cannot get the dll work. Could you please check if the dll itself is working by building and running the Introduction Examples. If the dll is working for you, could you please also update the documentation on how to make the dll work on Windows?
  3. Since we did not get the dll working, we did not include it in the last release. I think DuckDB releases both the lib and dll for Windows, so we can follow that. The name kuzu.dll and kuzu.lib are fine.

@benjaminwinger
Copy link
Collaborator Author

Before releasing 0.0.4, @acquamarin tested the lib and dll we built manually but it seems he cannot get the dll work. Could you please check if the dll itself is working by building and running the Introduction Examples. If the dll is working for you, could you please also update the documentation on how to make the dll work on Windows?

I tested it prior to making this PR, though not with those examples. I'll test it again and update those docs.

@benjaminwinger
Copy link
Collaborator Author

Since we did not get the dll working, we did not include it in the last release. I think DuckDB releases both the lib and dll for Windows, so we can follow that. The name kuzu.dll and kuzu.lib are fine.

It looks like renaming the dll is more complicated than just renaming the file, since the import library refers to the dll by name. It's still possible (https://stackoverflow.com/a/280567), but I'm not sure it's worthwhile compared to leaving it as kuzu_shared, or changing the cmake libraries to kuzu_static and making the shared library kuzu.

Duckdb has duckdb as the name of its shared library, and duckdb_static as the name of its static library which is presumably why they release shared libraries as just duckdb.lib/dll.

@mewim
Copy link
Collaborator

mewim commented Jun 19, 2023

OK. If renaming the DLL is not easy, let’s just leave it as is.

On windows the headers may get added to the map with both types of path separators,
resulting in duplicated code in the merged header file.
@benjaminwinger benjaminwinger merged commit 4e3e9a7 into master Jun 19, 2023
8 checks passed
@benjaminwinger benjaminwinger deleted the windows-binaries branch June 19, 2023 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants