diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4b57e1c0..412460ae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,15 +8,26 @@ on: jobs: build: runs-on: ubuntu-latest - timeout-minutes: 30 + timeout-minutes: 40 steps: - - uses: actions/checkout@v3.5.3 - - name: Set up JDK 11 - uses: actions/setup-java@v3.12.0 + - uses: actions/checkout@v2 + - uses: DeLaGuardo/setup-graalvm@4.0 with: - java-version: 11 - distribution: liberica - - name: execute build - uses: gradle/gradle-build-action@v2.7.1 + graalvm: 21.2.0 + java: java11 + arch: amd64 + - uses: actions/cache@v2 with: - arguments: build + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} + restore-keys: | + ${{ runner.os }}-gradle- + - uses: actions/cache@v2 + with: + path: ~/.konan + key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} + restore-keys: | + ${{ runner.os }}-gradle- + - run: ./gradlew build --build-cache --no-daemon --stacktrace diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index aee354f6..134d3d48 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -10,15 +10,18 @@ jobs: timeout-minutes: 40 steps: - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2.5.0 + - uses: DeLaGuardo/setup-graalvm@4.0 with: - java-version: 11 - distribution: liberica - - name: execute build - uses: gradle/gradle-build-action@v2 + graalvm: 21.2.0 + java: java11 + arch: amd64 + - uses: actions/cache@v2 with: - arguments: dokkaHtmlMultiModule + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} + restore-keys: | + ${{ runner.os }}-gradle- + - run: ./gradlew dokkaHtmlMultiModule --build-cache --no-daemon --no-parallel --stacktrace - uses: JamesIves/github-pages-deploy-action@4.1.0 with: branch: gh-pages diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 99355168..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Gradle publish - -on: - workflow_dispatch: - release: - types: [ created ] - -jobs: - publish: - environment: - name: publish - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2.5.0 - with: - java-version: 11 - distribution: liberica - - name: execute build - uses: gradle/gradle-build-action@v2 - - name: Publish - shell: bash - run: > - ./gradlew release --no-daemon --build-cache -Ppublishing.enabled=true - -Ppublishing.space.user=${{ secrets.SPACE_APP_ID }} - -Ppublishing.space.token=${{ secrets.SPACE_APP_SECRET }} diff --git a/.gitignore b/.gitignore index 6d07da58..33607764 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,5 @@ out/ .gradle build/ -data/ !gradle-wrapper.jar - -/kotlin-js-store/yarn.lock diff --git a/.space.kts b/.space.kts deleted file mode 100644 index 45b2ed53..00000000 --- a/.space.kts +++ /dev/null @@ -1,4 +0,0 @@ -job("Build") { - gradlew("openjdk:11", "build") -} - diff --git a/CHANGELOG.md b/CHANGELOG.md index dbb44a80..d638f0c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,31 +2,6 @@ ## [Unreleased] ### Added -- Context receivers flag -- MeshLine for thick lines - -### Changed -- Color accessor property is now `colorProperty`. Color uses `invoke` instead of `set` -- API update for server and pages -- Edges moved to solids module for easier construction -- Visions **must** be rooted in order to subscribe to updates. -- Visions use flows instead of direct subscriptions. -- Radical change of inner workings of vision children and properties. -- Three package changed to `three`. -- Naming of Canvas3D options. -- Lights are added to the scene instead of 3D options. - -### Deprecated - -### Removed - -### Fixed -- Jupyter integration for IDEA and Jupyter lab. - -### Security - -## [0.2.0] -### Added - Server module - Change collector - Customizable accessors for colors @@ -34,9 +9,6 @@ - Hexagon interface and GenericHexagon implementation (Box inherits Hexagon) - Increased the default detail level for spheres and cones to 32 - Simple clipping for Solids in ThreeJs -- Markdown module -- Tables module - ### Changed - Vision does not implement ItemProvider anymore. Property changes are done via `getProperty`/`setProperty` and `property` delegate. @@ -53,16 +25,12 @@ - Property listeners are not triggered if there are no changes. - Feedback websocket connection in the client. - ### Deprecated ### Removed - Primary modules dependencies on UI - ### Fixed - Version conflicts - ### Security - diff --git a/README.md b/README.md index eeeaab9e..b8ff5212 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,15 @@ * [Features](#features) * [About DataForge](#about-dataforge) * [Modules contained in this repository](#modules-contained-in-this-repository) -* [Visualization for External Systems](#visualization-for-external-systems) + * [visionforge-core](#visionforge-core) + * [visionforge-solid](#visionforge-solid) + * [visionforge-gdml](#visionforge-gdml) + * [visionforge-fx](#visionforge-fx) + * [visionforge-markdown](#visionforge-markdown) + * [visionforge-plotly](#visionforge-plotly) + * [visionforge-server](#visionforge-server) + * [visionforge-threejs](#visionforge-threejs) +* [Visualization for External Systems](#visualization-for-external-systems) * [Demonstrations](#demonstrations) * [Simple Example - Solid Showcase](#simple-example---solid-showcase) * [Full-Stack Application Example - Muon Monitor](#full-stack-application-example---muon-monitor-visualization) @@ -23,13 +31,13 @@ ## Introduction -This repository contains a [DataForge](#about-dataforge)\-based framework -used for visualization in various scientific applications. +This repository contains a [DataForge](#about-dataforge)\-based framework +used for visualization in various scientific applications. -The main framework's use case for now is 3D visualization for particle physics experiments. +The main framework's use case for now is 3D visualization for particle physics experiments. Other applications including 2D plots are planned for the future. -The project is developed as a [Kotlin multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html) +The project is developed as a [Kotlin multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html) application, currently targeting browser JavaScript and JVM. ## Requirements @@ -54,165 +62,35 @@ Platform uses some of the concepts and modules of DataForge, including: `Meta`, `Provider`, and some others. To learn more about DataForge, please consult the following URLs: -* [Kotlin multiplatform implementation of DataForge](https://github.com/mipt-npm/dataforge-core) -* [DataForge documentation](http://npm.mipt.ru/dataforge/) -* [Original implementation of DataForge](https://bitbucket.org/Altavir/dataforge/src/default/) + * [Kotlin multiplatform implementation of DataForge](https://github.com/mipt-npm/dataforge-core) + * [DataForge documentation](http://npm.mipt.ru/dataforge/) + * [Original implementation of DataForge](https://bitbucket.org/Altavir/dataforge/src/default/) ## Modules contained in this repository -