Fixes#11604
Most issues were caused by a problem with Project List flooding the network with its requests - this was fixed on develop.
But one assertion was flaky - it assumed we will see the "real" run result on `write` node, but sometimes it is immediately overwritten by dry run.
But the most important part of this PR is adding traces to Electron packages - it's should be much easier now to debug E2E test failures.
Also renamed the previously misnamed "E2E tests" to "[GUI] integration tests".
- As asked for by @PabloBuchu, related to https://github.com/enso-org/cloud-v2/pull/1580/
- Fixes nightly Extra tests:
- Ensures that the Cloud suite **is actually ran**
- Enables logging of all tests and the Test Report on the nightly to make it possible to inspect what was being run.
Followup to #11517
Fixes the scheduled dispatch of Nightly Release workflow. The scheduled dispatch requires the `workflow_call` section specifying the inputs.
Currently, license directories are owned by both libs (`/distribution/` entry) and engine (`/tools/` entry) teams, and require review from both teams even though there are no related changes in the PR.
License changes are caused by changed dependencies in either libs or the engine. By making the license directories unowned, only the necessary reviewers will be added to the PR
close#11478
Changelog:
- add: `run release deploy-ydoc-polyglot` and `run release deploy-ydoc-nodejs` commands that build Ydoc Docker images and push them to ECR repository
- add: Ydoc native-image build for Linux PR checks
- update: CI release configuration to deploy (push to ECR repo) Ydoc Docker images during the Nightly and Release steps
Fixes#10668Fixes#8484
Summary of changes:
* `gui2` and `dashboard` are merged to `gui` directory. Various configs were merged (package.json, playwrigth, TS...). The src and e2e directories are split to `dashboard` and `project-view` for now.
* E2E tests run two servers on different ports. The tests are organized in projects. This is also to be changed soon, as we plan to [use better mocking in GUI/ProjectView](#9726)
* ESlint configs were merged to central `eslint.config.mjs`, and that file was moved to repository root. We kept the dashboard lints, but they can be relaxed. The dashboard code was changed to meet GUI lints.
* Also, the versions of linter plugins were bumped, and code fixed.
* The ide-desktop/client no longer has `dashboard` dependency - the only type used there was moved to common package.
* `common` package moved to `app`.
- While #11255 fixes the root cause of #11278, this PR fixes what triggered it - since #11198 our runners were keeping `~/.enso/credentials` file between runs, meaning that some tests were unexpectedly running in 'authenticated' mode. This PR cleans up this file to avoid that.
- Yet another part of #11220.
- We are only running relevant tests that have something to do with cloud: Base, Table and AWS. We can add more if needed.
- Also we try to ensure multiple line message in the failure report annotation (followup of #10821).
Added a step for packaging IDE which runs integration tests.
This is an additional step, not a job, because here I'm sure the package will exist and won't be built unnecessarily twice. Technically I could make a job downloading it from GH action, but didn't want to invest time to rust scripts. Once Bazel will be fully introduced, the integration test will be improved.
# Important Notes
Fixes#8487
* Drop per artifact signing
Per artifact signing was an unnecessary parameter. It is sufficient to
simply have `--sign-artifacts` parameter to control the action.
Tested locally (previously hindered by my poor understanding of CI
build config).
* Empty commit
* Disable signing artifacts for PRs and develop
Added `*-sign-artifacts` to disable/enable signing. By default it is
true, except for PRs and develop.
* nit
* typo
* lint
* linting
* Add retries when fetching tableau artifacts in sbt
Seeing frequent network failures when fetching tableau artifacts e.g.,
https://github.com/enso-org/enso/actions/runs/10705660288/job/29681570936#step:7:918
Network failures are OK but we shouldn't kill builds immediately because
of that. Let's try harder.
* update codeowners
* use backoff
* fighting with sbt
- Followup of #10964
- I assumed `aws` CLI is available, because it is on GH runners. But we are running on self-hosted by default.
- Ideally we should make the CLI available there and switch back.
- But for now, trying to run on the GH runner.
# Important Notes
The command to run the gui dev environment has been changed. Invoking the old command will print a message about that.
From now on, use `pnpm dev:gui2` in repository root.
- Remove unnecessary modules
- Remove `ts-plugin-namespace-auto-import` as it was a workaround to use the non-conventional `import *` convention
- Remove `esbuild-plugin-copy-directories` as it is unuse
- Inline modules that are only ever used once
- Inline `project-manager-shim` into `gui2` - it is only used during `gui2`'s dev mode
- Inline `content-config` into `client`
- Flatten `app/ide-desktop/lib/` to `app/ide-desktop/`
- Flatten `app/ide-desktop/lib/dashboard/` to `app/dashboard/`
# Important Notes
- As mentioned above, all remaining modules have been moved up from `app/ide-desktop/lib/` to `app/ide-desktop/`. It's not ideal but I'd rather hold off on moving them anywhere else before we have a consensus on what should go where.
- (That is to say, this may not be the final directory structure - but I figure it's fine to get *something* done so that hopefully the rest of the restructuring is simpler.)
* Share tanstack QueryClient between dashboard and IDE
Part of #10400.
* Lint
* Review: Use enso-common
* Remove outdated README
* Naming
* Fix
* Lint
* enso-common CODEOWNERS: GUI+Dashboard
* Review: Prepare for GUI to be run from cloud entry point
* Lint
* Lint
* Fix e2e tests
* Fix e2e tests in CI?
* Clean CI build
* Revert "Clean CI build"
This reverts commit 73f2fb7972.
* Fix redundant dependency
* Work around a vue-query bug
* Lint
* fmt
Outline view and completions for Enso code in VSCode.
# Important Notes
This PR provides the necessary infrastructure for building VSCode extension that includes `enso_parser` library compiled for all supported platforms.
VSCode extension can now use libraries from `sbt` that are `publishM2`-ready. To make that possible a documentation must have been provided and fixed for those modules - hence so many changes in `.scala` classes.
<img width="862" alt="image" src="https://github.com/enso-org/enso/assets/26887752/7374bf41-bdc6-4322-b562-85a2e761de2a">
Last, but not least. The outline view and completions display something.
#### Tl;dr
Closes: enso-org/cloud-v2#1132
This PR renames Connector to Datalink
---
#### Test Plan:
Everything should work as before, but instead of sending `connectorId` we send `dataLinkId` and endpoint now is `/datalink`
---
This PR fixes several issues that were appearing when running CI jobs on PRs created against the repository forks:
* electron-builder on Windows and macOS will properly recognize that the secrets are missing and will not attempt to sign the artifacts;
* similarly, fixed the S3 library tests;
* test reporter step will be now skipped, as it does not support forks.
This PR removes an outdated workflow definition file.
Essentially, a file rename went wrong and the workflow was committed both under new and old filename.
Now that #9815 has landed, we can finally bump electron-builder to the latest release. As this brings in python3 support out-of-the-box, workaround of the runtime-bump on macOS runners can be removed.
GitHub made arm64 runners generally available and changed macos-latest label to point to them.
The runner architecture is coupled with GH-hosted runners OS version: macos-13 is the last one to run on x64.
This PR essentially brings back the previous behavior, by explicitly requesting that all our x64 macOS jobs are run on macos-12 (as was before).
We should eventually migrate to macos-13 for x64 macOS and macos-14/macos-latest for arm64 macOS. However, this leads to issues with `npm install` getting stuck, so it should be probably reattempted after the CI rework.
- #9779 introduced (incorrect) detection to determine when to inject the Google Analytics tag. Instead, it should be injected by CI, because sending Google Analytics events is undesirable in development mode.
# Important Notes
None
This PR bumps the FlatBuffers version used by the backend to `24.3.25` (the latest version as of now).
Since the newer FlatBuffers releases come with prebuilt binaries for all platforms we target, we can simplify the build process by simply downloading the required `flatc` binary from the official FlatBuffers GitHub release page. This allows us to remove the dependency on `conda`, which was the only reliable way to get the outdated `flatc`.
The `conda` setup has been removed from the CI steps and the relevant code has been removed from the build script.
The FlatBuffers version is no longer hard-coded in the Rust build script, it is inferred from the `build.sbt` definition (similar to GraalVM).
# Important Notes
This does not affect the GUI binary protocol implementation.
While I initially wanted to update it, it turned out farly non-trivial.
As there are multiple issues with the generated TS code, it was significantly refactored by hand and it is impossible to automatically update it. Work to address this problem is left as [a future task](https://github.com/enso-org/enso/issues/9658).
As the Flatbuffers binary protocol is guaranteed to be compatible between versions (unlike the generated sources), there should be no adverse effects from bumping `flatc` only on the backend side.
This PR introduces [a new workflow — nightly checks](https://github.com/enso-org/enso/actions/workflows/nightly-tests.yml). It consists of the whole array of Backend checks:
* build check, Scala tests and Standard Library tests;
* covers both Community and Oracle (Enterprise) GraalVM editions (Linux-only);
* includes checks for Aarch64 macOS runner.
We do not want to run these checks on each PR due to limited runners capacity. By running them nightly, we can still catch any issues that might arise on `develop` branch.
# Important Notes
* [ ] Before merging, this requires updating the GH required checks list.