openwallet-foundation / owl-akrida

Apache License 2.0
3 stars 16 forks source link

Akrida will not build due to Credo/Node dependency issue #49

Closed loneil closed 3 months ago

loneil commented 7 months ago

At this time we can't build Akrida because the image it generates pulls up-to-date NodeJS versions. And something in Akrida has broken due to a recent Node Update.

The base Akrida image pulls node 18.x and the issue appears to have cropped up with v18.20.0. (version 20 has the same problem that happened at the same time)

image

See details on Credo problem here https://github.com/openwallet-foundation/credo-ts/pull/1821

I believe this will be temporary until the Credo change is merged but in the mean time I fix this locally by pinning the Node version to pre-18.20. There's probably a few ways to do this but I'm getting around it by using a pinned base image

image

loneil commented 7 months ago

Also as per my screenshot above, wondering if there's an advantage to using that Ubuntu image and installing node with curl/apt-get over using a Node base image? (I used that Debian bullseye one out of habit, I think it's smaller too)

loneil commented 7 months ago

Credo update doesn't appear to fix this actually (though Credo now builds successfully in newer Node versions after the fix) as Akrida also has the dependency issue due to importing @aries-framework/node

Since the Credo fix for that would be under @credo-ts/node 0.5.x (likely upcoming 0.5.2?) instead we may need to

KimEbert42 commented 7 months ago

Checking build.

KimEbert42 commented 7 months ago

@loneil I reproduced the issue. I think we should pin to a specific version of ffi-napi for now. We should also look at migrating to credo.

loneil commented 7 months ago

I'll note for clarity it's keeping up to date with the updated fork of ffi-napi (this is what the Credo libraries have done to work with Node updates) created by a Credo contributor https://www.npmjs.com/package/@2060.io/ffi-napi

KimEbert42 commented 3 months ago

This appears to work now.