Xuanwo commented on PR #3479: URL: https://github.com/apache/incubator-opendal/pull/3479#issuecomment-1793648221
> Project like milvus is using c binding right now. Are they manually linking the library or building from source? I am not really sure about this. > > My original thought is that they are building from source. If this is the case, changing the upstream code might break their code that is using stuff like error. Your concern is correct. milvus is using OpenDAL via clone it directly: ```shell # git clone https://github.com/jiaoew1991/opendal.git opendal git clone https://github.com/apache/incubator-opendal.git opendal cd opendal # git checkout blocking-layer if command -v cargo >/dev/null 2>&1; then echo "cargo exists" else bash -c "curl https://sh.rustup.rs -sSf | sh -s -- -y" || { echo 'rustup install failed'; exit 1;} source $HOME/.cargo/env fi pushd bindings/c cargo build || { echo 'opendal_c build failed'; exit 1; } popd mkdir -p ${ROOT_DIR}/internal/core/output/lib mkdir -p ${ROOT_DIR}/internal/core/output/include cp target/debug/libopendal_c.a ${ROOT_DIR}/internal/core/output/lib/libopendal_c.a cp bindings/c/include/opendal.h ${ROOT_DIR}/internal/core/output/include/opendal.h ``` From: https://github.com/milvus-io/milvus/blob/bf2f62c1e7231bb2f7f3f27c5807439eb63b6918/scripts/3rdparty_build.sh#L66-L82 It's by design to allow break on `main` branch and users should not rely on our main branch. Perhaps we should transition to commit-based, then shift to tag-based after formally releasing opendal-c? @jiaoew1991 > But if they just use the static library and previous header and manually link to that, changing it now will be fine. I'm worried that we're still a long way from releasing our first version of opendal-c. We may need to implement more significant changes for opendal-c. We can't simply delay them all and wait for the next version. --- Conclusion: - Users should depend on tag if we are released. - Users should depend on commit if we aren't released. - OpenDAL's main branch is by design to break APIs from time to time. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
