Skip to content

Commit ca275c6

Browse files
committed
Removing project-manager environment variable and refactoring
1 parent 685da06 commit ca275c6

File tree

7 files changed

+16
-38
lines changed

7 files changed

+16
-38
lines changed

app/electron-client/BUILD.bazel

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ esbuild(
4444
"paths.ts",
4545
],
4646
bundle = True,
47+
# Some configuration options (like plugins) cannot be defined in Bazel rule, so we use a config file.
4748
config = ":esbuild.config.mjs",
49+
define = {
50+
"process.env.ELECTRON_DEV_MODE": "false",
51+
"process.env.ENSO_IDE_VERSION": '"2025.0.0-dev"',
52+
"process.env.ENSO_IDE_COMMIT_HASH": '"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"',
53+
},
4854
entry_points = [
4955
"src/index.ts",
5056
"src/preload.ts",
@@ -56,9 +62,13 @@ esbuild(
5662
"bufferutil",
5763
"utf-8-validate",
5864
"encoding",
65+
"supports-color",
5966
],
67+
format = "esm",
6068
output_dir = True,
69+
platform = "node",
6170
sourcemap = "linked",
71+
target = ["node20"],
6272
visibility = ["//visibility:public"],
6373
deps = npm_link_targets(),
6474
)
Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
1-
/** @file Esbuild config file. */
1+
/** @file Esbuild config for building the electron client. */
22
import { fileURLToPath } from 'node:url'
33

44
import { wasmLoader } from 'esbuild-plugin-wasm'
55

66
export default {
7-
format: 'esm',
8-
platform: 'node',
97
outExtension: { '.js': '.mjs' },
108
plugins: [wasmLoader()],
11-
target: ['node20'], // electron31
129
alias: {
1310
'@': fileURLToPath(new URL('./src', import.meta.url)),
1411
},
15-
define: {
16-
'process.env.ELECTRON_DEV_MODE': 'false',
17-
'process.env.GUI_CONFIG_PATH': '"../gui/vite.config.ts"',
18-
'process.env.ENSO_IDE_VERSION': '"2025.0.0-dev"',
19-
'process.env.ENSO_IDE_COMMIT_HASH': '"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"',
20-
},
2112
}

app/electron-client/esbuildConfig.ts

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,14 @@ import * as paths from './paths'
1212
*
1313
* The following environment variables are required:
1414
* - `ENSO_BUILD_IDE` - output directory for bundled client files;
15-
* - `ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH` - path to the project manager executable relative
16-
* to the PM bundle root;
1715
* @see bundlerOptions
1816
*/
1917
export function bundlerOptionsFromEnv(devMode = false): esbuild.BuildOptions {
20-
return bundlerOptions(
21-
path.join(paths.getIdeDirectory(), 'client'),
22-
paths.getProjectManagerInBundlePath(),
23-
devMode,
24-
)
18+
return bundlerOptions(path.join(paths.getIdeDirectory(), 'client'), devMode)
2519
}
2620

