Commit Graph

4756 Commits

Author SHA1 Message Date
Jaroslav Tulach
fe2cf49568
Run whole test/Base_Tests in native image runner (#10296) 2024-06-21 06:03:53 +02:00
somebody1234
b5641aa3bd
Fix various issues on the Dashboard (#10256)
- Fix React DevTools not working in Firefox
- Fix selection of asset names when editing them, not working at all in Firefox
- Convert tick/cross buttons when editing assets, and the "plus" and "reload" buttons on the "shared with" column, "labels" column, and keyboard shortcuts table, to match more with the rest of the design
- Update clip path when the container resizes, so that the icons for hidden columns never overlap the actual table header
- Fix #10184
- Fix renames being committed even when cancelling
- Fix duplicate name detection - previously, all asset types only checked folders with the same name, not assets with the same name
- I'm not 100% sure this is the correct behavior still
- Stop using `kbd` (`aria.Keyboard`) to display keyboard shortcuts, since they should not be displayed in a monospace font.
- Fix "plus" and "reload" buttons going past the right side of their parent table cell
- Limit length of `PermissionDisplay` - if the username of a user with permission is too long, it uses a tooltip instead
- Update the username dynamically for all permissions owned by self, when changing username in the settings.
- This avoids having to fully invalidate the directory tree every time the username changes, given that nothing changes about the assets' metadata themselves.
- Cache children in the Drive tree
- This avoids loading spinners when closing a folder and immediately reopening it.
- Note that children are still re-fetched on reopen to ensure freshness

# Important Notes
- This MAY be split into multiple smaller PRs. However, I think it's better to QA as a single PR, to avoid duplicating work checking behavior that may be changed by a sibling PR (assuming the PR was split into multiple).
2024-06-20 18:30:24 +00:00
somebody1234
83ec24da59
Refactor E2E tests for Dashboard; add E2E tests for User and Organization settings pages (#10031)
- PARTIALLY implements https://github.com/enso-org/cloud-v2/issues/1232
- Partially refactor E2E test actions into a state machine.
- The main goal of this is to _disallow_ invalid actions - for example going from a page to itself, which will fail at runtime, or trying to create a new Data Link on a page where that button is not accessible.
- An auxiliary goal is to have better namespacing of actions and better clarity:
- Previously, everything was a locator at the top level of a single module. This makes it very difficult to comprehend what kinds of actions are available.
- Note: There is also older `namespace`-based namespacing for the User and Organization settings pages, which were added before this refactor. They SHOULD be refactored to the new API, but I'm not sure whether it's worth spending the time right now.
- Add E2E tests for every input on the "user" settings page and the "organization" settings page.
- A skeletal E2E test for the Datalink modal has also been added - it does not actually test anything currently but should be sufficient for building upon.

# Important Notes
None
2024-06-20 16:19:01 +00:00
Sergei Garin
c5853e0ffc
Paywalls for User invites, sharing, and group management (#10203)
#### Tl;dr
This PR adds paywalls for Invites, Sharing, Members settings, and User Group settings

<details><summary>Demo Presentation</summary>
<p>
2024-06-20 14:51:43 +00:00
Hubert Plociniczak
114b3a5c5e
Cleaning up YAML parsing in preparation for circe-yaml removal (#10309)
The current implementation contains logic that should enable us to make some backward compatibility config changes.
At the same time, the logic is tightly integrated with circe's JSON library, which we want to eventually to get rid off.
Rather than trying to keep it somehow around and maintain via some hacks this PR proposes to ditch that logic completely as we currently have no use-case for such scenarios.

As a result, classes modelling YAML configs now don't have the extra fields and there is 1:1 correspondence.

Performance has also improved although that wasn't the main objective, yet. Follow up PR will attempt to replace `circe-yaml` with `snakeyaml` directly.

In preparation for #9113. Note that the dependency upgrade is necessary because it brings latest available `snakeyaml` (as part of `circe-yaml`).
2024-06-20 13:07:54 +00:00
James Dunkerley
5042592d24
Some formatting issues and a few tweaks (#10298)
- Linting fixes.
- Adjust doc comments with `<` or `>` in plain text areas to use `&lt;` and `&gt;`.
- Refactor Statistics module and add auto-scoping.
- Add auto-scoping to `Text.to_case`.
- Fix type issue with `Table.get_value`.
- Private constructor for `Excel_Workbook` and move `xls_format` to public method.
- Add `fields` widget to `to_table`.
- Add `simple_expr` to make `Table.set` clearer.

![image](https://github.com/enso-org/enso/assets/4699705/3e21e800-142c-4006-a6c2-dd6196b76c9a)

![image](https://github.com/enso-org/enso/assets/4699705/d40dcbfd-a35e-4849-9e1a-f4a418d562dd)
2024-06-20 10:44:36 +00:00
Sergei Garin
a72cb52ae9
Remove ENSO_CLOUD_REDIRECT variable (#10322) 2024-06-20 13:16:01 +03:00
Sergei Garin
7204b912ce
Imrpove BG rendering (#10219)
<details><summary>Difference</summary>
<p>

The difference isn't significant, but noticeable

| Before | After |
|--------|--------|
| ![Before](https://github.com/enso-org/enso/assets/61194245/b35f2ee2-9e9d-4f42-9f0d-fa722373489c) | ![After](https://github.com/enso-org/enso/assets/61194245/a241e1c9-089a-4760-bcfc-133f4d9535c1)
|

</p>
</details>
2024-06-20 09:21:25 +00:00
dependabot[bot]
47ba566e27
Bump express from 4.17.3 to 4.19.2 in /tools/simple-library-server (#9555) 2024-06-20 08:39:07 +00:00
Kaz Wesley
e1aeebd57e
Use external IDs for stable selection tracking. (#10314) 2024-06-19 17:52:56 +00:00
Kaz Wesley
3f70307a88
Pan capturing (#10304)
Panning or zooming "captures" wheel events. While events are captured, further
events of the same type will continue the pan/zoom action. The capture expires
if no events are received for 250ms. A trackpad capture also expires if any
pointer movement occurs.
2024-06-19 12:49:38 -04:00
somebody1234
ccfeac1c02
Move to the Tab layout for Dashboard (#9918)
⚠️ This PR depends on #9896 and MUST NOT be merged before that one.

- Close #9898
- Move right menu to Drive View
- Use new icon for toggling the menu
- Move Search Bar into Drive View
- both of these changes come with free simplifications to the code.
- Refactor entire Top Bar to show pages as tabs
- Fix https://github.com/enso-org/cloud-v2/issues/1301
- Remove grey background from arrow icon visible when hovering over directory rows

# Important Notes
- Fonts containing slight variants have been added to make it match more closely with the Figma design. HOWEVER:
- They have been added in `app/gui2` instead of the Dashboard codebase, because that is where the existing Enso font is located.
- While it's definitely possible to put them in the Dashboard codebase, I think it's preferable to avoid that, otherwise we will have two separate mechanisms for loading/packaging fonts.
- However, this problem SHOULD go away if (if not when) the entrypoints for the desktop app (in `app/gui2`) and cloud.enso.org (in `app/ide-desktop/lib/dashboard`) are merged.
2024-06-19 15:24:11 +00:00
Adam Obuchowicz
ef2f5f993d
Visualization Preview (#10310)
Fixes #8533

Visualization is shown when pressing ctrl (cmd on mac) and hovering output port.

[Screencast from 2024-06-18 17-06-59.webm](https://github.com/enso-org/enso/assets/3919101/4963eaa7-8b96-4fdb-af09-70de68c6df57)
2024-06-19 13:46:51 +00:00
Adam Obuchowicz
7eeea8e1c8
Fix autoscoped constructor dynamic widget config (#10297)
Fixes #10238

Updated the way we construct `get_widget_json` visualization configuration to take into account cases when there is no known self argument.

As this is a bit of logic, I moved parts of WidgetFunction to a separate composable for easier testing. Most if it was just moved: meaningful changes were only in selfArgumentExternalId and visualizationConfig.
2024-06-18 14:35:10 +00:00
Radosław Waśko
a8358512ad
Small fixes to Cloud Integration (#10303)
- Includes HTTP method in error message
- Does not do special handling for `403` status code - this was wrong and led to `Unauthorized` error when the real cause was lack of permssions in the Cloud. The errors should be more understandable now.
- Adds `projectSessionId` to audit log metadata.
- Fixes a test (`Secrets_Spec`) that did not have unique names and would fail if cleanup of previous runs failed (or if ran in parallel).
2024-06-18 09:41:33 +00:00
marthasharkey
0fc3755d1b
Disable clickThrough for get nodes for anything thats datatype is not JS_Object (#10286) 2024-06-18 08:27:20 +00:00
Jaroslav Tulach
dc7ae17fb0
Build enso_parser with --release (#10295) 2024-06-17 17:17:42 +02:00
Sergei Garin
0b4ea9a9fe
Fix broken MembersTable (#10300) 2024-06-17 16:15:20 +03:00
Paweł Grabarz
07955f870b
Add test for usePropagateScopesToAllRoots (#10226)
Added missing test for `usePropagateScopesToAllRoots` that was added in #10172.
Also testing against the default Vue behavior, since it is possible that a future update will make the workaround obsolete.
2024-06-17 12:09:35 +00:00
marthasharkey
bb16db9c79
Remove legacy matrix and legacy objects from table visualization and remove the index column (#10260)
- remove legacy matrix and object types from vue component and any further code relating to those
- remove the index and index header being sent in the json for tables
- add has_index_col flag for json hat previously sent 'indicies_header' and 'indicies' so that index/# column is still rendered where required
2024-06-17 09:17:20 +00:00
Dmitry Bushev
06a73606b9
Async Ydoc initialization (#10290)
close #10265

Changelog:
- add: YdocInitialization component
2024-06-17 08:10:21 +00:00
Sergei Garin
20998e30b0
Fix tooltips and Start Modal (#10294) 2024-06-16 19:51:37 +03:00
Sergei Garin
04551f4b8a
Initial Support for paywalls (#10202)
This PR introduces:
1. Set of Paywall components: PaywallButton, PaywallDialog
2. Adds Devtools
3. Implement Paywall Configuration

This PR partially depends on https://github.com/enso-org/enso/pull/10199
2024-06-16 13:57:17 +00:00
Sergei Garin
1b7b24f1b8
Fix suspence query error (#10257) 2024-06-16 11:21:27 +03:00
Dmitry Bushev
04a92ef765
TextEdit with custom IdMap (#10283)
close #10182

Changelog:
- add: IdMap parameter to the `text/applyEdit` request
- add: IdMap to the runtime module
- update: set IdMap during the interactive compilation
- update: set the IR identifiers in the `TreeToIR` parsing step
2024-06-15 18:03:18 +00:00
Jaroslav Tulach
dee9e079d4
Enso language support with parser in VSCode, IGV, etc. (#7054)
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.
2024-06-14 14:01:37 +00:00
Hubert Plociniczak
dc6e3a7031
Soft retries when awaiting runtime responses (#10272)
A quick and dirty workaround for slow processing in a similar spirit to PR #9858.
Long compilation of stdlib holds a write compilation lock, while opening the file needs to set module sources and requires read compilation lock and file lock. The expectation was that setting module sources is instantaneous except not, because of locks.

This PR adds soft retries.

Partially closes #10231. There are still problems related to https://github.com/enso-org/enso/issues/9993 once this PR is merged.

# Important Notes
We need to figure out a more fine-grained lock system or, ideally, make it lock free to avoid such hacks.
2024-06-14 09:05:48 +00:00
Kaz Wesley
904ffe1dd6
Support empty and non-numeric default values in number picker (#10251)
Numeric default (unchanged):
<img width="400" alt="Screenshot 2024-06-11 at 10 19 21" src="https://github.com/enso-org/enso/assets/1047859/24549125-f7bd-4017-b04f-b9e8715203b1">

Non-numeric default:

https://github.com/enso-org/enso/assets/1047859/bfe812e2-4d1c-477b-9500-f384fa499890

No default:
<img width="400" alt="Screenshot 2024-06-11 at 10 19 36" src="https://github.com/enso-org/enso/assets/1047859/e99dcb0f-f146-4005-b4e5-79223fbe7744">

Closes #9449.
2024-06-13 17:43:35 +00:00
somebody1234
b053ab53e2
Dashboard hotfixes (#10271)
- Fix the appearance of the `tertiary` button variant
- Fix spinner for projects that are opening being misaligned by 1px
- Fix appearance of "Login with Google" and "Login with GitHub" icons in the Login page
- Fix #10279
- Switch to Local tab when on desktop app and user does not have an active plan

# Important Notes
None
2024-06-13 16:57:50 +00:00
Radosław Waśko
3b566709f3
Type Inference PoC - iteration 1 - most basic type inference (#8652)
- Closes #8590
2024-06-13 16:23:56 +00:00
Radosław Waśko
3a4784c226
Initial separation of Snowflake_Dialect from Postgres_Dialect (#10266)
- Part of #9486
- Building on top of initial work by @jdunkerley and finishing it
- Reverted the changes to the Postgres_Dialect from last Snowflake work and split the Snowflake_Dialect into a separate module.
- Moved from `rounding_decimal_places_not_allowed_for_floats` to `supports_float_round_decimal_places` (as too confusing).
- Added Snowflake_Dialect type.
- Extracted `Snowflake_Spec` into separate `Snowflake_Tests`
- It imports the common tests from `Table_Tests`.
- Some initial adaptations to make the snowflake dialect not-crash.
- Adding `Internals_Access` proxy to allow external implementations to access our internal data structures without directly exposing them to users. Users should not use these.
- Adding profiling of SQL to check performance.
2024-06-13 16:12:20 +00:00
Kaz Wesley
1096642fae
Fix numeric slider (#10267)
Prevent default pointerdown action from interfering with slider.

https://github.com/enso-org/enso/assets/1047859/736a01ca-9cdb-4163-8cd5-e3c1d7e15552

Fixes #10090.

# Important Notes
- Also fix drag detection when the slider is dragged and returned to its original position.
2024-06-13 16:03:09 +00:00
Hubert Plociniczak
6163733cf0
Add an option to profile AppImage (#9998)
* Add an option to profile AppImage

Add `-debug.profile` on startup to turn on the profiler on a local
machine and dump data to `profiling.npss` file. Previously not possible
in a standalone setup.

Useful for #9789.

* fix linter

* fix linter warning

* more linting

* lint
2024-06-13 17:01:50 +02:00
Kaz Wesley
0ff2ed6cc3
Add divider to numeric slider (#10268)
https://github.com/enso-org/enso/assets/1047859/5a9ba761-dfec-4ec7-99ce-3088556e63e4

Closes #10234.

# Important Notes
- Tested in combination with #10267, though they can be merged separately.
2024-06-13 13:03:43 +00:00
AdRiley
fadb81abe6
Fix Text_Cleanse tests (#10263)
I hadn't connected the Text_Cleanse tests up properly and as a result they weren't running or working. This fixes that.
2024-06-13 08:25:32 +00:00
Hubert Plociniczak
d6d370925a
Removing dependencies to speed up startup (#10249)
Reducing the number of dependencies. Explicit `cats` are almost gone (present in `cli`). `enumeration` is completely gone.  `cats` is also still included implicitly via `io.circe` but that's a different kind of beast.
Also, really removed `jackson` from dependencies by fixing the dependency on `http-test-helper`.

# Important Notes
In a number of places importing all cats implicits could be simply replaced with a single or two method calls. Not to mention that this will reduce compilation times due to reduced implicit search space.

One example of how the changes affect performance (not only startup):

Before:
![Screenshot from 2024-06-11 12-05-24](https://github.com/enso-org/enso/assets/292128/a1a772a9-635d-4a16-a543-e2fd2124a22c)
Now:
![Screenshot from 2024-06-11 14-27-47](https://github.com/enso-org/enso/assets/292128/b17c7fcc-9a6d-48b9-8200-60708354ee03)
(frequently executed)

![Screenshot from 2024-06-12 12-46-34](https://github.com/enso-org/enso/assets/292128/31bc4dfd-4edc-45c9-9c5d-13e3472089b9)
Also appears to be gone.

This PR is by no means finished. The purge will continue in follow up PRs.
2024-06-12 18:15:36 +00:00
Kaz Wesley
aaf0e3da6a
Output port interaction hint (#10264)
When hovering an output port, show a dimmed edge to the mouse.

https://github.com/enso-org/enso/assets/1047859/90b6e67e-9036-4eb0-bc18-9550d610c923

Closes #10195.
2024-06-12 17:57:25 +00:00
Kaz Wesley
3e37faa34d
Change grab cursors; fix some bugs (#10215)
Change grab cursors:
- Node has grab/grabbed icons for only halo and icon.

Fix bugs:
- Empty part of top bar no longer blocks mouse events.
- JSON viz: Clickable parts of inline elements now use pointer cursor when hovered.
- Doc panel breadcrumbs: Icon can be clicked (behavior now consistent with cursor shown).

https://github.com/enso-org/enso/assets/1047859/3e48a6c1-3f43-497f-82ad-eb787e9c9643

Closes #10166.

# Important Notes
- New global `clickable` class replaces `cursor: pointer`; the class can be applied closer to the event handler.
- Refactor: Extracted `GraphNode` output port logic to a new component.
2024-06-12 14:09:50 +00:00
Jaroslav Tulach
5339484285
shouldCreateClosureRootNode when valueHasSomeTypeCheck (#10262)
Fixes #10236.
2024-06-12 14:04:50 +00:00
Paweł Grabarz
0e17beba73
Implement text ellipsis on dropdowns (#10198)
Fixes #10091

https://github.com/enso-org/enso/assets/919491/148d117a-8f2c-4176-b0c8-c7d2390173c3
2024-06-12 13:13:48 +00:00
Kaz Wesley
8423f31884
Format bar: Use icons from #10242 (#10252) 2024-06-12 09:03:53 -04:00
Jaroslav Tulach
87864bf564
Presence of Any disables type checks (#10248)
Fixes #10237 by avoiding creation of `ReadArgumentCheckNode` when the requested type allows `Any`.
2024-06-12 11:10:23 +00:00
somebody1234
46f6b4f698
Update dashboard to design v122 (Part 1) (#9896)
- Close #9886
- Update style of buttons in Drive Bar
- Move "Home" page into a "Start" dialog
- Remove icons that are no longer needed
- Remove Backend Switcher in top bar - they have now been converted to categories

- Incidental changes
- Refactor Backend provider so that both Remote and Local backends are available.
- This was done because both Cloud and Local backends are now easily accessible by switching tabs - the Local backend no longer has its own views with the hidden category switcher

# Important Notes
None
2024-06-12 10:20:07 +00:00
marthasharkey
55af1b9ffd
Add icon to indicate value type in table (#10225)
closes #10018

Sends the value type within the json for table visualisation
Header uses a html template to show it's value type to the right of the title
Displays the value type also in a tooltip, this displays the types "display_text"

<img width="392" alt="image" src="https://github.com/enso-org/enso/assets/170310417/0828e6a2-b30f-4ac7-9a8f-46b4a9cfac91">


tooltip:
<img width="498" alt="image" src="https://github.com/enso-org/enso/assets/170310417/f9964f90-9337-42d3-a0ef-3c58f6d74621">
2024-06-12 09:06:55 +00:00
AdRiley
783276ca34
Make test framework list out failed tests to use in filter (#10241)
* List out failed tests

* Code review changes
2024-06-11 21:15:28 +01:00
Radosław Waśko
c4b0ca8f69
Ensure type ascriptions are correctly transformed to facilitate checking of more complex return types (#10229)
- Fixes #9980
- Adds some tests to ensure types like `|` or `&` (in addition to `!` from the ticket) correctly work in return type check.
- Fixes a weird behaviour where we used to avoid processing type related IR transformations inside of type ascriptions.
- Adds parentheses to type representations if they are more complex: `A | B & C` is unclear as it can either mean `A | (B & C)` or `(A | B) & C` which have different meanings. If we now have an operation with such nesting, the sub expressions are wrapped in parentheses to disambiguate.
2024-06-11 17:11:03 +00:00
Adam Obuchowicz
a2c4d94735
Fix arrow keys in text inputs (#10244)
Fixes #10239

# Important Notes
This is a quick fix, but we may consider better focus handling - perhaps the graph editor should be focusable?
2024-06-11 16:12:35 +00:00
Hubert Plociniczak
4da5e611c9
Replace Jackson serde (#10035)
JSON serialization setup between Language Server and Runtime is a major contributor to startup time. This PR experiments with an alternative implementation that remedies the problem.
The new serializer uses [jsoniter-scala](https://github.com/plokhotnyuk/jsoniter-scala) which by some accounts claims to be really fast. In our case, more importantly, we pay negligible cost of startup setup compared to Jackson which was horribly slow.

# Important Notes
Before:
![Screenshot from 2024-06-06 15-35-18](https://github.com/enso-org/enso/assets/292128/56103b82-777e-459f-966e-abdef25c2430)
After:
![Screenshot from 2024-06-06 15-35-02](https://github.com/enso-org/enso/assets/292128/00a36647-dfae-4dc8-a1b7-bf69069ef109)

Yes. About 0.8sec.
2024-06-11 15:03:12 +00:00
Jaroslav Tulach
aaaebcabf8
Implement and benchmark ArrowOperationPlus node (#10150)
Prototype of #10056 showing `+` operation implemented in the _Arrow language_.
2024-06-11 12:50:59 +00:00
AdRiley
19c50ceff9
Add icons (#10242)
Fixed duplicate text name.

Added

![image](https://github.com/enso-org/enso/assets/1720119/cc80e991-549e-4629-b0bc-81e58c2e93d8)

![image](https://github.com/enso-org/enso/assets/1720119/39ffccb7-99f5-4464-9b01-69c978972865)
2024-06-11 12:05:42 +00:00