-
Notifications
You must be signed in to change notification settings - Fork 73
feat(deps): toolchain upgrades, RN output updates #342
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
base: main
Are you sure you want to change the base?
feat(deps): toolchain upgrades, RN output updates #342
Conversation
Signed-off-by: Bryce McMath <[email protected]>
|
@bryce-mcmath -- recent work in the Askar Wrapper might help with the failing tests. FYI @TimoGlastra @genaris @andrewwhitehead @berendsliedrecht on this PR. |
Signed-off-by: Bryce McMath <[email protected]>
Signed-off-by: Bryce McMath <[email protected]>
| @@ -0,0 +1,20 @@ | |||
| [env] | |||
| CMAKE_POLICY_VERSION_MINIMUM = "3.30" | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid current CICD from breaking due to unsupported CMake version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not in Askar/anoncreds, right? Is there a reason why it breaks here, but not there?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
zmq-related, which I don't believe askar or anoncreds use, so they likely don't need this
| [target.aarch64-linux-android] | ||
| rustflags = ["-C", "link-arg=-Wl,-z,max-page-size=16384"] | ||
|
|
||
| [target.armv7-linux-androideabi] | ||
| rustflags = ["-C", "link-arg=-Wl,-z,max-page-size=16384"] | ||
|
|
||
| [target.i686-linux-android] | ||
| rustflags = ["-C", "link-arg=-Wl,-z,max-page-size=16384"] | ||
|
|
||
| [target.x86_64-linux-android] | ||
| rustflags = ["-C", "link-arg=-Wl,-z,max-page-size=16384"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensuring the 16kb memory page size requirement is satisfied
|
|
||
| env: | ||
| RUST_VERSION: "1.81.0" | ||
| RUST_VERSION: "1.85.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1.82 is the oldest supported, 1.90 is the latest, this is a happy medium with no breaking changes
| strategy: | ||
| matrix: | ||
| os: [macos-13, windows-latest, ubuntu-latest] | ||
| os: [macos-14, windows-latest, ubuntu-latest] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Matching Bifold and other Credo-based mobile apps CICD MacOS version
| with: | ||
| shared-key: deps | ||
| cache-on-failure: true | ||
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.toml') }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Prevent stale cache if deps change
| # This is added so we can lock the version that zmq uses | ||
| # 0.1.49 is broken for ios targets | ||
| cmake = { version = "=0.1.48", optional = true } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
iOS issue was fixed in 0.1.50
| if(${REACT_NATIVE_VERSION} GREATER_EQUAL 76) | ||
| target_link_libraries( | ||
| ${PACKAGE_NAME} | ||
| ReactAndroid::jsi | ||
| ReactAndroid::reactnative | ||
| fbjni::fbjni | ||
| ) | ||
| elseif(${REACT_NATIVE_VERSION} GREATER_EQUAL 71) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in 76 and up, reactnativejni is not included
Signed-off-by: Bryce McMath <[email protected]>
|
|
||
| INDY_NETWORKS_GITHUB_RAW_BASE = ( | ||
| "https://raw.githubusercontent.com/hyperledger/indy-did-networks/main" | ||
| "https://raw.githubusercontent.com/hyperledger/indy-node-monitor/main/fetch-validator-status/networks.json" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previous URL no longer resolves so these tests were failing
Signed-off-by: Bryce McMath <[email protected]>
Signed-off-by: Bryce McMath <[email protected]>
Signed-off-by: Bryce McMath <[email protected]>
Signed-off-by: Bryce McMath <[email protected]>
| MACOSX_DEPLOYMENT_TARGET = "14.0" | ||
| IPHONEOS_DEPLOYMENT_TARGET = "15.1" | ||
| CMAKE_OSX_DEPLOYMENT_TARGET = "15.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@berendsliedrecht I think this is a slightly cleaner fix for setting the deployment targets, let me know what you think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think this is good :).
Signed-off-by: Bryce McMath <[email protected]>
|
@TimoGlastra @berendsliedrecht @genaris @andrewwhitehead ready for review when you have time, thanks for all the suggestions so far |
|
@bryce-mcmath can you verify that the changes from this branch are also covered in this PR to main: main...js-0.4.1 This branch is the version that Credo currently depends on. I see there's at least one fix in |
|
I'll add my review tomorrow! |
ah I was unaware of this! I will back port those changes into this PR |
|
Thanks! it's a bit of a mess TBH so appreciate you cleaning up and fixing everything :) |
Signed-off-by: Bryce McMath <[email protected]>
Signed-off-by: Bryce McMath <[email protected]>
Signed-off-by: Bryce McMath <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the work!!
For maintenance in the future, it might also be good to split the wrappers into a new repo and move the js wrapper more to be consistent with askar/anoncreds (biomejs/node (or vite) test/pnpm). We sadly do not have the time for this anymore, but would be willing to help with this and give some pointers.
| MACOSX_DEPLOYMENT_TARGET = "14.0" | ||
| IPHONEOS_DEPLOYMENT_TARGET = "15.1" | ||
| CMAKE_OSX_DEPLOYMENT_TARGET = "15.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think this is good :).
|
|
||
| ADD libindy_vdr . | ||
| COPY . . | ||
| RUN rustup show |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this still needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, was just using that for troubleshooting. Will remove
| "host": "https://github.com/hyperledger/indy-vdr/releases/download", | ||
| "packageName": "library-ios-android.tar.gz" | ||
| }, | ||
| "codegenConfig": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this codegen now fully working? I was expecting more changed in the C++ side. If this was just to test, it might be good to remove it again and look at it in a different PR as a single new feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh good point, let me double check this. I'll move it back to draft for now and will re-request your review once I make any necessary changes
Main point of this is modernizing to support React Native New Architecture and Android 16kb memory page size requirement.
Upgraded rust and c tool chain
Upgraded Node
Upgraded yarn
Upgraded React / React Native
Upgraded gradle
Updated Docker images
Updated CI macOS version
Updated broken test scripts
Added TurboModule support for new architecture
Updated min iOS and macOS deployment targets
Replaced node-pre-gyp with custom scripts matching askar-wrapper-javascript