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]

Reply via email to