Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 71 additions & 1 deletion .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,15 @@ on:
pull_request:
branches: [ dev ]

env:
PUPPETEER_CACHE_DIR: ${{ github.workspace }}/.cache/verso-browser
PLOTLY_VERSO_TEST_ARTIFACTS: ${{ github.workspace }}/tests/VersoTests/artifacts/browser

jobs:
build-and-test-linux:

runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 30

steps:
- uses: actions/checkout@v4
Expand All @@ -21,13 +25,32 @@ jobs:
10.x.x
- name: make script executable
run: chmod u+x build.sh
- name: Install Chromium libraries
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends fonts-liberation libasound2t64 libatk-bridge2.0-0t64 libgbm1 libgtk-3-0t64 libnss3 libxss1
- uses: actions/cache@v4
with:
path: .cache/verso-browser
key: verso-chromium-${{ runner.os }}-puppeteersharp-25.15.0
- name: Provision pinned Chromium
run: ./build.sh PrepareVersoBrowser
- name: Build and test
working-directory: ./
run: ./build.sh runtestsall
- name: Upload test diagnostics
if: failure()
uses: actions/upload-artifact@v4
with:
name: tests-linux
path: |
**/TestResults/**
tests/VersoTests/artifacts/browser/**

build-and-test-windows:

runs-on: windows-latest
timeout-minutes: 30

steps:
- uses: actions/checkout@v4
Expand All @@ -36,6 +59,53 @@ jobs:
with:
dotnet-version: |
10.x.x
- uses: actions/cache@v4
with:
path: .cache/verso-browser
key: verso-chromium-${{ runner.os }}-puppeteersharp-25.15.0
- name: Provision pinned Chromium
run: ./build.cmd PrepareVersoBrowser
- name: Build and test
working-directory: ./
run: ./build.cmd runtestsall
- name: Upload test diagnostics
if: failure()
uses: actions/upload-artifact@v4
with:
name: tests-windows
path: |
**/TestResults/**
tests/VersoTests/artifacts/browser/**

verso-package-integration:
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.x.x
- name: Install Chromium libraries
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends fonts-liberation libasound2t64 libatk-bridge2.0-0t64 libgbm1 libgtk-3-0t64 libnss3 libxss1
- uses: actions/cache@v4
with:
path: .cache/verso-browser
key: verso-chromium-${{ runner.os }}-puppeteersharp-25.15.0
- name: Test local packages in Verso 1.2.3
run: |
chmod u+x build.sh
./build.sh RunVersoIntegrationTests
- name: Upload host diagnostics
if: always()
uses: actions/upload-artifact@v4
with:
name: verso-host-integration
path: |
tests/VersoTests/artifacts/packages.json
tests/VersoTests/artifacts/runs/*/*.log
tests/VersoTests/artifacts/runs/*/*.json
tests/VersoTests/artifacts/runs/*/*.html
tests/VersoTests/artifacts/runs/*/*.png
tests/VersoTests/artifacts/runs/*/*.verso
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ packages/

# Test results produced by build
TestResults.xml
**/TestResults/