2721
/** Get options without relying on the environment. */
28-
export function bundlerOptions(
29-
outdir: string,
30-
projectManagerInBundlePath: string,
31-
devMode = false,
32-
): esbuild.BuildOptions {
22+
export function bundlerOptions(outdir: string, devMode = false): esbuild.BuildOptions {
3323
return {
3424
bundle: true,
3525
outdir,
@@ -44,9 +34,7 @@ export function bundlerOptions(
4434
'@': fileURLToPath(new URL('./src', import.meta.url)),
4535
},
4636
define: {
47-
'process.env.PROJECT_MANAGER_IN_BUNDLE_PATH': JSON.stringify(projectManagerInBundlePath),
4837
'process.env.ELECTRON_DEV_MODE': JSON.stringify(String(devMode)),
49-
'process.env.GUI_CONFIG_PATH': JSON.stringify(path.resolve('../gui/vite.config.ts')),
5038
'process.env.ENSO_IDE_VERSION': JSON.stringify(process.env.ENSO_IDE_VERSION),
5139
'process.env.ENSO_IDE_COMMIT_HASH': JSON.stringify(process.env.ENSO_IDE_COMMIT_HASH),
5240
},

app/electron-client/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@
7171
"dist": "vite-node dist.ts",
7272
"lint": "eslint . --cache --max-warnings=0",
7373
"ide-integration-test": "playwright test",
74-
"watch:windows": "cross-env ENSO_IDE_VERSION=0.0.0-dev ENSO_IDE_COMMIT_HASH=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ENSO_BUILD_IDE=%LOCALAPPDATA%\\Temp\\enso\\dist\\ide ENSO_BUILD_PROJECT_MANAGER=%CD%\\..\\..\\dist\\backend ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH=bin\\project-manager.exe ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION=0 ENSO_POLYGLOT_YDOC_SERVER=wss://localhost:8080 vite-node watch.ts",
75-
"watch:linux": "ENSO_IDE_VERSION=\"${ENSO_IDE_VERSION:-0.0.0-dev}\" ENSO_IDE_COMMIT_HASH=\"${ENSO_IDE_COMMIT_HASH:-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}\" ENSO_BUILD_IDE=\"${ENSO_BUILD_IDE:-/tmp/enso/dist/ide}\" ENSO_BUILD_PROJECT_MANAGER=\"${ENSO_BUILD_PROJECT_MANAGER:-\"$(pwd)/../../dist/backend\"}\" ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH=\"${ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH:-bin/project-manager}\" ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION=\"${ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION:-0}\" ENSO_POLYGLOT_YDOC_SERVER=\"${ENSO_POLYGLOT_YDOC_SERVER:-wss://localhost:8080}\" vite-node watch.ts \"$@\"",
76-
"watch:macos": "ENSO_IDE_VERSION=\"${ENSO_IDE_VERSION:-0.0.0-dev}\" ENSO_IDE_COMMIT_HASH=\"${ENSO_IDE_COMMIT_HASH:-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}\" ENSO_BUILD_IDE=\"${ENSO_BUILD_IDE:-/tmp/enso/dist/ide}\" ENSO_BUILD_PROJECT_MANAGER=\"${ENSO_BUILD_PROJECT_MANAGER:-\"$(pwd)/../../dist/backend\"}\" ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH=\"${ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH:-bin/project-manager}\" ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION=\"${ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION:-0}\" ENSO_POLYGLOT_YDOC_SERVER=\"${ENSO_POLYGLOT_YDOC_SERVER:-wss://localhost:8080}\" vite-node watch.ts \"$@\""
74+
"watch:windows": "cross-env ENSO_IDE_VERSION=0.0.0-dev ENSO_IDE_COMMIT_HASH=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ENSO_BUILD_IDE=%LOCALAPPDATA%\\Temp\\enso\\dist\\ide ENSO_BUILD_PROJECT_MANAGER=%CD%\\..\\..\\dist\\backend ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION=0 ENSO_POLYGLOT_YDOC_SERVER=wss://localhost:8080 vite-node watch.ts",
75+
"watch:linux": "ENSO_IDE_VERSION=\"${ENSO_IDE_VERSION:-0.0.0-dev}\" ENSO_IDE_COMMIT_HASH=\"${ENSO_IDE_COMMIT_HASH:-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}\" ENSO_BUILD_IDE=\"${ENSO_BUILD_IDE:-/tmp/enso/dist/ide}\" ENSO_BUILD_PROJECT_MANAGER=\"${ENSO_BUILD_PROJECT_MANAGER:-\"$(pwd)/../../dist/backend\"}\" ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION=\"${ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION:-0}\" ENSO_POLYGLOT_YDOC_SERVER=\"${ENSO_POLYGLOT_YDOC_SERVER:-wss://localhost:8080}\" vite-node watch.ts \"$@\"",
76+
"watch:macos": "ENSO_IDE_VERSION=\"${ENSO_IDE_VERSION:-0.0.0-dev}\" ENSO_IDE_COMMIT_HASH=\"${ENSO_IDE_COMMIT_HASH:-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}\" ENSO_BUILD_IDE=\"${ENSO_BUILD_IDE:-/tmp/enso/dist/ide}\" ENSO_BUILD_PROJECT_MANAGER=\"${ENSO_BUILD_PROJECT_MANAGER:-\"$(pwd)/../../dist/backend\"}\" ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION=\"${ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION:-0}\" ENSO_POLYGLOT_YDOC_SERVER=\"${ENSO_POLYGLOT_YDOC_SERVER:-wss://localhost:8080}\" vite-node watch.ts \"$@\""
7777
}
7878
}

app/electron-client/paths.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ export function getProjectManagerBundlePath(): string {
2020
return requireEnv('ENSO_BUILD_PROJECT_MANAGER')
2121
}
2222

23-
/** Path to the project manager executable relative to the PM bundle root. */
24-
export function getProjectManagerInBundlePath(): string {
25-
return requireEnv('ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH')
26-
}
27-
2823
/** Get the environment variable value, assert that it is set. */
2924
function requireEnv(name: string) {
3025
const value = process.env[name]

app/electron-client/src/globals.d.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ declare global {
4040
readonly ENSO_BUILD_ELECTRON_BUILDER_CONFIG?: string
4141
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
4242
readonly npm_package_name?: string
43-
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
44-
readonly PROJECT_MANAGER_IN_BUNDLE_PATH: string
4543

4644
// === Integration test variables ===
4745

@@ -55,8 +53,6 @@ declare global {
5553

5654
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
5755
readonly ELECTRON_DEV_MODE?: string
58-
// @ts-expect-error The index signature is intentional to disallow unknown env vars.
59-
readonly GUI_CONFIG_PATH?: string
6056
}
6157
}
6258
}

build_tools/build/src/ide/web.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ pub mod env {
3535
ENSO_BUILD_GUI_WASM_ARTIFACTS, Vec<PathBuf>;
3636
ENSO_BUILD_GUI_ASSETS, PathBuf;
3737
ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION, Version;
38-
ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH, PathBuf;
3938
}
4039

4140
// === Electron Builder ===
@@ -192,7 +191,6 @@ impl ProjectManagerInfo {
192191
impl FallibleManipulator for ProjectManagerInfo {
193192
fn try_applying<C: IsCommandWrapper + ?Sized>(&self, command: &mut C) -> Result {
194193
command.set_env(env::ENSO_BUILD_PROJECT_MANAGER, &self.bundle_location)?;
195-
command.set_env(env::ENSO_BUILD_PROJECT_MANAGER_IN_BUNDLE_PATH, &self.pm_executable)?;
196194
command.set_env(env::ENSO_BUILD_IDE_BUNDLED_ENGINE_VERSION, &self.latest_bundled_engine)?;
197195
Ok(())
198196
}

0 commit comments

Comments
 (0)