Skip to content

Conversation

@Akirathan
Copy link
Contributor

@Akirathan Akirathan commented Jan 1, 2026

Closes #14469

Pull Request Description

Move Standard.Image out of the distribution, as an external library that will be hosted on GH as an artifact.

Important Notes

Remaining problems

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 Jan 1, 2026
@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 Jan 1, 2026
@Akirathan
Copy link
Contributor Author

Akirathan commented Jan 5, 2026

First nightly release scheduled: https://github.com/enso-org/enso/actions/runs/20717064290

GitHub
Enso Analytics is a self-service data prep and analysis platform designed for data teams. - Nightly Release · 6850206

@Akirathan
Copy link
Contributor Author

Akirathan commented Jan 5, 2026

Choosing Standard.Image was not a good idea. It contains platform-specific native libraries in the polyglot/lib directory. Which means that there are 3 different versions of this library for three supported platforms. It is not yet clear how should this be supported in the library repository. The most straightforward solution now would be to merge all the native libraries into polyglot/lib directory, but that would require non-trivial changes to the sbt build configuration.

I realized this after the latest failure in the latest Upload backend job.

TL;DR

For the purpose of the demonstration, let's choose a library that has no native libraries.

Pavel Marek added 3 commits January 5, 2026 17:02
Image library is going to be uploaded to an external repository, therefore, we need all the native libraries included.
@Akirathan
Copy link
Contributor Author

Akirathan commented Jan 6, 2026

After fd8bb2283b65032aa587ed18b726145cb0947d73, the contents of built-distribution/**/lib/Enso/Image is:
obrazek

This is needed because we don't yet have a way how to distinguish remote Enso.Image library based on the current platform.

@Akirathan
Copy link
Contributor Author

Akirathan commented Jan 6, 2026

Another iteration of Nightly Release workflow at https://github.com/enso-org/enso/actions/runs/20748715350

GitHub
Enso Analytics is a self-service data prep and analysis platform designed for data teams. - Nightly Release · 87721f4

@Akirathan
Copy link
Contributor Author

Akirathan commented Jan 19, 2026

Suggestions work locally on ec3f261. Tested with:

  • sbt buildEngineDistribution
  • Build the library repository:
> (cd built-distribution/**/lib; zip -r repo.zip Standard/Image/**)
> ZIP=(realpath **/repo.zip)
  • Rewrite built-distribution/**/0.0.0-dev.yaml so that the 1std_image_repo.zip points somewhere to jar:file://$ZIP
  • Remove std image from distribution: rm -rf built-distribution/**/lib/Standard/Image
  • Ensure std image is not cached: rm -rf ~/Library/Application\ Support/org.enso/lib
  • Start GUI with corepack pnpm run dev:gui
  • Create new project.
  • Write from Standard.Image import all in text editor.
  • Try to search for Image in the component browser.
  • Suggestions are appearing.

} catch (Throwable e) {
logger.log(Logger.Level.TRACE, "Failure while loading a class: " + e.getMessage(), e);
throw e;
if (isAttemptToLoadBytecodeInNI(e)) {
Copy link
Member

Choose a reason for hiding this comment

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

What class(es) required the 355bd3d check?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

org.enso.base.Text_Utils. See the failure message in #14553 (comment).

Copy link
Member

Choose a reason for hiding this comment

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

That's very weird. I believe Text_Utils should be compiled into NI. Maybe we somehow get into findClass without trying to HostClassLoader.loadClass or HostClassLoader.getParent.loadClass first... Very strange.

@Akirathan Akirathan force-pushed the wip/akirathan/release-lib branch from 97f2eb1 to d08e428 Compare January 20, 2026 10:38
@JaroslavTulach
Copy link
Member

These failing tests:

❌ should provide an image file
Uncaught error: (Panic (No_Such_Method.Error Main UnresolvedSymbol<image_file>) (No_Such_Method.Error Main UnresolvedSymbol<image_file>))
❌ should provide an image
Uncaught error: (Panic (No_Such_Method.Error Main UnresolvedSymbol) (No_Such_Method.Error Main UnresolvedSymbol))
❌ should provide a matrix
Uncaught error: (Panic (No_Such_Method.Error Main UnresolvedSymbol) (No_Such_Method.Error Main UnresolvedSymbol))

should be moved to Image tests out of Examples_Tests says @jdunkerley.

@hubertp
Copy link
Collaborator

hubertp commented Jan 20, 2026

@Akirathan
Copy link
Contributor Author

Akirathan commented Jan 20, 2026

What about:

* [`develop`/app/gui/src/project-view/components/visualizations/HistogramVisualization.vue#L9](https://github.com/enso-org/enso/blob/develop/app/gui/src/project-view/components/visualizations/HistogramVisualization.vue?rgh-link-date=2026-01-20T10%3A51%3A52Z#L9)

* [`develop`/app/gui/src/project-view/components/visualizations/ImageBase64Visualization.vue#L4](https://github.com/enso-org/enso/blob/develop/app/gui/src/project-view/components/visualizations/ImageBase64Visualization.vue?rgh-link-date=2026-01-20T10%3A51%3A52Z#L4)

Good question. HistogramVisualization has been turned off some time ago. Image visualization works on develop, but does not work on this PR. According to @jdunkerley it should work even on this PR.

@enso-bot enso-bot bot mentioned this pull request Jan 21, 2026
2 tasks
@Akirathan Akirathan merged commit 0cfb49f into develop Jan 21, 2026
89 of 91 checks passed
@Akirathan Akirathan deleted the wip/akirathan/release-lib branch January 21, 2026 13:58
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.

Change release process to upload custom edition

5 participants