proxy-wasm / proxy-wasm-cpp-host

WebAssembly for Proxies (C++ host implementation)
Apache License 2.0
84 stars 69 forks source link

Remove Windows from CI #413

Closed keithmattix closed 2 months ago

keithmattix commented 2 months ago

Due to a general lack of ecosystem support for Windows (e.g. Envoy, Bazel) and our inability to get Windows working with newer toolchains, we've decided to remove Windows from CI until the project has active contributors with sufficient expertise to make it work

keithmattix commented 2 months ago

Good idea! I'll do that

keithmattix commented 2 months ago

Ah nope looks like no Windows for WAVM; false alarm. Will close this and I guess we should just merge the other PR

PiotrSikora commented 2 months ago

Ah nope looks like no Windows for WAVM; false alarm. Will close this and I guess we should just merge the other PR

It looks like CMake issue, so it might be worth updating rules_foreign_cc to a more recent version, since the one we use now is from ~2.5 years ago.

If that doesn't automagically fix the build, then I agree it's not worth pursuing further.

keithmattix commented 2 months ago

Running into an issue with rules_foreign_cc that isn't due to the build but rather bazel nested dependencies and ordering. From what I understand, bzlmod is supposed to fix this, but not sure if there's a way around it without bzlmod. In short, the dependencies for rules_foreign_cc need to be pulled in ~immediately after the repository is imported because newer versions depend on bazel_features and a couple of other things. However, because we load our repos in a function, we can't load() the just-imported dependencies inside that function under bazel rules

PiotrSikora commented 2 months ago

Running into an issue with rules_foreign_cc that isn't due to the build but rather bazel nested dependencies and ordering. From what I understand, bzlmod is supposed to fix this, but not sure if there's a way around it without bzlmod. In short, the dependencies for rules_foreign_cc need to be pulled in ~immediately after the repository is imported because newer versions depend on bazel_features and a couple of other things. However, because we load our repos in a function, we can't load() the just-imported dependencies inside that function under bazel rules

See bazel/dependencies.bzl and bazel/dependencies_import.bzl.

keithmattix commented 2 months ago

Running into an issue with rules_foreign_cc that isn't due to the build but rather bazel nested dependencies and ordering. From what I understand, bzlmod is supposed to fix this, but not sure if there's a way around it without bzlmod. In short, the dependencies for rules_foreign_cc need to be pulled in ~immediately after the repository is imported because newer versions depend on bazel_features and a couple of other things. However, because we load our repos in a function, we can't load() the just-imported dependencies inside that function under bazel rules

See bazel/dependencies.bzl and bazel/dependencies_import.bzl.

Ah, I didn't push up my latest changes; I played around with both of those files, but I think there's an import cycle since we pull the wavm repositories and stuff in the same function we import the bazel rules. I suppose I could try to split them up?

keithmattix commented 2 months ago

Ok I figured out the bazel issues, and Linux builds fine, but looks like there's still some pathing issues on Windows

PiotrSikora commented 2 months ago

Linux builds fine, but looks like there's still some pathing issues on Windows

ACK, thanks for trying! Feel free to drop Windows support.

PiotrSikora commented 2 months ago

As mentioned before, removal of Wasmtime on Windows from the CI should be done as part of #406, since it works fine until the Wasmtime update, so this PR can be closed. Thanks!