Commit Graph

5490 Commits

Author SHA1 Message Date
Adam Obuchowicz
4a249688e8
Unify Frontend App (#11287)
Fixes #10668
Fixes #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`.
2024-10-11 18:23:02 +00:00
Jaroslav Tulach
204b37c6c3
Special handling of last signature in a block (#11289) 2024-10-11 15:38:47 +02:00
Pavel Marek
d9b3c75c5d
Remove TailCall.TailPosition.NotTail metadata. (#11303)
`TailCall.TailPosition.NotTail` metadata is attached to every `IR` element that is not in tail position. Which is true for most IR elements. This is inefficient and unnecessary. This PR removes this metadata and keeps only `TailCall.TailPosition.Tail`. This removes few bytes from `MetadataStorage` from most of IR elements

# Important Notes
To check whether `ir` element is not in tail position, we used to check it with something like this `ir.getMetadata(TailCall) == Some(TailCall.TailPosition.NotTail)`, now, we simply can do it with `ir.getMetadata(TailCall) == None`
2024-10-11 11:17:12 +00:00
Jaroslav Tulach
eccc3a0d1e
Avoid JavaScript and Python in Enso native launcher (#11279) 2024-10-11 06:22:28 +02:00
Radosław Waśko
2843dcbf4a
When connecting to a Postgres database through a datalink stored on Enso Cloud, its asset ID is included in the audit logs (#11291)
- Closes #9869
2024-10-10 15:18:47 +00:00
Sergei Garin
239a6803bf
Fix updating conflicting project (#11111)
This PR fixes a bug, when uploading a duplicate project to local backend threw a crash on windows.


https://github.com/user-attachments/assets/fe1bd7a7-d840-4bb1-b3f6-e0beec70fcd4
I found a bug when we upload a project to a remote backend, it throws a 500 error. Notified @PabloBuchu about that.

Also, @hubertp proved that the ProjectManager always duplicates a project no matter which option we choose(either "update" or "rename“).  So I removed the "update" button if we upload a project locally
2024-10-10 14:51:59 +00:00
Radosław Waśko
3458fe4fe1
Accessing and modifying description and labels of Enso Cloud assets (#11255)
- Closes #11227
- Additionally, it should fix #11278 by ensuring that every scheduled message goes to the desired endpoint, by splitting each batch by endpoint.
2024-10-10 12:11:10 +00:00
Hubert Plociniczak
468b643aad
Add retries to Data.read (#11269)
* Add retries to HTTP Get requests

A quick solution to random network failures for GET HTTP requests.
Should reduce the number of IOExceptions that users see while fetching
data.

* Use homemade retry logic for http requests

* Add retries to whole Data.read

Previously, we added retries only to fetch HTTP_Request. That was
insufficient as intermittent errors might happen while reading body's
stream.

Enhanced our simple server's crash endpoint to allow for different kind
of failures as well as simulate random failures.

* Remove retries from Java

Increased the scope of retries in the previous commit.

* nit

* Address PR comments

* PR comments

* Remove builtin
2024-10-10 10:25:16 +02:00
Radosław Waśko
669ac97d9e
Clean up credentials file after E2E job. (#11285)
- 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.
2024-10-09 15:02:54 +00:00
Hubert Plociniczak
7f5c0e6ef2
Improve CI feedback when directory is missing (#10608)
* Improve CI feedback when directory is missing

As motivated by https://github.com/enso-org/enso/actions/runs/10006095519/job/27658100782?pr=10577#step:7:2277

* update codeowners

* nit
2024-10-09 16:58:42 +02:00
Adam Obuchowicz
7c5124094e
Add lint for jsdocs in GUI2 (#11234)
Part of #10526 (without TS structures: interfaces, type aliases etc.)

Added lints checking for jsdocs presence (and their format) and generated stub with TODO for missing ones. Now only 344 docs are missing 🙃

# Important Notes
Many changes are just automated, but they are in the middle commit. So recommended way of reviewing is review `Add jsdoc to eslint config` for checking config changes, and then `Some of the missing documentation and fixes`.
2024-10-09 12:26:56 +00:00
Dmitry Bushev
78993a0d1a
Run node in a different execution environment (#11173)
close #10719

Changelog:
- add: optional `expressionConfigs` parameter to the `executionContext/recompute` request
- update: `IdExecutionInstrument` allowing to run a single node in a specified execution environment
- refactor: move tests related to the recompute request to a separate test suite. Otherwise the `RuntimeServerTest` is becoming too bloated

# Important Notes
The updated `executionContext/recompute` request.

```typescript
interface ExecutionContextRecomputeParameters {
/** The execution context identifier. */
contextId: ContextId;

/** The expressions that will be invalidated before the execution.
*
*  Only the provided expression ids are invalidated excluding the dependencies.
*/
invalidatedExpressions?: "all" | ExpressionId[];

/** The execution environment that will be used in the execution. */
executionEnvironment?: ExecutionEnvironment;

/** The execution configurations for particular expressions.
*
*  The provided expressions will be invalidated from the cache with the
*  dependencies. The result of the execution will stay in the cache until the
*  cache is invalidated by editing the node or other means.
*/
expressionConfigs?: ExpressionConfig[];
}

interface ExpressionConfig {
/** The expression identifier. */
expressionId: ExpressionId;
/** The execution environment that should be used to run this expression. */
executionEnvironment?: ExecutionEnvironment;
}
```

#### Use cases

- to re-run a single node without re-running the dependent nodes (subtree), put the node id in the `invalidatedExpressions` parameter.
- to re-run a node with dependent nodes (subtree), put the node id in the `expressionConfigs` parameter with empty `executionEnvironment`
- to re-run a node in a different execution environment, put the node  id in the `expressionConfigs` and specify the `executionEnvieronment`
2024-10-09 12:09:45 +00:00
James Dunkerley
9d9c03eeaa
Some Additional Error checks for Enso_File (#11275)
- Check the validity of `Enso_Path` when making an `Enso_File`.
- Check that not an error when fetching asset reference.
- Added display text for `Enso_User`.

![image](https://github.com/user-attachments/assets/77e4bfe8-d4f4-4de5-9ccc-a7c6519d4759)

Check for `to_text` use within Enso_Cloud.
2024-10-09 11:12:25 +00:00
somebody1234
7a00e6ef26
Dashboard improvements (from 24 September 2024 + 30 September 2024) (#11219)
- Close https://github.com/enso-org/cloud-v2/issues/1508
- ⚠️ Labels modal - add selection indicator where user can (de)select multiple labels
- Checkboxes currently still cause the dialog to (incorrectly) close
- Edit datalink -> select enso secret -> options are too narrow for enso path. Strip enso://Users(Teams), if possible make the options list longer on the left side
- Added (or rather, re-enabled via CSS) horizontal scroll instead
- Make Versions, Sessions, Settings as tabs similar to documentation panel in graph editor
- Edit description in context menu should open asset panel with description input active
- Edit secret should be moved to asset panel (same like datalink)
- Dim background when "edit description", "edit secret", or "edit datalink" are clicked/triggered via shortcut to highlight input
- Hide unused (= no backend support) columns and icons: accessed by projects and accessed data
- *Partial* frontend fixes for https://github.com/enso-org/cloud-v2/issues/1529
- (1) Fix settings title being horizontally centered and split on multiple lines
- (2)  backend issue
- (3)  out of scope
- (4)  backend issue
- (5)  out of scope
- (6)  out of scope
- (7)  backend issue
- (8)  already fixed in #11126
- (9)  out of scope (potentially requires a way to trigger a tooltip on a disabled button)
- (10)  out of scope
- (11)  out of scope
- (12)  out of scope
- (13) URL encode `enso://` URLs in "copy as path"
- (14) Double click on datalink make asset open and close (not sure if this has already been fixed)
- (15) Clicking anywhere on Asset Panel no longer deselects assets (not sure if this has already been fixed)
- (16)  addressed in #11268
- (17) Make list of labels in Asset Panel (right sidebar) horizontal instead of (incorrectly) vertical
- (18) Only show "Billing" settings tab for organization admins
- Use "workspace" instead of "network" icon for project tabs
- Other fixes:
- Fix Asset Panel (right sidebar) not being able to be toggled off if it is temporarily open (when triggered from editing description, or editing secret, or editing datalink)
- Make "cancel" and "reset" buttons default to outline variant, instead of ghost variant
- Fix style of dropdown
- Change Datalink editor dialog so that object keys are above inputs, not beside them. This gives inputs much more horizontal space for children of deeply nested objects.

Issues left to fix:
- Checkboxes currently still cause the dialog to (incorrectly) close
- "Edit description" actions etc. do not properly focus inputs

Issues left to do (out of scope):
- Show username of user currently using a project (possibly as tooltip?) if the project is currently disabled.
- Dropdown and autocomplete entries should be in their own dialog, so that they can escape the parent dialog if they are too long

# Important Notes
None
2024-10-09 09:10:49 +00:00
Dmitry Bushev
80317dc950
Eliminate scala.Some allocations (#11259)
close #10973

Changelog:
- update: `IR` interface add nullable `identifiedLocation()`, and create a `location()` getter
- update: IR nodes contain nullable `identifiedLocation` field
- update: persistence of `IdentifiedLocation` supports nullable values

# Important Notes
80% less allocations of `scala.Some`

#### Before

![2024-10-07-131421_1165x185_scrot](https://github.com/user-attachments/assets/1d84ef19-652c-4bef-8d7f-eed63a7b6b50)

#### After

![2024-10-07-131513_1163x186_scrot](https://github.com/user-attachments/assets/3d71a932-7861-4a97-bc84-eafc530dcce3)
2024-10-09 08:54:37 +00:00
AdRiley
26c711ab14
Enable SQLServer select columns (#11270)
* Enable SQLServer select columns

* Code review feedback

* Code Review feedback
2024-10-08 22:57:36 +03:00
marthasharkey
1ae646419f
add method for xml doc drilldown (#11258) 2024-10-08 15:23:41 +00:00
Nikita Pekin
6e11e6ab9a
Fix invalid ${rust-jni.out} in Nix flake on non-Linux systems (#11264)
`fenix.packages.${system}.minimal` is a `toolchain` not a `derivation`, so Nix `devShell`s are broken on non-linux systems because the `devShell` expects `${rust-jni.out}` to evaluate to a path. Replacing `fenix.packages.${system}.minimal` with `fenix.packages.${system}.minimal.toolchain` fixes this because `.toolchain` is a `derivation` which has an `.out` field.

Also formats the `flake.nix` since it contains a mixture of tabs and spaces. The two commits are separated for ease-of-review.

cc @somebody1234
2024-10-07 15:50:13 +00:00
Gregory Michael Travis
47bf591b5a
Add format parameter to Float.parse (#11229) 2024-10-07 15:43:57 +00:00
Gregory Michael Travis
cce50fab3a
Extend the range of int/float arguments to outside the range of Java long, in ceil, floor, and truncate (#11135) 2024-10-07 11:36:17 -04:00
AdRiley
d0f0770ef4
Add DB_Table feature flags (#11163)
* Refactor

* Fix

* More fixes

* Fixes

* Fix

* Fix imports

* Fix

* Fix

* Fix Test

* Fix

* Fix

* is_feature_supported API

* Add SQLServer Tests

* SQLServer Select_columns functional

* SQLServer Filter functional

* Aggregate

* order feature

* Remove old order flag

* Join

* Union

* Distinct

* Text_cleanse

* Remove Nothing tests

* add_row_number and integration

* Make_table_from

* Feature flag failing tests

* Column_operations

* Set

* date_time off

* Conversion

* More flags

* Merge

* Expressions

* TakeDrop

* Missing

* Cross_join

* More flags

* Temporaily disable

* Fix merge issue

* Update other dbs

* Code review changes

* Code review changes

* Code revoew changes

* Fix

* Fix

* Fix

* Fix

* Fix

* Code review fix

* Typo

* Code review changes

* Casing

* Add comments

* Add comments

* Update

* Fix

* Fix imports
2024-10-07 16:05:09 +01:00
Jaroslav Tulach
c85363f425
Compute the exception message sooner than context is closed (#11241) 2024-10-07 14:26:40 +02:00
Hubert Plociniczak
9429a4540a
Do not run visualizations on InterruptedException (#11250)
* Do not run visualizations on InterruptException

There is no point in running visualization for the expression value that
is InterruptedException. The latter is likely to bubble up the exception
or create one that will be confusing to the user.

Closes #11243 and partially addresses some of the symptomes of #11084.

* Add a test for confusing visualization failures

Previously a visualization failure would be reported:
```
Method `+` of type sleep interrupted could not be found.
```

* PR review

Nit
2024-10-07 12:29:17 +02:00
AdRiley
a4f800dbf0
Add Coalesce tests and fix In-Memory version (#11242)
Add tests for coalesce and fix the In-memory version

# Important Notes
The distribution/lib/Standard/Database/0.0.0-dev/src/Internal/IR/From_Spec.enso change isn't actually needed for this MR as I switched away from using literal tables for these tests as trying to mix 2 literal tables doesn't look to be supported. The change I added will let any future developers know that.
2024-10-07 09:02:11 +00:00
Radosław Waśko
f1c2015970
Log failure to refresh the Cloud tokens (#11261)
- Trying to debug #11145, I'm adding logging of when token is refreshed and when that fails, with possibly some details that are included in the response.
- Also, the expired case is now narrowed down from 400-499 to just 401 as that's what [OAuth spec](https://www.rfc-editor.org/rfc/rfc6750.html#section-3.1) says is the correct status code for expired token. Other errors are reported as unexpected error, with more details.
2024-10-07 08:30:41 +00:00
James Dunkerley
fd72ab7052
Remove some catch alls (#11254)
- Allow Interrupted Exceptions to float out of the web requests.
- Use `Type_Error` rather than Any when catching auto scoping resolving.
- Rename `Java_Exception` to `JException`
2024-10-04 21:32:56 +00:00
Radosław Waśko
35e86e42b9
Run only relevant tests in the Cloud workflow (#11249)
- 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).
2024-10-04 11:01:23 +00:00
marthasharkey
37621a9f90
Full white space rendering and links fix (#11238) 2024-10-03 16:01:26 +00:00
Adam Obuchowicz
c7cc5f0be0
Run integration in CI. (#11198)
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
2024-10-03 13:41:22 +00:00
James Dunkerley
a2c853c6e3
Small Fixes (#11236)
- Left over from the last PR.
- Widget for `headers` in `URL.fetch` extension.
- Fix `Left` and Right` to allow columns or expressions in it.
2024-10-02 18:57:02 +00:00
Radosław Waśko
0399a4570d
Resolving ~ in Enso asset paths to user home (#11235)
- Closes #11226
2024-10-02 18:49:43 +00:00
Radosław Waśko
0302670092
Reporting Enso test failures as annotations on the PR (#10821) 2024-10-02 16:01:28 +00:00
marthasharkey
5f1d32f1aa
Scatterplot: Add filter down node functionality (#11162) 2024-10-02 13:35:11 +00:00
marthasharkey
7b63b66453
use new icon for adding new nodes (#11213) 2024-10-02 09:49:14 +00:00
Jaroslav Tulach
837a4d53b5
Avoid NPE on missing @anno name (#11224) 2024-10-02 11:15:41 +02:00
Radosław Waśko
a23b66925d
Fix cloud tests by using correct config from the repo (#11223)
- Part of #11220
2024-10-02 08:05:08 +00:00
Hubert Plociniczak
ad53c824ab
Don't send expression updates about interrupts (#11218)
There is no value in sending expression updates involving interrupts to the user:
![Screenshot from 2024-09-30 14-47-17-2](https://github.com/user-attachments/assets/78fca5bf-085d-4c1c-99fb-0acb5f0a31a3)

Adding more logging information to see how aborts affect execution.

Related to #11084.
2024-10-01 19:43:06 +00:00
Gregory Michael Travis
3a22147eaf
Add format parameter to Decimal.parse (#11205) 2024-10-01 18:55:40 +00:00
Dmitry Bushev
0b8a0c493a
Allow project manager to read files (#11204)
close #11187

Changelog:
- add: `--filesystem-read-path` project manager command to read a file path and return its contents to stdout
2024-10-01 16:52:29 +00:00
Jaroslav Tulach
7f9cf7a916
Fixing Enso projects classpath while updating to IGV 1.20 (#11195) 2024-10-01 13:48:50 +02:00
James Dunkerley
6ea716f1b3
Widget for Database.connect (#11216)
- Use auto-scoping for Redshift, SQLServer and Snowflake.
![image](https://github.com/user-attachments/assets/2f5ff24a-44f4-4e87-909a-e064b8653511)
- Fix for widgets on Header functions.
![image](https://github.com/user-attachments/assets/4384efcf-a4da-48b1-b571-1167ca8d0134)
- Move `Snowflake_Details` to `Standard.Snowflake.Connection` namespace to make widgets work.
- Add widgets to `Snowflake_Details`.
![image](https://github.com/user-attachments/assets/b51d0126-a768-4f4a-9d87-c42c8e91e26b)
- Typo fix for SQLServer SPI.
- Change SQLServer port to be an Integer and added default.
- Reordered parameters on SQLServer **(potentially breaking change)**.
- Added widgets to SQLServer.
![image](https://github.com/user-attachments/assets/1c744da4-7913-4a87-9e64-fc10442a06eb)
- Added widget for JDBC options (as well as conversion from Vector to options).
![image](https://github.com/user-attachments/assets/4958b1e4-4cbc-43e3-8381-64e5ce7ea8ff)
- Added header alias to `use_first_row_as_names`.
- Added various aliases to `read` and `write`.
2024-10-01 08:43:03 +00:00
Jaroslav Tulach
ddbb8e22bd
Updating snakeyaml and removing no longer needed patches (#11207) 2024-10-01 05:03:28 +02:00
Ilya Bogdanov
eea23b178e
Input nodes (#11165)
Closes #10696

https://github.com/user-attachments/assets/1163a288-7b91-462d-9774-beaf4fc34416
2024-09-30 21:20:08 +00:00
Pavel Marek
e3eb1ec7d5
Fix booting enso on MacOS (#11212)
Introduce `jna-wrapper` sbt project that wraps `com.sun.jna` automatic JMPS module into our own artifact so that we can control its name.
2024-09-30 15:58:12 +00:00
Sergei Garin
d7a87c41f3
Increase z-index for dialogs/popovers (#11168) 2024-09-30 12:31:31 +03:00
somebody1234
5bdd564176
Replace imports of tailwind-variants with imports of #/utilities/tailwindVariants (#11209)
- Replace imports of `tailwind-variants` with imports of `#/utilities/tailwindVariants`
- A very minor change, just wanted to do it for consistency's sake

# Important Notes
None
2024-09-30 08:31:37 +00:00
Jaroslav Tulach
da33c6d572
Use IR.STRUCTURE_COMPARATOR to compare two IR objects (#11178) 2024-09-30 10:28:34 +02:00
AdRiley
28a470d705
graph editor icons (#11208) 2024-09-28 16:23:31 +01:00
James Dunkerley
41000b88f1
Fix signing yet again. (#11206)
- Add a new file to list of things to sign...
2024-09-27 20:58:17 +00:00
Hubert Plociniczak
b5d60a0660
Eliminate Akka's shutdown hook (#11202)
Seeing
```
[WARN] [akka.actor.CoordinatedShutdown] Could not addJvmShutdownHook, due to: Shutdown in progress
```
in the logs.
We are already shutting down resources, including ActorSystem, so no
need for Akka to schedule its shutdown.
2024-09-27 20:54:22 +02:00