Commit Graph

374 Commits

Author SHA1 Message Date
Jaroslav Tulach
a7bc3c6c89
Verify benchmarks compile and execute in the gate (#3640)
Execution of `sbt runtime/bench` doesn't seem to be part of the gate. As such it can happen a change into the Enso language syntax, standard libraries, runtime & co. can break the benchmarks suite without being noticed. Integrating such PR causes unnecessary disruptions to others using the benchmarks.

Let's make sure verification of the benchmarks (e.g. that they compile and can execute without error) is part of the CI.

# Important Notes
Currently the gate shall fail. The fix is being prepared in parallel PR - #3639. When the two PRs are combined, the gate shall succeed again.
2022-08-11 07:21:44 +00:00
Michał Wawrzyniec Urbańczyk
bd3b778721
Replace webpack with esbuild (#3592)
This PR replaces webpack with esbuild, as our bundler.

The change leads to out-of-the-box ~5x improvement in bundling times, reducing the latency in watch-based workflows. 
Along with this a new development server (with live reload capacity) has been introduced to support watch command.

[ci no changelog needed]

### Important Notes
* workflow for checking docs has been removed because it was using outdated prettier version and caused troubles; while the same check is performed in a better way by the GUI/Lint job.
* introduced little more typescript in the scripts in place of js, usually with minimal changes.
2022-08-10 03:41:44 +02:00
Adam Obuchowicz
8f3c5a01d3
Update CODEOWNERS (#3630) 2022-08-04 10:21:39 +00:00
Kaz Wesley
c525b201b9
Parser: don't panic for any standard library files (#3609) 2022-07-28 19:17:33 +02:00
Michał Wawrzyniec Urbańczyk
c6d0843a2c
Submodule CI issue workaround. (#3615) 2022-07-27 04:37:47 +02:00
Michał W. Urbańczyk
7e2998bd27 Cleaning the repository before build to avoid infinite sbt compilation issue. 2022-07-21 12:08:48 +02:00
Michał Wawrzyniec Urbańczyk
e29ac5a548
Update settings.yml
Docs check is superseded by the GUI's lint job.
2022-07-15 23:12:14 +02:00
Kaz Wesley
bc66078251
Parser: Transpile Rust AST types to Java types (#3555)
Implement generation of Java AST types from the Rust AST type definitions, with support for deserializing in Java syntax trees created in Rust.

### New Libraries

#### `enso-reflect`

Implements a `#[derive(Reflect)]` macro to enable runtime analysis of datatypes. Macro interface includes helper attributes; **the Rust types and the `reflect` attributes applied to them fully determine the Java types** ultimately produced (by `enso-metamodel`). This is the most important API, as it is used in the subject crates (`enso-parser`, and dependencies with types used in the AST). [Module docs](https://github.com/enso-org/enso/blob/wip/kw/parser/ast-transpiler/lib/rust/reflect/macros/src/lib.rs).

#### `enso-metamodel`

Provides data models for data models in Rust/Java/Meta (a highly-abstracted language-independent model--I have referred to it before as the "generic representation", but that was an overloaded term).

The high-level interface consists of operations on data models, and between them. For example, the only operations needed by [the binary that drives datatype transpilation](https://github.com/enso-org/enso/blob/wip/kw/parser/ast-transpiler/lib/rust/parser/generate-java/src/main.rs) are: `rust::to_meta`, `java::from_meta`, `java::transform::optional_to_null`, `java::to_syntax`.

The low-level interface consists of direct usage of the datatypes; this is used by [the module that implements some serialization overrides](https://github.com/enso-org/enso/blob/wip/kw/parser/ast-transpiler/lib/rust/parser/generate-java/src/serialization.rs) (so that the Java interface to `Code` references can produce `String`s on demand based on serialized offset/length pairs). The serialization override mechanism is based on customizing, not replacing, the generated deserialization methods, so as to be as robust as possible to changes in the Rust source or in the transpilation process.

### Important Notes

- Rust/Java serialization is exhaustively tested for structural compatibility. A function [`metamodel::meta::serialization::testcases`](https://github.com/enso-org/enso/blob/wip/kw/parser/ast-transpiler/lib/rust/metamodel/src/meta/serialization.rs) uses `reflect`-derived data to generate serialized representations of ASTs to use as test cases. Its should-accept cases cover every type a tree can contain; it also produces a representative set of should-reject cases. A Rust `#[test]` confirms that these cases are accepted/rejected as expected, and generated Java tests (see Binaries below) check the generated Java deserialization code against the same test cases.
- Deserializing `Code` is untested. The mechanism is in place (in Rust, we serialize only the offset/length of the `Cow`; in Java, during deserialization we obtain a context object holding a buffer for all string data; the accessor generated in Java uses the buffer and the offset/length to return `String`s), but it will be easier to test once we have implemented actually parsing something and instantiating the `Cow`s with source code.
- `#[tagged_enum]` [now supports](https://github.com/enso-org/enso/blob/wip/kw/parser/ast-transpiler/lib/rust/shapely/macros/src/tagged_enum.rs#L36-L51) control over what is done with container-level attributes; they can be applied to the container and variants (default), only to the container, or only to variants.
- Generation of `sealed` classes is supported, but currently disabled by `TARGET_VERSION` in `metamodel::java::syntax` so that tests don't require Java 15 to run. (The same logic is run either way; there is a shallow difference in output.)

### Binaries

The `enso-parser-generate-java` crate defines several binaries:
- `enso-parser-generate-java`: Performs the transpilation; after integration, this will be invoked by the build script.
- `java-tests`: Generates the Java code that tests format deserialization; after integration this command will be invoked by the build script, and its Java output compiled and run during testing.
- `graph-rust`/`graph-meta`/`graph-java`: Produce GraphViz representations of data models in different typesystems; these are for developing and understanding model transformations. 

Until integration, a **script regenerates the Java and runs the format tests: `./tools/parser_generate_java.sh`**. The generated code can be browsed in `target/generated_java`.
2022-07-07 04:46:42 +02:00
Michał Wawrzyniec Urbańczyk
b5c8296aaf
Build script bump & benchmark workflow (#3563) 2022-07-05 22:03:29 +02:00
Michał Wawrzyniec Urbańczyk
2b07e4ddbc
Update settings.yml
Project Manager -> Backend
2022-07-03 17:19:54 +02:00
Michał Wawrzyniec Urbańczyk
1dc4f56f50
Update settings.yml
Engine job names.
2022-07-03 17:16:23 +02:00
Michał Wawrzyniec Urbańczyk
43a893cae6
Bump the build script (#3535) 2022-07-01 03:58:14 +02:00
Jaroslav Tulach
479f74cc84
Enso Integration with Ideal Graph Visualizer (#3533)
This PR adds sources for Enso language support in IGV (and NetBeans). The support is based on TextMate grammar shown in the editor and registration of the Enso language so IGV can find it. Then this PR adds new GitHub Actions workflow file to build the project using Maven.
2022-06-23 04:43:49 +00:00
James Dunkerley
a0c6fa9c96
Removing old functions and tidy up of Table types (#3519)
- Removed `select` method.
- Removed `group` method.
- Removed `Aggregate_Table` type.
- Removed `Order_Rule` type.
- Removed `sort` method from Table.
- Expanded comments on `order_by`.
- Update comment on `aggregate` on Database.
- Update Visualisation to use new APIs.
- Updated Data Science examples to use new APIs.
- Moved Examples test out of Tests to own test.

# Important Notes
Need to get Examples_Tests added to CI.
2022-06-14 13:37:20 +00:00
Kaz Wesley
a1bf0974ce
Better release build time; new maximum-performance production profile. (#3498)
### Pull Request Description

Using the new tooling (#3491), I investigated the **performance / compile-time tradeoff** of different codegen options for release mode builds. By scripting the testing procedure, I was able to explore many possible combinations of options, which is important because their interactions (on both application performance and build time) are complex. I found **two candidate profiles** that offer specific advantages over the current `release` settings (`baseline`):
- `thin16`: Supports incremental compiles in 1/3 the time of `baseline` in common cases. Application runs about 2% slower than `baseline`.
- `fat1-O4`: Application performs 13% better than `baseline`. Compile time is almost 3x `baseline`, and non-incremental.  
(See key in first chart for the settings defining these profiles.)

We can build faster or run faster, though not in the same build. Because the effect sizes are large enough to be impactful to developer and user experience, respectively, I think we should consider having it both ways. We could **split the `release` profile** into two profiles to serve different purposes:
- `release`: A profile that supports fast developer iteration, while offering realistic performance.
- `production`: A maximally-optimized profile, for nightly builds and actual releases.

Since `wasm-pack` doesn't currently support custom profiles (rustwasm/wasm-pack#1111), we can't use a Cargo profile for `production`; however, we can implement our own profile by overriding rustc flags.

### Performance details

![perf](https://user-images.githubusercontent.com/1047859/170788530-ab6d7910-5253-4a2b-b432-8bfa0b4735ba.png)

As you can see, `thin16` is slightly slower than `baseline`; `fat1-O4` is dramatically faster.

<details>
  <summary>Methodology (click to show)</summary>

I developed a procedure for benchmarking "whole application" performance, using the new "open project" workflow (which opens the IDE and loads a complex project), and some statistical analysis to account for variance. To gather this data:

Build the application with profiling:
`./run.sh ide build --profiling-level=debug`

Run the `open_project` workflow repeatedly:
`for i in $(seq 0 9); do dist/ide/linux-unpacked/enso --entry-point profile --workflow open_project --save-profile open_project_thin16_${i}.json; done`

For each profile recorded, take the new `total_self_time` output of the `intervals` tool; gather into CSV:
`echo $(for i in $(seq 0 9); do target/rust/debug/intervals < open_project_thin16_${i}.json | tail -n1 | awk '{print $2}'; do`
(Note that the output of intervals should not be considered stable; this command may need modification in the future. Eventually it would be nice to support formatted outputs...)

The data is ready to graph. I used the `boxplot` method of the [seaborn](https://seaborn.pydata.org/index.html) package, in order to show the distribution of data.
</details>

#### Build times
![thin16](https://user-images.githubusercontent.com/1047859/170788539-1578e41b-bc30-4f30-9b71-0b0181322fa5.png)

In the case of changing a file in `enso-prelude`, with the current `baseline` settings rebuilding takes over 3 minutes. With the `thin16` settings, the same rebuild completes in 40 seconds.

(To gather this data on different hardware or in the future, just run the new `bench-build.sh` script for each case to be measured.)
2022-06-11 00:09:54 +02:00
Michał Wawrzyniec Urbańczyk
654793c246
Make formatting check a required one. 2022-06-09 19:11:25 +02:00
Kaz Wesley
8a50e8f930
Faster dev builds; tooling for measuring build times and app performance. (#3491)
- Change dev profile settings. Improves build performance; will not affect anything else. Details below.
- Introduce script for benchmarking various incremental builds. Usage is explained in the script comments.
- Add a line to `intervals` showing total main-thread CPU work logged in a profile; this can be used to compare the results of optimizations (I'll be starting a discussion informed by that data separately; this change just enables the tooling to report it).
2022-06-02 19:24:18 +00:00
Hubert Plociniczak
9e92694dfc
Create non-existent directories in curl (#3506)
Got annoyed by all those FP notifications I get for legacy CI build.
Either this, or we turn it off please.
2022-06-02 16:11:25 +02:00
Michał Wawrzyniec Urbańczyk
6fc4947764
Bumped the build script (#3489)
* The bash entry point was renamed `run.sh` -> `run`. Thanks to that `./run` works both on Linux and Windows with PowerShell (sadly not on CMD). 
* Everyone's favorite checks for WASM size and program versions are back. These can be disabled through `--wasm-size-limit=0` and `--skip-version-check` respectively. WASM size limit is stored in `build-config.yaml`.
* Improved diagnostics for case when downloaded CI run artifact archive cannot be extracted. 
* Added GH API authentication to the build script calls on CI. This should fix the macOS build failures that were occurring from time to time. (Actually they were due to runner being GitHub-hosted, not really an OS-specific issue by itself.)
* If the GH API Personal Access Token is provided, it will be validated. Later on it is difficult to say, whether fail was caused by wrong PAT or other issue.
* Renamed `clean` to `git-clean` as per suggestion to reduce risk of user accidently deleting unstaged work. 
* Whitelisting dependabot from changelog checks, so PRs created by it are mergeable.
* Fixing issue where wasm-pack-action (third party) randomly failed to recognize the latest version of wasm-pack (macOS runners), leading to failed builds.
* Build logs can be filtered using `ENSO_BUILD_LOG` environment variable. See https://docs.rs/tracing-subscriber/0.3.11/tracing_subscriber/struct.EnvFilter.html#directives for the supported syntax.
* Improve help for ci-run source, to make clear that PAT token is required and what scope is expected there.

Also, JS parts were updated with some cleanups and fixes following the changes made when introducing the build script.
2022-06-01 13:44:40 +02:00
Michał Wawrzyniec Urbańczyk
42d82bd8b7
Added a missing checkout step for changelog assertion. (#3481) 2022-05-25 11:38:40 +02:00
Michał Wawrzyniec Urbańczyk
f5f6d264dd
Fix changelog assertion (#3479) 2022-05-25 03:19:45 +02:00
Michał Wawrzyniec Urbańczyk
818a0651ea
Update settings.yml 2022-05-24 23:13:06 +02:00
Michał Wawrzyniec Urbańczyk
297ef4251c
Update the required CI checks list. 2022-05-24 07:24:58 +02:00
Michał Wawrzyniec Urbańczyk
14a01c4635
New IDE build script (#3466) 2022-05-23 04:16:04 +02:00
Radosław Waśko
a32644dd85
Make it possible to run Enso with assertions enabled (#3450)
Before, when running Enso with `-ea`, some assertions were broken and the interpreter would not start.

This PR fixes two very minor bugs that were the cause of this - now we can successfully run Enso with `-ea`, to test that any assertions in Truffle or in our own libraries are indeed satisfied.

Additionally, this PR adds a setting to SBT that ensures that IntelliJ uses the right language level (Java 17) for our projects.
2022-05-13 15:38:52 +00:00
Jaroslav Tulach
b037da08a7
Expanding list of engine code owners (#3443) 2022-05-10 11:03:32 +03:00
Hubert Plociniczak
63ff67b621
Add formatting checks for Scala and Java (#3394) 2022-04-20 16:11:24 +02:00
Michael Mauderer
24e0f33d8e
Backend Communication Profiling (#3382) 2022-04-19 13:30:29 +02:00
Radosław Waśko
20be5516a5
Aggregates in the Database library - MVP (#3353)
Implements infrastructure for new aggregations in the Database. It comes with only some basic aggregations and limited error-handling. More aggregations and problem handling will be added in subsequent PRs.

# Important Notes
This introduces basic aggregations using our existing codegen and sets-up our testing infrastructure to be able to use the same aggregate tests as in-memory backend for the database backends.

Many aggregations are not yet implemented - they will be added in subsequent tasks.

There are some TODOs left - they will be addressed in the next tasks.
2022-03-28 15:51:37 +00:00
Kaz Wesley
a87b2021a3
Profiling application details (#3332)
* Profiling application details

Add enough profiling to account for every missed frame during startup.

See https://www.pivotaltracker.com/story/show/181499507

* Build ActiveInterval hierarchy in profiler_data

* update doctests / await_!

* docs/formatting/naming

* more graph modes

* increase WASM size

Due to new render-profile-flamegraph scene. We should remove these from the main release WASM blob one way or another.

* lint

* fix a test

* Organization (feedback)

* Add @wdanilo to Cargo.lock CODEOWNERS

As discussed after my previous PR got stuck waiting for Cargo.lock review.

* fix doctests

* Update docs. Removed a limitation.
2022-03-21 11:09:56 -07:00
Ilya Bogdanov
11dfd7bfc9
Return creating node with (+) button & fix a regression (#3338)
* Creating a new node with the (+) button (#3278)

[The Task](https://www.pivotaltracker.com/story/show/180887253)

A new (+) button on the left-bottom corner appeared. It may be clicked to open searcher in the middle of the scene, as an alternative to tab key.

https://user-images.githubusercontent.com/3919101/154514279-7972ed6a-0203-47cb-9a09-82dba948cf2f.mp4

* The window_control_buttons::common was extracted to separate crate `ensogl-component-button` almost without change.
* This includes a severe refactoring of adding nodes in general in the Graph Editor. The whole responsibility of adding new nodes (and starting their editing) was moved to Graph Editor - the Project View only reacts for GE events to show searcher properly.
* The status bar was moved from the bottom-left corner to the middle-top of the scene. It does not collide with (+) button, and plays "notification" role anyway.
* The `interface` debug scene was buggy. The problem was with one expression's span-tree. When I replaced it, the scene works.
* I've removed "new searcher" API, as it is completely outdated.
* I've changed code owners of integration tests to GUI team, as it is the team writing mostly the integration tests (int rust)

* Fix regression #181528359

* Add docs & remove unused function

* Fix & enable native Rust tests

* Fix formatting

Co-authored-by: Adam Obuchowicz <adam.obuchowicz@enso.org>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-03-16 21:02:47 +03:00
Michał Wawrzyniec Urbańczyk
5bc9811f6a
Remove Windows code signing environment. (#3343) 2022-03-15 16:07:52 +01:00
Ilya Bogdanov
31be7c8b9a
Revert "Adding new node with (+) button" (#3328)
[ci no changelog needed]

This PR reverts commit [0836ce741d](0836ce741d) because of the spotted regression:

To reproduce:
1. Open a default project.
2. Without doing anything else, cmd + click on any node to edit it.
3. Abort editing by pressing escape.
4. Top-most node disappears (it is actually removed from scene)
If you start editing the bottom node - you will also see a visible regression in node searcher's position.

See thread https://discord.com/channels/401396655599124480/950730235719065620/950731247909478410 for details.
2022-03-09 11:44:39 +00:00
Kaz Wesley
a3914f33c1
API for storing metadata (#3291)
API for storing metadata.

See: https://www.pivotaltracker.com/story/show/181149277

# Important Notes
**New APIs**:
- Storing metadata is implemented with `profiler::MetadataLogger`.
- A full metadata storage/retrieval example is in [the top-level doctests](https://github.com/enso-org/enso/blob/wip/kw/profiling-metadata-api/lib/rust/profiler/data/src/lib.rs) for profiler::data, a crate which implements an API for profiling data consumers (it abstracts away the low-level details of the event log, and checks its invariants in the process) [after review of this new API here I'll open a PR to add it to the design doc].

**Implementation**:
- `profiler::Event` is parameterized by a metadata type, so that different types of metadata can be dependency-injected into it.
- A data consumer defines its metadata type as an enum of all the kinds of metadata it is interested in.
- Producing the metadata enum is accomplished without defining its type (which would require dependencies from around the app): A `MetadataLogger` internally use a serialization helper `Variant` to serialize its variant of the metadata enum without knowledge of the other possible variants.

**Performance impact**: still in the low ns/measurement range, comparable to pushing to a vec.

*Note*: `LocalVecBuilder` is currently present under the name `Log`, which is accurate but probably too overloaded. I'd like to find the right name for it, document it with examples, and move it to its own crate under data-structures, but I don't want doing that to hold up this PR.
2022-02-28 09:55:56 +00:00
Adam Obuchowicz
0836ce741d
Creating a new node with the (+) button (#3278)
[The Task](https://www.pivotaltracker.com/story/show/180887253)

A new (+) button on the left-bottom corner appeared. It may be clicked to open searcher in the middle of the scene, as an alternative to tab key.

https://user-images.githubusercontent.com/3919101/154514279-7972ed6a-0203-47cb-9a09-82dba948cf2f.mp4

# Important Notes
* The window_control_buttons::common was extracted to separate crate `ensogl-component-button` almost without change.
* This includes a severe refactoring of adding nodes in general in the Graph Editor. The whole responsibility of adding new nodes (and starting their editing) was moved to Graph Editor - the Project View only reacts for GE events to show searcher properly.
* The status bar was moved from the bottom-left corner to the middle-top of the scene. It does not collide with (+) button, and plays "notification" role anyway.
* The `interface` debug scene was buggy. The problem was with one expression's span-tree. When I replaced it, the scene works.
* I've removed "new searcher" API, as it is completely outdated.
* I've changed code owners of integration tests to GUI team, as it is the team writing mostly the integration tests (int rust)
2022-02-24 16:01:54 +00:00
Michał W. Urbańczyk
5c6c882c38 [CI] Fix for the nightly workflow. 2022-02-21 22:34:34 +01:00
Michał Wawrzyniec Urbańczyk
f9069517db
The new nightly workflow. (#3294) 2022-02-21 16:09:48 +01:00
Michał W. Urbańczyk
964645fddf [Prettier] Fixed whitespace the in Mergify configuration 2022-02-21 12:06:44 +01:00
Mateusz Czapliński
2bb88e05f0
Include PR's "Important Notes" in Mergify commits (#3288)
Co-authored-by: Michał Wawrzyniec Urbańczyk <mwu-tow@gazeta.pl>
2022-02-21 12:01:47 +01:00
Michał Wawrzyniec Urbańczyk
f70176a25b
Introduce Mergify tool and a label to enable it per PR. (#3284) 2022-02-17 16:33:27 +01:00
Michał Wawrzyniec Urbańczyk
9f051ad69c
Automatic cancelling of previous Engine workflow runs (#3281) 2022-02-16 17:04:18 +01:00
Michael Mauderer
1d1bbab6bd
Add Code Owners for missing Rust related config files. (#3280) 2022-02-16 14:30:09 +00:00
Michał Wawrzyniec Urbańczyk
f189840df3
Update settings.yml (#3279) 2022-02-16 09:00:42 +01:00
Adam Obuchowicz
19b2064070
New PR template (#3275) 2022-02-15 16:59:13 +01:00
Michał Wawrzyniec Urbańczyk
ef9cbe04e6
Update for the build script (#3277) 2022-02-15 14:20:47 +01:00
Edward Kmett
0c25ee736c
Upgrade Truffle and Graal to Version 21.3.0 (#3258) 2022-02-11 19:05:13 +03:00
James Dunkerley
db6d0e2fb3
Update CODEOWNERS (#3247) 2022-02-08 10:26:14 +01:00
Michał Wawrzyniec Urbańczyk
4baad5f146
Nightly proccess preparations: Setting Enso version through the environment (#3241)
Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>
Co-authored-by: Radosław Waśko <wasko.radek@gmail.com>
2022-02-07 15:14:32 +01:00
Michał Wawrzyniec Urbańczyk
ed0e918bff
Fix the new engine CI workflow (#180855729) (#3219)
Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>
2022-01-17 19:21:34 +01:00
Ilya Bogdanov
a4355876fa
Developers should be able to build and test desktop IDE on M1 Mac (#3194) 2022-01-10 12:18:34 +03:00
Michał Wawrzyniec Urbańczyk
66c256a1f7
Self-hosted Engine CI for Windows and Linux (#3182) 2021-12-27 17:56:35 +01:00
Adam Obuchowicz
c4d22102cf
Switch to 2021 edition (#3173) 2021-12-01 16:06:57 +01:00
Adam Obuchowicz
d44857eaf9
Make Cargo.lock and Cargo.toml owned by rust guys only (#3165) 2021-11-23 16:54:23 +03:00
Radosław Waśko
46c31bb9a5
Preinstalling With Dependencies (#1981) 2021-11-23 11:51:17 +03:00
Adam Obuchowicz
d61743d43c
Fix codeowners file (#3163) 2021-11-22 16:13:21 +01:00
Adam Obuchowicz
bf0793c8ec
Update codeowners file (#3161) 2021-11-19 18:10:53 +01:00
Adam Obuchowicz
bb3b145af5
Refactor gui/src/rust/ide to two app/gui and app/ide-desktop (#3157) 2021-11-16 10:04:56 +01:00
Adam Obuchowicz
942464cbaf
Refactoring: merge utils into prelude; merge workspaces. (#3151) 2021-11-10 14:36:08 +01:00
Michał Wawrzyniec Urbańczyk
a7023cf585
Update docs.yml
Remove the Engine changelog check altogether.
2021-11-09 00:45:15 +01:00
Michał Wawrzyniec Urbańczyk
8fc51bfe44
Apply unified prettier style to engine codebase (#3145) 2021-11-08 16:45:29 +01:00
Michał Wawrzyniec Urbańczyk
1311e8e156
Disable the engine Changelog check. (#3146) 2021-11-08 14:52:29 +01:00
Michael Mauderer
c822256e6c
Update code style to use rust fmt (#3131) 2021-11-02 14:05:43 +01:00
Michael Mauderer
ab0f50a7a3
Bump rustc to nightly-2021-10-21 (#3129)
Bump rustc to nightly-2021-10-21, upgrade nightly features and fix new lints.
2021-11-01 23:41:52 +01:00
Michał Wawrzyniec Urbańczyk
76553dd217
Post-merge fixes (#3130)
Add GUI codeowners. Require jobs from GUI CI as part of PR. Keep prettier under control.
2021-11-01 20:44:15 +01:00
Michał W. Urbańczyk
99053decd8 various default branch switch - related updates 2021-11-01 01:37:30 +01:00
Michał W. Urbańczyk
a57da75ef0 update most of the CI workflows to use develop instead of main 2021-10-30 17:35:45 +02:00
Michał W. Urbańczyk
0d2653f835 one more path to fix 2021-10-30 17:24:54 +02:00
Michał W. Urbańczyk
d8ed4cd26f CI fixes for GUI (IDE). 2021-10-30 17:06:21 +02:00
Michał W. Urbańczyk
7648deb492 single wprkspace, update ci 2021-10-30 15:04:07 +02:00
Ara Adkins
a924e16618
Update some documentation for clarity (#2005) 2021-10-01 14:13:20 +01:00
Ara Adkins
d6465e9e97
Implement a --compile command for the engine runner (#1998) 2021-09-24 12:24:44 +01:00
Ara Adkins
1cd2706ba8
Load IR Caches from Disk (#1996) 2021-09-18 13:48:13 +01:00
Marcin Kostrzewa
a81257b402
Google Spreadsheet Reading (#1976) 2021-09-03 21:41:12 +02:00
Radosław Waśko
338743a832
Fix Nightly Builds on Windows (#1953) 2021-08-16 14:54:05 +02:00
Radosław Waśko
be6e60509a
Tool To Bump Stdlib Version (#1947) 2021-08-13 18:14:20 +02:00
Radosław Waśko
fac0405fd0
Updating Editions (#1944) 2021-08-12 16:55:23 +02:00
Radosław Waśko
270479c9a8
Fix Artifact Upload Issue on CI (#1936)
Fixes the nightly builds.
2021-08-10 21:05:39 +02:00
Radosław Waśko
31167fd6ae
Revert "Revert "Library Publishing MVP (#1898)"" (#1933) 2021-08-09 16:00:04 +02:00
Dmitry Bushev
10b0e11218
Add Project Template Files (#1915)
Add new templates
2021-08-02 19:01:15 +03:00
Ara Adkins
a7478bc573
Revert "Library Publishing MVP (#1898)"
This reverts commit 1bd4e5824e.
2021-07-26 10:32:19 +01:00
Radosław Waśko
1bd4e5824e
Library Publishing MVP (#1898) 2021-07-23 18:16:34 +02:00
Radosław Waśko
d84891d29d
Update Codeowners And Release Policy (#1893) 2021-07-22 11:07:23 +02:00
Radosław Waśko
f3bc88b91e
Library Downloads MVP (#1885) 2021-07-22 08:24:06 +02:00
Radosław Waśko
042a0f81f1
Fix Nightly Workflows and Update Release Policy (#1845) 2021-07-10 01:10:31 +02:00
Radosław Waśko
b58e895b18
Editions Integration (#1832) 2021-07-08 15:38:20 +02:00
Marcin Kostrzewa
189272c15f
Fix nightly builds [release: nightly] (#1825)
* fix?

* ... [no-changelog]
2021-06-29 17:04:01 +02:00
Ara Adkins
e4a044df9f
Document the process for avoiding release breakage (#1819) 2021-06-25 12:59:23 +01:00
Radosław Waśko
241a1e7d74
Define Editions (#1797) 2021-06-18 16:39:45 +02:00
Wojciech Daniło
c819f42130
Update bug-report.md
Fixing typo
2021-06-17 15:57:42 +02:00
Ara Adkins
af4558a93c
Refactor the LS to support multiple content roots (#1800) 2021-06-16 11:00:42 +01:00
Radosław Waśko
db537bf0a8
Add some tweaks to the native builds (#1779) 2021-06-15 10:13:22 +01:00
Ara Adkins
1bdf87ce76
Update the memory limit for Native Image (#1746) 2021-05-20 14:03:14 +01:00
Maciej Mikołajek
f74d386acb
Rewrite Docs Generator from Python to Scala (#1729) 2021-05-17 18:44:21 +02:00
Ara Adkins
48bcebc723
Update to GraalVM 21.1.0 (#1738) 2021-05-14 13:08:39 +01:00
Ara Adkins
e825782717
Re-order the issue links 2021-05-07 14:09:53 +01:00
Dmitry Bushev
46725e07c3
Remove reflective access when loading OpenCV (#1727) 2021-05-05 17:26:01 +01:00
Radosław Waśko
c3e4901eb1
Add a workflow for building nightly releases (#1689) 2021-05-05 11:58:14 +01:00
Wojciech Daniło
3a3648e231
Update the readme (#1682) 2021-04-15 11:34:17 +01:00
Dmitry Bushev
65e9cca5a4
Add Python and R to the GraalVM Bundle (#1644)
CI release pipeline is updated to install
python and R GraalVM components
2021-04-07 17:19:23 +03:00
Ara Adkins
9585080ab8
Clean up the standard library docs (#1641) 2021-04-01 12:20:36 +01:00
Michał Wawrzyniec Urbańczyk
5b57960da3
Histogram and Scatterplot visualizations support for Table (#1608) 2021-03-25 17:47:22 +01:00
Radosław Waśko
21f667323e
PostgreSQL Support in Database Library (#1565)
Co-authored-by: Marcin Kostrzewa <marckostrzewa@gmail.com>
2021-03-16 17:53:04 +01:00
Ara Adkins
96697ddc97
Fix a crash due to shadowed project names (#1571) 2021-03-16 12:45:19 +00:00
Ara Adkins
8290dedcda
Bump sbt to fix an issue with the scala REPL (#1562) 2021-03-10 12:00:35 +00:00
Marcin Kostrzewa
f298fbd3cf
R Interop (#1559) 2021-03-09 16:19:05 +01:00
Marcin Kostrzewa
03fa549daf
Python interop (#1541) 2021-03-05 12:18:37 +01:00
Dmitry Bushev
b5e9895fa7
Initialize language server on client connection (#1535) 2021-03-04 16:59:05 +00:00
Ara Adkins
d0bd58b584
Prepare for the 0.2.6 release (#1533) 2021-03-02 09:23:32 +00:00
Radosław Waśko
6544c2478d
Implement the first part of the database library (#1475) 2021-02-25 13:48:18 +00:00
Ara Adkins
f7c8c1ea4a
Enable the docker pipeline for releases (#1500) 2021-02-23 14:12:24 +00:00
Ara Adkins
8ec2a92b77
Upgrade GraalVM to 21.0 (#1487) 2021-02-22 13:32:55 +00:00
Ara Adkins
521acc7e72
Add the Geo.point function (#1474) 2021-02-12 15:27:54 +00:00
Ara Adkins
03b7ad24ea
Prepare for the 0.2.2 release (#1465) 2021-02-11 11:27:01 +00:00
Ara Adkins
4baaa71a58
Back out the 0.2.2 Release (#1464) 2021-02-10 16:38:09 +00:00
Ara Adkins
9ce5999629
Update the docs CI token name 2021-02-05 10:12:06 +00:00
Ara Adkins
af1aab35aa
Improve dataflow errors in the standard library (#1446) 2021-02-02 12:31:33 +00:00
Łukasz Olczak
f726cfe119
Docker refinement (#1420) 2021-01-25 21:26:46 +01:00
Radosław Waśko
10bccf6b56
Better component handling in the project manager (#1399) 2021-01-15 15:26:51 +00:00
Ara Adkins
0cbd636e58
Bump the development version number (#1389) 2021-01-06 08:57:02 +00:00
Łukasz Olczak
82ae12ea09
Release hot fix (#1373) 2020-12-28 10:36:34 +01:00
Łukasz Olczak
291cbfa6ee
Runtime Containerisation (#1345) 2020-12-23 18:56:30 +01:00
Radosław Waśko
25561e4c8c
Project Manager Native Image (#1318) 2020-12-09 14:58:11 +01:00
Dmitry Bushev
a6b2415188
Add JSON-RPC Timeout Error (#1332)
Add a separate timeout error to distinguish between
the request timeouts and other service errors.
2020-12-09 15:53:00 +03:00
Ara Adkins
f759dde7c8
Set up GH discussions (#1336) 2020-12-09 09:46:33 +00:00
Ara Adkins
ab7b49536f
Fix some CI timeouts (#1321) 2020-12-03 13:01:16 +00:00
Radosław Waśko
9e1b49d245
Forking Language Server in the Project Manager (#1305) 2020-12-02 16:56:47 +01:00
Marcin Kostrzewa
150771c0e2
Simple CSV parser (#1268) 2020-11-05 16:53:50 +01:00
Dmitry Bushev
36694e2496
Restructure the Standard Library (#1245)
Split std-lib into two libraries: Base and Test.
2020-10-29 08:48:48 +03:00
Radosław Waśko
79b718e28b
Make Legal Review Required For PRs (#1246) 2020-10-28 18:12:12 +01:00
Dmitry Bushev
11e4241921
HTTP Library (#1220)
Add `Base.Net.Http` library
2020-10-27 14:45:10 +03:00
Ara Adkins
746521f8b2
Bump SBT and Scalafmt (#1203)
Co-authored-by: Radosław Waśko <radoslaw.wasko@enso.org>
Co-authored-by: Dmitry Bushev <bushevdv@gmail.com>
2020-10-22 16:12:28 +02:00
Radosław Waśko
0740905306
Use Environment Files in Actions (#1218)
Updates and/or pins versions of some of the GitHub Actions that we use.
2020-10-21 16:48:05 +02:00
Radosław Waśko
989aa4b7d7
Initial Legal Review (#1210)
The reports will now be sent to the legal team for review.
2020-10-19 10:50:12 +02:00
Radosław Waśko
0a9e2a42ce
Automate License Information Gathering (#1198) 2020-10-09 16:19:58 +02:00
Marcin Kostrzewa
42dcc1a003
Run Stdlib tests on CI (#1196) 2020-10-06 17:45:02 +02:00
Ara Adkins
22f1b76428
Bump the Node LTS patch version (#1182) 2020-10-02 11:25:48 +01:00
Radosław Waśko
3d88e7f227
Change sbt links to direct GitHub releases links (#1176) 2020-10-01 10:37:46 +01:00
Marcin Kostrzewa
a1748c3978
Enso's Text Type (#1166) 2020-09-30 13:33:57 +02:00
Ara Adkins
bd9689a2b4
Disable TCP offloading on macOS (#1159) 2020-09-22 09:46:29 +01:00
Radosław Waśko
2155fa8e88
Fallback for Launcher Upgrades (#1139) 2020-09-14 11:05:37 +02:00
Ara Adkins
f9ce402a49
Add a label for the standard library 2020-09-10 10:03:03 +01:00
Radosław Waśko
044a0fa664
Implement Launcher Self-Update (#1125) 2020-09-09 15:37:26 +02:00
Ara Adkins
259302c229
Improve the CI configuration (#1122) 2020-09-07 12:24:34 +01:00
Radosław Waśko
125af6b7fe
Bump GraalVM Version to 20.2.0 (#1094) 2020-08-28 13:03:09 +02:00
Dmitry Bushev
170df5ebd8
Fix SBT Exit During Boot With Code 1 (#1108)
Fix the issue when sbt exits during the boot with error code 1
2020-08-27 13:00:01 +03:00
Radosław Waśko
c979938527
Run components through the launcher (#1073) 2020-08-19 13:24:31 +01:00
Josef
1f8a4b802f
Fix the release workflow (#1057) 2020-08-07 10:18:09 +01:00
Radosław Waśko
d72de5f306
Update CODEOWNERS (#1053) 2020-08-04 09:53:37 +01:00
Ara Adkins
37cdd60fea
Refactor the flexer to enable code generation (#1040) 2020-08-03 18:26:10 +01:00
Ara Adkins
6dc9c3ac7d
Update CODEOWNERS 2020-08-03 15:41:24 +01:00
Josef
359a768d2b
Integrate the Scala AST Generation with SBT (#1047) 2020-08-03 16:00:12 +02:00
Radosław Waśko
61b285f182
[Tool] Move engine build after launcher
1. Our builds include a version check which for stability does not rely
   on build.sbt but instead on querying enso --version. Building the
   engine takes a lot of time, so to save that time on failed builds,
   we ensure that the launcher is built first (which is much faster)
   and only if its version check succeeds, the engine build is
   attempted. This is achieved by making the `build-engine` job in
   `release.yml` depend on `build-launcher`.
2. Enso version is bumped to `0.1.0`.
2020-07-23 11:42:14 +02:00
Radosław Waśko
e8e44f68ad
[Feat, Tool] Add CLI Parser for the Launcher
1.  This commit adds an extensive library for parsing commandline
    arguments and formatting output.
2.  It implements the expected CLI for the launcher.
3.  It turns off parallel execution on the CI in hopes of making it
    more stable.
4.  It implements plugin support in the launcher.
2020-07-22 19:28:03 +02:00
Radosław Waśko
27a322db26
Automate the Enso release process (#989) 2020-07-21 17:30:01 +01:00
Ara Adkins
f1e18973e8
Update the prettier ignore settings 2020-07-21 15:42:54 +01:00
Ara Adkins
f5ffbe8fa7
Add a markdown style guide (#1022) 2020-07-21 13:59:40 +01:00
Radosław Waśko
1a38f7c331
Update Documentation and Build Settings (#993) 2020-07-21 10:14:26 +02:00
Dmitry Bushev
b8ff893840
Enable FlakySpec only on Windows (#1015) 2020-07-20 17:13:37 +03:00
Dmitry Bushev
01217d036c
Increase timeouts on Windows CI (#988) 2020-07-14 14:44:40 +03:00
Radosław Waśko
610a38df9a
Launcher Native Image Build (#970) 2020-07-10 12:57:42 +02:00
Ara Adkins
a9c49f20cf
Fix a few minor things in the repo (#986) 2020-07-08 16:10:06 +01:00
Radosław Waśko
0c33d5d841
Launcher Design (#963) 2020-07-08 15:54:41 +02:00
Dmitry Bushev
6ba038c800
Implement Search Requests API (#953) 2020-07-06 16:55:21 +03:00
Ara Adkins
d71ccff5ea
Update some links in the docs (#968) 2020-07-03 17:17:01 +01:00
Ara Adkins
919ffbdfac
Refactor the crate structure (#967) 2020-07-03 14:42:45 +01:00
Ara Adkins
7b37734c64
Update scalafmt to 2.6.1 (#961) 2020-07-02 16:23:34 +01:00
Ara Adkins
0e1ed00df6
Enable CodeQL analysis for Java (#956) 2020-07-01 16:17:24 +01:00
Ara Adkins
7ae677acb9
Describe the Enso release process (#957) 2020-07-01 15:26:49 +01:00
Radosław Waśko
cf0c735e91
Java 11 Migration (#928) 2020-07-01 13:21:13 +02:00
Ara Adkins
e9b676834b
Bump the SBT and Scala versions (#948)
1.  This PR also re-enables windows CI.
2020-06-29 18:24:41 +01:00
Ara Adkins
94c7e77e03
Update references to Luna to be Enso (#931) 2020-06-24 12:07:24 +01:00
Ara Adkins
4dc2e52a86
Update CI secret names (#927) 2020-06-23 17:08:52 +01:00
Ara Adkins
30a6c5bf97
Update the branch protection settings 2020-06-23 17:04:19 +01:00
Ara Adkins
71181dbc16
Rename repository to Enso 2020-06-23 16:45:27 +01:00
Ara Adkins
db1decc7b8
Add a label for codegen issues 2020-06-23 15:28:20 +01:00
Ara Adkins
724a68e054
Update settings.yml 2020-06-23 09:42:36 +01:00
Ara Adkins
f7d4ef546a
Prepare the repo for working on rust code (#841) 2020-06-16 17:18:11 +01:00
Radosław Waśko
3b326f0988
Build independent distributions on CI (#835) 2020-06-16 10:00:47 +01:00
Ara Adkins
df887f20f2
Temporarily disable windows on CI (#837) 2020-06-15 16:48:04 +01:00
Ara Adkins
d1ab83b4f1
Update the configuration for new default branch 2020-06-15 14:25:55 +01:00
Ara Adkins
f9e7543654
Update the default branch name to main 2020-06-15 14:08:06 +01:00
Radosław Waśko
1a6449d329
Migrate the REPL to the New Server (#827)
Also add language stack traces to the REPL.
2020-06-15 13:06:20 +02:00
Ara Adkins
bd800c47bc
Run CI for PRs to all branches (#836) 2020-06-12 15:51:59 +01:00
Radosław Waśko
765d08bc79
Improve instrument compilation task (#825)
The old version did not take Language.java into account and it did not
trigger compilation on transitive dependencies.

Still did not find a way to safely re-trigger compilation, but a run
with inconsistent state is now aborted and a message is displayed to the
user to manually re-run the last task which will fix the inconsistency
problems.
2020-06-10 10:37:12 +02:00
Marcin Kostrzewa
59571f3241
Document Running the Distribution (#812) 2020-06-08 12:55:34 +02:00
Radosław Waśko
92ac4b7449
Bump sbt version to 1.3.12 (#795) 2020-06-01 13:03:30 +01:00
Ara Adkins
5420ca9482
Bump GraalVM to 20.1 (#775) 2020-05-21 11:46:06 +01:00
Marcin Kostrzewa
64e3f07903
Auto-imported Std Lib and File Operations Cleanup (#771) 2020-05-20 17:05:22 +02:00
Ara Adkins
55f0839c39
Miscellaneous documentation fixes (#770) 2020-05-20 12:21:52 +01:00
Joe
42efcdb8c6
Add workflow to update luna.github.io on docs push (#763) 2020-05-18 16:56:15 +01:00
Ara Adkins
6d13ee997b
Update settings.yml 2020-05-18 09:06:16 +01:00
Ara Adkins
0ea1611fd1
Update permissioning in settings.yml 2020-05-18 08:50:12 +01:00
Ara Adkins
51d0991cbe
Update the repo labels 2020-05-15 17:52:47 +01:00
Ara Adkins
2100e3ed94
Update the repository settings 2020-05-15 17:43:44 +01:00
Ara Adkins
ac3a4b50d4
Update codeowners 2020-05-15 17:40:17 +01:00
Ara Adkins
dee465e29f
Add a repository configuration file 2020-05-15 17:38:04 +01:00
Łukasz Olczak
a42495a68e
Project Manager package (#745) 2020-05-15 13:05:44 +02:00
Ara Adkins
b8bb85319e
Remove issues security link
GitHub does this automatically if you have a `SECURITY.md` file
2020-05-15 11:42:41 +01:00
Ara Adkins
d2f93488b3
Restructure the developer documentation (#751) 2020-05-15 11:41:26 +01:00
Marcin Kostrzewa
7025918553
Enso Distribution CI (#748) 2020-05-15 10:07:58 +02:00