-
Notifications
You must be signed in to change notification settings - Fork 79
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
RFC: Support Alpine #490
Labels
enhancement
Indicates new feature requests
Comments
Merged
delivered in 15.1.0 https://www.npmjs.com/package/@pact-foundation/pact-core/v/15.1.0 it comes with the added bonus of reducing the overall package size from 164mb to 116mb despite adding two new supported shared libs. this was due to this pr |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Previous issues
Problem
Alpine users are unable to utilise the
pact-js-core
andpact-js
, since we switched to a Rust backed core powered by Pact FFIThis causes inconvenience to both users, and maintainers, and friction in general for Pact adoption.
It would be nice to provide at least preliminary support for Alpine with our Pact FFI.
The Pact FFI library, since
.a
.so
musl variantsSteps
prebuildify
and native bindings, to be able to interact with our Pact FFI shared library. We pre-create these bindings in CI, so that our end-users do not need to build themselves (which requires Python/GCC and others)Breaking Changes
User Actions
None
Potential Downsides/Caveats
### Support levels
We would probably consider this less supported than our existing glibc based versions, therefore we would probably want to ask that users recreate an issues encountered in Alpine,
The following would allow us to determine if it is a general Pact issue, or one specific to Alpine.
I am unsure of how much we will be able to affect, that is Alpine specific, however we can compile a list of caveats/workarounds or bugs that appear out of them.
Pact Plugins
The Pact plugin ecosystem will not work properly on musl based systems until the following PR's are merged
Without the above PR's, the pact-plugin drivers will attempt to download non musl variants of the plugins, which are unlikely to work on Alpine without glibc/gcompat.
After the PR's are merged, the plugin-cli will attempt to download a musl variant, and fallback to the vanilla linux variant instead.
Package sizes
It may be the case that package sizes are too large, when installed on a target machine, as we store all the prebuilds in the published package.
There are a few options we could take
I know we used to download the standalone on the fly, back in older versions of pact-js/pact-node but this would cause issues in many corporate environments with proxies.
Has it previously been tested
Yes, but with modified musl variants of the plugin framework as per my above PR's
The plugin tests are currently skipped on this repo, but were enabled in my testing, to try and test it out end to end.
There were a few node based workarounds depending on the version used, and there is still an issue with some of the plugin tests on some variant combos against node 16.
Other options
The text was updated successfully, but these errors were encountered: