From 123126fd5cf0a63fd3fd90b9f4cf1fe55528cd4c Mon Sep 17 00:00:00 2001 From: Adam Obuchowicz Date: Thu, 13 Feb 2025 11:31:59 +0100 Subject: [PATCH] Add git submodule for dev-env repository. (#12264) To simplify every our dev's experience, this PR adds the repository with necessary configuration to a submodule, and adds proper symlinks so they will be automatically picked by vite. The only step is initializing the submodule: ``` $ git submodule update --init ``` Anyone without permission to the dev-env repo will get `Permission denied` error to above command. Additionally, removed the most jarringly wrong information from our CONTRIBUTING.md. This is not end of updating docs, however. --- .github/workflows/bazel-build.yml | 2 +- .github/workflows/changelog.yml | 1 - .github/workflows/engine-benchmark.yml | 1 - .github/workflows/engine-checks-nightly.yml | 15 -------- .github/workflows/engine-checks-optional.yml | 3 -- .github/workflows/engine-checks.yml | 8 ---- .github/workflows/extra-nightly-tests.yml | 2 - .github/workflows/ide-packaging-optional.yml | 3 -- .github/workflows/ide-packaging.yml | 6 --- .github/workflows/promote.yml | 1 - .github/workflows/release.yml | 13 ------- .github/workflows/std-libs-benchmark.yml | 1 - .github/workflows/wasm-checks.yml | 3 -- .gitmodules | 3 ++ app/gui/.dev-env | 1 + app/gui/.env.development | 1 + app/gui/.env.production | 1 + app/gui/.env.staging | 1 + .../src/actions/workflow/definition.rs | 2 +- docs/CONTRIBUTING.md | 38 ++++++------------- 20 files changed, 21 insertions(+), 85 deletions(-) create mode 100644 .gitmodules create mode 160000 app/gui/.dev-env create mode 120000 app/gui/.env.development create mode 120000 app/gui/.env.production create mode 120000 app/gui/.env.staging diff --git a/.github/workflows/bazel-build.yml b/.github/workflows/bazel-build.yml index 9d056b53fcb0..8d689e00a7a5 100644 --- a/.github/workflows/bazel-build.yml +++ b/.github/workflows/bazel-build.yml @@ -15,7 +15,7 @@ jobs: with: bazelisk-cache: true bazelrc: build --remote_cache=grpcs://${{ vars.ENSO_BAZEL_CACHE_URI }} --remote_cache_header="authorization=Basic ${{ secrets.ENSO_BAZEL_CACHE_TOKEN }}" - - uses: actions/checkout@v4 + - uses: submodules - name: Expose env variables run: | cat << END > app/gui/.env.production diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 76f2e440ccf1..7710163dbf6c 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -33,7 +33,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/engine-benchmark.yml b/.github/workflows/engine-benchmark.yml index 17f75008fc10..7e54a09edb17 100644 --- a/.github/workflows/engine-benchmark.yml +++ b/.github/workflows/engine-benchmark.yml @@ -35,7 +35,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/engine-checks-nightly.yml b/.github/workflows/engine-checks-nightly.yml index 195ce756beb4..f7c6d969c93c 100644 --- a/.github/workflows/engine-checks-nightly.yml +++ b/.github/workflows/engine-checks-nightly.yml @@ -36,7 +36,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -87,7 +86,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -136,7 +134,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -186,7 +183,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -236,7 +232,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -286,7 +281,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -348,7 +342,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -408,7 +401,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -469,7 +461,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -530,7 +521,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -591,7 +581,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -656,7 +645,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -719,7 +707,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -783,7 +770,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -847,7 +833,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/engine-checks-optional.yml b/.github/workflows/engine-checks-optional.yml index 0ad4a882e476..c3272342f823 100644 --- a/.github/workflows/engine-checks-optional.yml +++ b/.github/workflows/engine-checks-optional.yml @@ -38,7 +38,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -88,7 +87,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -149,7 +147,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/engine-checks.yml b/.github/workflows/engine-checks.yml index f5622d399641..d3b39f33f5c4 100644 --- a/.github/workflows/engine-checks.yml +++ b/.github/workflows/engine-checks.yml @@ -38,7 +38,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -88,7 +87,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -138,7 +136,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -199,7 +196,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -260,7 +256,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - name: Build Script Setup run: ./run --help || (git clean -ffdx && ./run --help) env: @@ -301,7 +296,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -365,7 +359,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -429,7 +422,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/extra-nightly-tests.yml b/.github/workflows/extra-nightly-tests.yml index 5a38db6c40ab..15f0168fd044 100644 --- a/.github/workflows/extra-nightly-tests.yml +++ b/.github/workflows/extra-nightly-tests.yml @@ -35,7 +35,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -107,7 +106,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/ide-packaging-optional.yml b/.github/workflows/ide-packaging-optional.yml index 54b07c0ea3a1..6ecf4e0bf5f3 100644 --- a/.github/workflows/ide-packaging-optional.yml +++ b/.github/workflows/ide-packaging-optional.yml @@ -38,7 +38,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -95,7 +94,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -158,7 +156,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/ide-packaging.yml b/.github/workflows/ide-packaging.yml index 9305a40a6955..645e456c4aaa 100644 --- a/.github/workflows/ide-packaging.yml +++ b/.github/workflows/ide-packaging.yml @@ -38,7 +38,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -105,7 +104,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -162,7 +160,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -228,7 +225,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -291,7 +287,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -384,7 +379,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/promote.yml b/.github/workflows/promote.yml index 27670eb6b287..48ba5dbb9836 100644 --- a/.github/workflows/promote.yml +++ b/.github/workflows/promote.yml @@ -57,7 +57,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 346c6e48e920..daf6d851dd8f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,7 +53,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -98,7 +97,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -156,7 +154,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -214,7 +211,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -264,7 +260,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -318,7 +313,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -370,7 +364,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -423,7 +416,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -481,7 +473,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -538,7 +529,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -614,7 +604,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -695,7 +684,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -777,7 +765,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/std-libs-benchmark.yml b/.github/workflows/std-libs-benchmark.yml index 915c6c5e70c8..b80b9b265eee 100644 --- a/.github/workflows/std-libs-benchmark.yml +++ b/.github/workflows/std-libs-benchmark.yml @@ -35,7 +35,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.github/workflows/wasm-checks.yml b/.github/workflows/wasm-checks.yml index ba585e6b70d9..a6bb6973adb4 100644 --- a/.github/workflows/wasm-checks.yml +++ b/.github/workflows/wasm-checks.yml @@ -38,7 +38,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -86,7 +85,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 @@ -134,7 +132,6 @@ jobs: uses: actions/checkout@v4 with: clean: false - submodules: recursive - if: runner.os == 'macOS' name: Setup nodejs version uses: actions/setup-node@v4 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000000..c0f10db9674b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "app/gui/.dev-env"] + path = app/gui/.dev-env + url = git@github.com:enso-org/dev-env.git diff --git a/app/gui/.dev-env b/app/gui/.dev-env new file mode 160000 index 000000000000..459a84970220 --- /dev/null +++ b/app/gui/.dev-env @@ -0,0 +1 @@ +Subproject commit 459a84970220c24282ad32c5c89e99bbf811ce2d diff --git a/app/gui/.env.development b/app/gui/.env.development new file mode 120000 index 000000000000..132b516495bc --- /dev/null +++ b/app/gui/.env.development @@ -0,0 +1 @@ +.dev-env/.env.development \ No newline at end of file diff --git a/app/gui/.env.production b/app/gui/.env.production new file mode 120000 index 000000000000..ff358514923e --- /dev/null +++ b/app/gui/.env.production @@ -0,0 +1 @@ +.dev-env/.env.prod \ No newline at end of file diff --git a/app/gui/.env.staging b/app/gui/.env.staging new file mode 120000 index 000000000000..55f42d0e2919 --- /dev/null +++ b/app/gui/.env.staging @@ -0,0 +1 @@ +.dev-env/.env.staging \ No newline at end of file diff --git a/build_tools/ci_utils/src/actions/workflow/definition.rs b/build_tools/ci_utils/src/actions/workflow/definition.rs index 6f7a6563010b..15ad8c3acdc1 100644 --- a/build_tools/ci_utils/src/actions/workflow/definition.rs +++ b/build_tools/ci_utils/src/actions/workflow/definition.rs @@ -1127,7 +1127,7 @@ pub fn checkout_repo_step() -> Step { with: Some(step::Argument::Checkout { repository: None, clean: Some(false), - submodules: Some(CheckoutArgumentSubmodules::Recursive), + submodules: None, }), ..default() } diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index f5bc8e26712e..56bb82a5498a 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -245,26 +245,11 @@ defined by [rust-toolchain](../rust-toolchain.toml) override file. The `rustup` will automatically download the appropriate compiler version along with the necessary components. -Please consult the [GUI Contribution Guide](../app/gui/docs/CONTRIBUTING.md) to -learn details on setting your system up. Quick summary: - ```bash enso$ rustup toolchain install stable # Stable toolchain required for the following tools. -enso$ cargo +stable install wasm-pack # Install the wasm-pack toolkit. -enso$ cargo +stable install cargo-watch # To enable `./run wasm watch` utility ``` -The previous three steps shall be enough to build the IDE via -`./run wasm build run wasm build --wasm-profile dev`. - -### Using Cargo Watch Plus - -Currently, `cargo-watch` has -[many issues](https://github.com/enso-org/cargo-watch-plus), including not -working on modern macOS properly. Thus, we've developed a replacement, the -[Cargo Watch Plus](https://github.com/enso-org/cargo-watch-plus). To use it, -simply export the `USE_CARGO_WATCH_PLUS=1` in your shell and the build system -will pick it up instead of the `cargo-watch`. +The previous three steps shall be enough to build the IDE via `./run ide build`. ### Getting Set Up (Documentation) @@ -290,12 +275,12 @@ You can format all of our documentation and configuration as follows: npx prettier --write ``` -### Building Enso +### Building Enso Engine -There are multiple projects in this repository, but all can be built, run and -tested using `sbt`. As long as your configuration is correct, with the correct -versions of SBT, Rust and GraalVM, the same steps can be followed on all of our -supported platforms (Linux, MacOS and Windows). +There are multiple projects in this repository, but all of the engine parts can +be built, run and tested using `sbt`. As long as your configuration is correct, +with the correct versions of SBT, Rust and GraalVM, the same steps can be +followed on all of our supported platforms (Linux, MacOS and Windows). SBT will handle downloading and building library dependencies as needed, meaning that you don't need to handle any of this manually. @@ -666,13 +651,14 @@ Hello, World! #### Running IDE You can start [IDE](https://github.com/enso-org/enso/tree/develop/gui) with a -development version of the language server. IDE executable has -`--external-backend` flag that switches off the bundled backend. That requires -you to run the project manager process yourself. Running development version of -the IDE is also possible via the `./run` script in the root of the repository: +development version of the language server. IDE executable has `--no-engine` +flag that switches off the bundled backend. That requires you to run the project +manager process yourself. Running development version of the IDE is also +possible via the npm script in the root of the repository: ```bash -enso$ ./run gui watch --skip-wasm-opt +enso$ corepack pnpm i +enso$ corepack pnpm dev:gui ``` To build the `project-manager` one needs to launch `sbt` - one way to do it is