Skip to content

Extract conscrypt native libs from Snowflake and Google_Api #13211

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

Merged

Conversation

Akirathan
Copy link
Member

@Akirathan Akirathan commented Jun 2, 2025

Closes #13154

Pull Request Description

Extracts native libraries from conscrypt-openjdk-uber-2.5.2.jar. This jar is a transitive dependency both within Standard.Snowlfake and Standard.Google_Api. This PR extracts the native libs from both these jars.

Important Notes

Checklist

Please ensure that the following checklist has been satisfied before submitting the PR:

  • The documentation has been updated, if necessary.
  • Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
  • All code follows the
    Scala,
    Java,
    TypeScript,
    and
    Rust
    style guides. In case you are using a language not listed above, follow the Rust style guide.
  • Unit tests have been written where possible.
  • If meaningful changes were made to logic or tests affecting Enso Cloud integration in the libraries,
    or the Snowflake database integration, a run of the Extra Tests has been scheduled.
    • If applicable, it is suggested to paste a link to a successful run of the Extra Tests.

@Akirathan Akirathan self-assigned this Jun 2, 2025
@Akirathan Akirathan changed the title Wip/akirathan/13154 extract constrypt native libs Extract constrypt native libs Jun 2, 2025
@Akirathan Akirathan changed the title Extract constrypt native libs Extract constrypt native libs from Snowflake and Google_Api Jun 2, 2025
@Akirathan Akirathan added CI: No changelog needed Do not require a changelog entry for this PR. CI: Clean build required CI runners will be cleaned before and after this PR is built. labels Jun 2, 2025
Copy link

github-actions bot commented Jun 2, 2025

✨ GUI Checks Results

Summary

  • 🧹 Prettier: ✅ Passed
  • 🧰 GUI Checks: ❌ Failed
  • 📚 Storybook: ❌ Failed

⚠️ Action Required: Please review the failed checks and fix them before merging.

See individual check results for more details.

@Akirathan Akirathan marked this pull request as ready for review June 2, 2025 13:18
@hubertp hubertp changed the title Extract constrypt native libs from Snowflake and Google_Api Extract conscrypt native libs from Snowflake and Google_Api Jun 2, 2025
) {
None
} else {
val outputArch = validArch.replace("x86_64", "amd64")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the name of the directory that will be put inside the polyglot/lib/<osname> directory. The expected directory structure inside polyglot/lib is documented in NativeLibraryFinder.

"META-INF/SIGNINGC.SF",
"META-INF/SIGNINGC.RSA"
)
val conscryptVersion = "2.5.2"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be provided as a parameter of a function. We don't want to have multiple versions of conscrypt floating around.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I agree on this one. As mentioned in the docs for this method, org.constrypt:constrypt-openjdk-uber:2.5.2 is a transitive dependency. It is not directly listed by us anywhere. Besides, if some of our direct dependencies changes version of this transitive dependency, JPMSUtils.filterModulesFromUpdate method call will fail.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. In that case it is still broken. If we upgrade the dependency that brings conscrypt and the former bumps its version, it will only show up when running your test suite (I guess?). Ideally the inference of the version would be automatic.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it will only show up when running your test suite (I guess?)

This is no "test suite". This is done during buildEngineDistribution. So if anything upgrades the transitive dependency, there will be an early failure - buildEngineDistribution will be failing.

Ideally the inference of the version would be automatic.

Yes, ideally it should. Ideally, sbt should be properly documented and it should expose API for fetching dependencies. But it does not.

@Akirathan Akirathan merged commit 29ae5ee into develop Jun 3, 2025
94 of 99 checks passed
@Akirathan Akirathan deleted the wip/akirathan/13154-extract-constrypt_native_libs branch June 3, 2025 08:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: Clean build required CI runners will be cleaned before and after this PR is built. CI: No changelog needed Do not require a changelog entry for this PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove constrypt_openjdk_jni native libs from Standard.Google_Api
4 participants