# Nuget outputs
nuget/*.nupkg
Expand Down Expand Up @@ -197,3 +198,6 @@ temp/gh-pages
/plotly-gource.x264.avi
/plotly-gource.ppm
/tests/InteractiveTests/pkg
/tests/VersoTests/pkg
/tests/VersoTests/artifacts/
/.cache/verso-browser/
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,12 @@ For faster local iteration, prefer the FAKE `*Fast` test targets. These skip the
./build.cmd RunTestsExtensionLibsFast
./build.cmd RunImageExportTestsFast
./build.cmd RunCSharpTestsFast
./build.cmd RunVersoTestsFast
./build.cmd RunVersoBrowserTestsFast
```

Verso's packaged CLI/web-host smoke uses `RunVersoIntegrationTests` separately from the regular unit/browser aggregate. `PrepareVersoBrowser` provisions the pinned Chromium revision. See `tests/README.md` for cache isolation and the VS Code release smoke.

Use the fast targets during implementation, but **always run a full `./build.cmd runTestsAll` before committing changes** so the clean end-to-end pipeline is exercised at least once.

### Writing tests
Expand Down
51 changes: 51 additions & 0 deletions Plotly.NET.TestSuite.sln
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,28 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".project", ".project", "{F8
tests\README.md = tests\README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0AB3BF05-4346-4AA6-1389-037BE0695223}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExtensionLibsTests", "ExtensionLibsTests", "{B49D0B3A-AF90-AE88-9F71-7A7FA5B38005}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VersoTests", "tests\ExtensionLibsTests\VersoTests\VersoTests.fsproj", "{EA82753E-7A5C-4C0E-8F5F-79F638DBDC5C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Plotly.NET.Verso", "src\Plotly.NET.Verso\Plotly.NET.Verso.fsproj", "{3C58E7CB-7FC6-4031-B807-A00B72F0E1DF}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Plotly.NET", "src\Plotly.NET\Plotly.NET.fsproj", "{BF17461A-8C55-4FCA-BB12-C7FA4AC39441}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{E20385C6-4CD7-5BF4-C007-71E5EE00BC8D}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VersoBrowserTests", "tests\ExtensionLibsTests\VersoBrowserTests\VersoBrowserTests.fsproj", "{888575C4-AB72-4A6F-BD57-2DAE9797B81D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VersoTests", "VersoTests", "{9AC19BB9-EF0B-987F-09AE-8434E842AE82}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Integration", "Integration", "{A1E1AFD6-AA71-8DED-553C-085284F01554}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VersoIntegrationTests", "tests\VersoTests\Integration\VersoIntegrationTests.fsproj", "{BD7E66B6-7E4F-499F-BD7D-F89FA57B61C9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -58,6 +80,26 @@ Global
{B1214EE4-C1D4-4046-975D-A06373390E71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1214EE4-C1D4-4046-975D-A06373390E71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1214EE4-C1D4-4046-975D-A06373390E71}.Release|Any CPU.Build.0 = Release|Any CPU
{EA82753E-7A5C-4C0E-8F5F-79F638DBDC5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA82753E-7A5C-4C0E-8F5F-79F638DBDC5C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA82753E-7A5C-4C0E-8F5F-79F638DBDC5C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EA82753E-7A5C-4C0E-8F5F-79F638DBDC5C}.Release|Any CPU.Build.0 = Release|Any CPU
{3C58E7CB-7FC6-4031-B807-A00B72F0E1DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C58E7CB-7FC6-4031-B807-A00B72F0E1DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C58E7CB-7FC6-4031-B807-A00B72F0E1DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C58E7CB-7FC6-4031-B807-A00B72F0E1DF}.Release|Any CPU.Build.0 = Release|Any CPU
{BF17461A-8C55-4FCA-BB12-C7FA4AC39441}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF17461A-8C55-4FCA-BB12-C7FA4AC39441}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF17461A-8C55-4FCA-BB12-C7FA4AC39441}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF17461A-8C55-4FCA-BB12-C7FA4AC39441}.Release|Any CPU.Build.0 = Release|Any CPU
{888575C4-AB72-4A6F-BD57-2DAE9797B81D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{888575C4-AB72-4A6F-BD57-2DAE9797B81D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{888575C4-AB72-4A6F-BD57-2DAE9797B81D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{888575C4-AB72-4A6F-BD57-2DAE9797B81D}.Release|Any CPU.Build.0 = Release|Any CPU
{BD7E66B6-7E4F-499F-BD7D-F89FA57B61C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BD7E66B6-7E4F-499F-BD7D-F89FA57B61C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BD7E66B6-7E4F-499F-BD7D-F89FA57B61C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BD7E66B6-7E4F-499F-BD7D-F89FA57B61C9}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -69,6 +111,15 @@ Global
{FEAB6AB7-1F9A-4E75-B047-F34C3AE1919B} = {6C49B0AB-8502-4E46-9348-64161F84E727}
{24AE6CF2-8A86-4F8B-82D6-30D04D674933} = {CCB58D28-C02B-49A8-8614-8BD3D4FA9DF9}
{B1214EE4-C1D4-4046-975D-A06373390E71} = {CCB58D28-C02B-49A8-8614-8BD3D4FA9DF9}
{B49D0B3A-AF90-AE88-9F71-7A7FA5B38005} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{EA82753E-7A5C-4C0E-8F5F-79F638DBDC5C} = {B49D0B3A-AF90-AE88-9F71-7A7FA5B38005}
{3C58E7CB-7FC6-4031-B807-A00B72F0E1DF} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{BF17461A-8C55-4FCA-BB12-C7FA4AC39441} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{E20385C6-4CD7-5BF4-C007-71E5EE00BC8D} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{888575C4-AB72-4A6F-BD57-2DAE9797B81D} = {B49D0B3A-AF90-AE88-9F71-7A7FA5B38005}
{9AC19BB9-EF0B-987F-09AE-8434E842AE82} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{A1E1AFD6-AA71-8DED-553C-085284F01554} = {9AC19BB9-EF0B-987F-09AE-8434E842AE82}
{BD7E66B6-7E4F-499F-BD7D-F89FA57B61C9} = {A1E1AFD6-AA71-8DED-553C-085284F01554}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {67F9FFDF-3841-4DE1-9A55-9494FFC0A288}
Expand Down
45 changes: 45 additions & 0 deletions Plotly.NET.sln
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "data", "{0D955C86-2
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "InteractiveTests", "tests\ExtensionLibsTests\InteractiveTests\InteractiveTests.fsproj", "{04BC8CE5-B096-46AD-AB1D-674305BAF59A}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Plotly.NET.Verso", "src\Plotly.NET.Verso\Plotly.NET.Verso.fsproj", "{4E9DAEE7-0162-4E01-A690-CBA668F26B19}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExtensionLibsTests", "ExtensionLibsTests", "{B97B26B6-548F-4656-B980-20BD04D168C7}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VersoTests", "tests\ExtensionLibsTests\VersoTests\VersoTests.fsproj", "{30EDCE67-AAEC-4138-A24C-D752012F03F3}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VersoBrowserTests", "tests\ExtensionLibsTests\VersoBrowserTests\VersoBrowserTests.fsproj", "{BA1748AB-FF1A-441D-BE91-E81394AA7036}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VersoTests", "VersoTests", "{DDBAA935-5A2C-D257-BB32-F100901CEBDA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Integration", "Integration", "{610A9D23-4258-9593-5A5B-D958211BF92A}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "VersoIntegrationTests", "tests\VersoTests\Integration\VersoIntegrationTests.fsproj", "{F12070A1-8811-408F-B6A3-7B34023D3807}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -318,6 +332,30 @@ Global
{04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04BC8CE5-B096-46AD-AB1D-674305BAF59A}.Release|Any CPU.Build.0 = Release|Any CPU
{4E9DAEE7-0162-4E01-A690-CBA668F26B19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E9DAEE7-0162-4E01-A690-CBA668F26B19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E9DAEE7-0162-4E01-A690-CBA668F26B19}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
{4E9DAEE7-0162-4E01-A690-CBA668F26B19}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{4E9DAEE7-0162-4E01-A690-CBA668F26B19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E9DAEE7-0162-4E01-A690-CBA668F26B19}.Release|Any CPU.Build.0 = Release|Any CPU
{30EDCE67-AAEC-4138-A24C-D752012F03F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30EDCE67-AAEC-4138-A24C-D752012F03F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30EDCE67-AAEC-4138-A24C-D752012F03F3}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
{30EDCE67-AAEC-4138-A24C-D752012F03F3}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{30EDCE67-AAEC-4138-A24C-D752012F03F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30EDCE67-AAEC-4138-A24C-D752012F03F3}.Release|Any CPU.Build.0 = Release|Any CPU
{BA1748AB-FF1A-441D-BE91-E81394AA7036}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA1748AB-FF1A-441D-BE91-E81394AA7036}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA1748AB-FF1A-441D-BE91-E81394AA7036}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
{BA1748AB-FF1A-441D-BE91-E81394AA7036}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{BA1748AB-FF1A-441D-BE91-E81394AA7036}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA1748AB-FF1A-441D-BE91-E81394AA7036}.Release|Any CPU.Build.0 = Release|Any CPU
{F12070A1-8811-408F-B6A3-7B34023D3807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F12070A1-8811-408F-B6A3-7B34023D3807}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F12070A1-8811-408F-B6A3-7B34023D3807}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
{F12070A1-8811-408F-B6A3-7B34023D3807}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{F12070A1-8811-408F-B6A3-7B34023D3807}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F12070A1-8811-408F-B6A3-7B34023D3807}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -359,6 +397,13 @@ Global
{2DF92AB2-7B8C-48D5-B779-26BA1F31BCA1} = {A9025690-FABC-4BD3-AC94-F31B60A948B4}
{0D955C86-2E86-4D50-828A-6CF5AD99A119} = {7B09CC0A-F1E1-4094-9DE4-B047581E01F0}
{04BC8CE5-B096-46AD-AB1D-674305BAF59A} = {02886FBB-DB32-4BBB-A93C-E13EBF453ACC}
{4E9DAEE7-0162-4E01-A690-CBA668F26B19} = {0E87E47E-9EDC-4525-AF72-F0E139D54236}
{B97B26B6-548F-4656-B980-20BD04D168C7} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
{30EDCE67-AAEC-4138-A24C-D752012F03F3} = {B97B26B6-548F-4656-B980-20BD04D168C7}
{BA1748AB-FF1A-441D-BE91-E81394AA7036} = {B97B26B6-548F-4656-B980-20BD04D168C7}
{DDBAA935-5A2C-D257-BB32-F100901CEBDA} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
{610A9D23-4258-9593-5A5B-D958211BF92A} = {DDBAA935-5A2C-D257-BB32-F100901CEBDA}
{F12070A1-8811-408F-B6A3-7B34023D3807} = {610A9D23-4258-9593-5A5B-D958211BF92A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7177F1E1-341C-48AB-9864-6B525FFF7633}
Expand Down
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,17 +48,20 @@ In short, Plotly.NET consists of multiple API layers and packages:

- `Plotly.NET.Interactive` - This package provides interactive formatting extensions for .NET interactive notebooks.

- `Plotly.NET.Verso` - Inline chart formatting for Verso notebooks, including embedded offline charts. See the [Verso guide](src/Plotly.NET.Verso/README.md) for registration and migration from Polyglot.

- `Plotly.NET.ImageExport` - This package provides extensions for Plotly.NET to render charts as static images programmatically.

- `Plotly.NET.CSharp` - This package provides an idiomatic C# API. Note that you can use the core API in C#, this package just removes some friction at some places.
# Installation

You can get all Plotly.NET packages via nuget:
Published Plotly.NET packages are available via NuGet:

| Package Name| Nuget |
|---|---|
| [Plotly.NET](src/Plotly.NET/README.md) | [![](https://img.shields.io/nuget/vpre/Plotly.NET)](https://www.nuget.org/packages/Plotly.NET/) |
| [Plotly.NET.Interactive](src/Plotly.NET.Interactive/README.md) | [![](https://img.shields.io/nuget/vpre/Plotly.NET.Interactive)](https://www.nuget.org/packages/Plotly.NET.Interactive/) |
| [Plotly.NET.Verso](src/Plotly.NET.Verso/README.md) | Initial release; [local testing before publication](tests/README.md#verso-tests) |
| [Plotly.NET.ImageExport](src/Plotly.NET.ImageExport/README.md) | [![](https://img.shields.io/nuget/vpre/Plotly.NET.ImageExport)](https://www.nuget.org/packages/Plotly.NET.ImageExport/) |
| [Plotly.NET.CSharp](src/Plotly.NET.CSharp/README.md) | [![](https://img.shields.io/nuget/vpre/Plotly.NET.CSharp)](https://www.nuget.org/packages/Plotly.NET.CSharp/) |

Expand All @@ -70,6 +73,8 @@ You can get all Plotly.NET packages via nuget:

In F# projects, just add the `Plotly.NET` package to your project and you are ready to go!

For **Verso notebooks**, use [Plotly.NET.Verso](src/Plotly.NET.Verso/README.md) and its explicit extension-registration step. `Plotly.NET.Interactive` below is the adapter for .NET Interactive / Polyglot Notebooks.

<details>
<summary> 📖 Polyglot Notebook 📖 Quick start</summary>

Expand Down
5 changes: 5 additions & 0 deletions build/Build.fs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,15 @@ open Helpers
open BasicTasks
open TestTasks
open PackageTasks
open VersoTasks
open DocumentationTasks
open ReleaseTasks

initializeContext ()

// Reference the independent integration module so its targets are registered.
let private _versoIntegration = runVersoIntegrationTests

open BasicTasks

//workaround for tasks created with functions not being runnable.
Expand All @@ -33,6 +37,7 @@ let sourceFiles =
!! "src/Plotly.NET/**/*.fs"
++ "src/Plotly.NET.ImageExport/**/*.fs"
++ "src/Plotly.NET.Interactive/**/*.fs"
++ "src/Plotly.NET.Verso/**/*.fs"
++ "build/*.fs"
-- "**/obj/**/*.*"
-- "**/bin/**/*.*"
Expand Down
10 changes: 10 additions & 0 deletions build/ProjectInfo.fs
Original file line number Diff line number Diff line change
Expand Up @@ -81,24 +81,34 @@ let testProjectsCore = [

let ImageExportTestProject = ProjectInfo.create("ImageExportTests", "tests/ExtensionLibsTests/ImageExportTests/ImageExportTests.fsproj")
let CSharpTestProject = ProjectInfo.create("CSharpTests", "tests/ExtensionLibsTests/CSharpTests/CSharpTests.csproj")
let VersoTestProject = ProjectInfo.create("VersoTests", "tests/ExtensionLibsTests/VersoTests/VersoTests.fsproj")
let VersoBrowserTestProject = ProjectInfo.create("VersoBrowserTests", "tests/ExtensionLibsTests/VersoBrowserTests/VersoBrowserTests.fsproj")
let VersoIntegrationTestProject = ProjectInfo.create("VersoIntegrationTests", "tests/VersoTests/Integration/VersoIntegrationTests.fsproj")

// Real-host tests have their own target because they install and launch the pinned Verso CLI.
let testProjectsVersoIntegration = [ VersoIntegrationTestProject ]

///
let testProjectsExtensionsLibs = [
ImageExportTestProject
CSharpTestProject
VersoTestProject
VersoBrowserTestProject
]

let CoreProject = ProjectInfo.create("Plotly.NET", "src/Plotly.NET/Plotly.NET.fsproj", "src/Plotly.NET/RELEASE_NOTES.md")
let InteractiveProject = ProjectInfo.create("Plotly.NET.Interactive", "src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj", "src/Plotly.NET.Interactive/RELEASE_NOTES.md")
let ImageExportProject = ProjectInfo.create("Plotly.NET.ImageExport", "src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj", "src/Plotly.NET.ImageExport/RELEASE_NOTES.md")
let CSharpProject = ProjectInfo.create("Plotly.NET.CSharp", "src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj", "src/Plotly.NET.CSharp/RELEASE_NOTES.md")
let VersoProject = ProjectInfo.create("Plotly.NET.Verso", "src/Plotly.NET.Verso/Plotly.NET.Verso.fsproj", "src/Plotly.NET.Verso/RELEASE_NOTES.md")

/// contains project info about all projects
let projects = [
CoreProject
InteractiveProject
ImageExportProject
CSharpProject
VersoProject
]

/// docs are always targeting the version of the core project
Expand Down
Loading
Loading