Skip to content

Conversation

@vitvakatu
Copy link
Contributor

@vitvakatu vitvakatu commented Jan 5, 2026

Pull Request Description

  • Better engine build configuration, building the engine on Windows is now working.
  • Bazel configuration for Rust-based installer and uninstaller binaries
  • Building installer on Windows works, except for version metadata (WIP on all platforms).

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.

Pavel Marek and others added 30 commits October 2, 2025 19:30
This forces Bazel to add the cc compiler_executable to the sandbox.
# Conflicts:
#	project/BazelSupport.scala
@vitvakatu vitvakatu self-assigned this Jan 5, 2026
@vitvakatu vitvakatu added the CI: No changelog needed Do not require a changelog entry for this PR. label Jan 5, 2026
@vitvakatu vitvakatu marked this pull request as ready for review January 22, 2026 14:31
Copy link
Contributor

@farmaazon farmaazon left a comment

Choose a reason for hiding this comment

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

I'm curious how did we lost 3k linkes in Module.bazel.lock?


// Build the installer-specific config that the Rust code expects
const installerSpecificConfig = {
publisher: 'New Byte Order sp. z o.o.',
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this should be now Enso Analytics Ltd. but you may confirm with someone higher.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You are right. I confirmed with James and changed it for the legacy build as well.

Comment on lines +1 to +6
//! Binary to prepare installer payload for Bazel builds.
//!
//! This binary uses `ide_ci` to create the installer payload archive (via external tar)
//! and metadata files.
//!
//! Usage: prepare_payload <unpacked_dir> <output_archive> <output_metadata>
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm ok with this solution, but I wonder if could we merge it with build.rs of the actual crate producing enso installer?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am considering this because it can potentially simplify things, but at the time, it comes at a cost:

  • Providing access to the tar executable for the sandboxed build script is rather awkward
  • Pure-Rust implementation of compress_directory_contents is needed to not use tar executable, which is not entirely awful, but I would avoid that.
  • build script needs to handle both codepaths, which is also undesirable

Overall, I would keep it as it is for now, because the fate of windows installer is unclear anyway.

Comment on lines 42 to 49
/**
* Regex pattern to match files that should have environment variable replacements applied.
* This pattern covers:
* - config.js or config-<hash>.js (GUI config files)
* - index.html (GUI entry point)
* - index.mjs or preload.mjs (Electron client entry points)
*/
const filesRegex = /config(-[0-9a-zA-Z]+)?\.js$|index\.html$|(index|preload)\.mjs$/
Copy link
Contributor

Choose a reason for hiding this comment

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

Oh well, for clarity I would probably just make three strings/regex for every point, and then three ifs

to consider.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep, it is indeed simpler. Done.

@vitvakatu vitvakatu requested a review from jdunkerley as a code owner January 26, 2026 14:21
@vitvakatu vitvakatu added the CI: Ready to merge This PR is eligible for automatic merge label Jan 26, 2026
@mergify mergify bot merged commit 603df36 into develop Jan 26, 2026
104 of 106 checks passed
@mergify mergify bot deleted the wip/vitvakatu/bazel-app-build-windows branch January 26, 2026 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI: No changelog needed Do not require a changelog entry for this PR. CI: Ready to merge This PR is eligible for automatic merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants