diff --git a/Plotly.NET.sln b/Plotly.NET.sln
index 71e035ef3..1aef1b44c 100644
--- a/Plotly.NET.sln
+++ b/Plotly.NET.sln
@@ -8,6 +8,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{BF60
.editorconfig = .editorconfig
.config\dotnet-tools.json = .config\dotnet-tools.json
global.json = global.json
+ key.snk = key.snk
LICENSE = LICENSE
README.md = README.md
RELEASE_NOTES.md = RELEASE_NOTES.md
@@ -107,12 +108,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{7B09CC0A-F
docs\11_1_carpet_line_scatter_plots.fsx = docs\11_1_carpet_line_scatter_plots.fsx
docs\11_2_contourcarpet_plots.fsx = docs\11_2_contourcarpet_plots.fsx
docs\12_1_smith_line_scatter_plots.fsx = docs\12_1_smith_line_scatter_plots.fsx
- docs\_template.fsx = docs\_template.fsx
- docs\_template.html = docs\_template.html
- docs\_template.ipynb = docs\_template.ipynb
docs\Dockerfile = docs\Dockerfile
docs\index.fsx = docs\index.fsx
docs\NuGet.config = docs\NuGet.config
+ docs\_template.fsx = docs\_template.fsx
+ docs\_template.html = docs\_template.html
+ docs\_template.ipynb = docs\_template.ipynb
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "reference", "reference", "{5219BAC7-ACE6-435F-A983-BC63DD7B745E}"
@@ -144,8 +145,6 @@ Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Plotly.NET.Tests.FSharpCons
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Plotly.NET.Tests.CSharpConsole", "tests\Plotly.NET.Tests.CSharpConsole\Plotly.NET.Tests.CSharpConsole.csproj", "{1BC73DA0-586F-45C2-BC5B-A70C452A00F0}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Plotly.NET.Tests.CSharp", "tests\Plotly.NET.Tests.CSharp\Plotly.NET.Tests.CSharp.csproj", "{26539796-0C9D-4856-8584-B58BE32CC495}"
-EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Plotly.NET.ImageExport.Tests", "tests\Plotly.NET.ImageExport.Tests\Plotly.NET.ImageExport.Tests.fsproj", "{55A461C3-8018-4020-B16E-D6005BDFCAED}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "build", "build\build.fsproj", "{403785C9-B5B1-4BA4-9944-A0F9D5D1B3CD}"
@@ -154,6 +153,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Plotly.NET.CSharp", "src\Pl
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Plotly.NET.CSharp.Tests", "tests\Plotly.NET.CSharp.Tests\Plotly.NET.CSharp.Tests.csproj", "{4C24BA53-F41C-4110-AD7A-28143DCF671E}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Plotly.NET.Tests.CSharpInteroperability", "tests\Plotly.NET.Tests.CSharpInteroperability\Plotly.NET.Tests.CSharpInteroperability.csproj", "{64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -197,12 +198,6 @@ Global
{1BC73DA0-586F-45C2-BC5B-A70C452A00F0}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{1BC73DA0-586F-45C2-BC5B-A70C452A00F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1BC73DA0-586F-45C2-BC5B-A70C452A00F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {26539796-0C9D-4856-8584-B58BE32CC495}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {26539796-0C9D-4856-8584-B58BE32CC495}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {26539796-0C9D-4856-8584-B58BE32CC495}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
- {26539796-0C9D-4856-8584-B58BE32CC495}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
- {26539796-0C9D-4856-8584-B58BE32CC495}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {26539796-0C9D-4856-8584-B58BE32CC495}.Release|Any CPU.Build.0 = Release|Any CPU
{55A461C3-8018-4020-B16E-D6005BDFCAED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55A461C3-8018-4020-B16E-D6005BDFCAED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55A461C3-8018-4020-B16E-D6005BDFCAED}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
@@ -227,6 +222,12 @@ Global
{4C24BA53-F41C-4110-AD7A-28143DCF671E}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
{4C24BA53-F41C-4110-AD7A-28143DCF671E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4C24BA53-F41C-4110-AD7A-28143DCF671E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}.Dotnet|Any CPU.ActiveCfg = Debug|Any CPU
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}.Dotnet|Any CPU.Build.0 = Debug|Any CPU
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -241,11 +242,11 @@ Global
{6CFC629E-1A0C-4EF3-8495-BA00A356A381} = {0E87E47E-9EDC-4525-AF72-F0E139D54236}
{60114ACE-77E6-4A19-9A2F-CB64084174AF} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
{1BC73DA0-586F-45C2-BC5B-A70C452A00F0} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
- {26539796-0C9D-4856-8584-B58BE32CC495} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
{55A461C3-8018-4020-B16E-D6005BDFCAED} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
{403785C9-B5B1-4BA4-9944-A0F9D5D1B3CD} = {7C6D08E7-3EAC-4335-8F4B-252C193C27C9}
{F944FE69-F4A5-4B48-8E4D-BE4B61E92B26} = {0E87E47E-9EDC-4525-AF72-F0E139D54236}
{4C24BA53-F41C-4110-AD7A-28143DCF671E} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
+ {64022D22-EB9A-4AE3-A0E6-BFA41E8B18CB} = {EAE25A1F-86FC-426B-803F-1006D1AD06A8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7177F1E1-341C-48AB-9864-6B525FFF7633}
diff --git a/build/BasicTasks.fs b/build/BasicTasks.fs
index d34166477..cd6d1d51c 100644
--- a/build/BasicTasks.fs
+++ b/build/BasicTasks.fs
@@ -7,19 +7,56 @@ open Fake.IO.Globbing.Operators
open ProjectInfo
+/// Buildtask for setting a prerelease tag (also sets the mutable isPrerelease to true, and the PackagePrereleaseTag of all project infos accordingly.)
let setPrereleaseTag =
BuildTask.create "SetPrereleaseTag" [] {
printfn "Please enter pre-release package suffix"
let suffix = System.Console.ReadLine()
prereleaseSuffix <- suffix
- prereleaseTag <- (sprintf "%s-%s" release.NugetVersion suffix)
isPrerelease <- true
+ projects
+ |> List.iter (fun p ->
+ p.PackagePrereleaseTag <- (sprintf "%s-%s" p.PackageVersionTag suffix)
+ )
+ //
+ prereleaseTag <- (sprintf "%s-%s" CoreProject.PackageVersionTag suffix)
}
+/// cleans the bin, obj/obj dir of all projects and test projects, as well as the pkg dir.
let clean =
BuildTask.create "Clean" [] {
!! "src/**/bin" ++ "src/**/obj" ++ "tests/**/bin" ++ "tests/**/obj" ++ "pkg" |> Shell.cleanDirs
}
-let build =
- BuildTask.create "Build" [ clean ] { solutionFile |> DotNet.build id }
+/// builds the solution file (dotnet build solution.sln)
+let buildSolution =
+ BuildTask.create "BuildSolution" [ clean ] { solutionFile |> DotNet.build id }
+
+/// builds the individual project files (dotnet build project.*proj)
+///
+/// The following MSBuild params are set for each project accordingly to the respective ProjectInfo:
+///
+/// - AssemblyVersion
+///
+/// - AssemblyInformationalVersion
+let build = BuildTask.create "Build" [clean] {
+ projects
+ |> List.iter (fun pInfo ->
+ let proj = pInfo.ProjFile
+ proj
+ |> DotNet.build (fun p ->
+ let msBuildParams =
+ {p.MSBuildParams with
+ Properties = ([
+ "AssemblyVersion", pInfo.AssemblyVersion
+ "InformationalVersion", pInfo.AssemblyInformationalVersion
+ ])
+ }
+ {
+ p with
+ MSBuildParams = msBuildParams
+ }
+ |> DotNet.Options.withCustomParams (Some "--no-dependencies")
+ )
+ )
+}
\ No newline at end of file
diff --git a/build/DocumentationTasks.fs b/build/DocumentationTasks.fs
index 5103245ec..b3ba7af4d 100644
--- a/build/DocumentationTasks.fs
+++ b/build/DocumentationTasks.fs
@@ -8,12 +8,12 @@ open BlackFox.Fake
let buildDocs =
BuildTask.create "BuildDocs" [ build ] {
- printfn "building docs with stable version %s" stableVersionTag
+ printfn "building docs with stable version %s" stableDocsVersionTag
runDotNet
(sprintf
"fsdocs build --eval --clean --properties Configuration=Release --parameters fsdocs-package-version %s"
- stableVersionTag)
+ stableDocsVersionTag)
"./"
}
@@ -30,12 +30,12 @@ let buildDocsPrerelease =
let watchDocs =
BuildTask.create "WatchDocs" [ build ] {
- printfn "watching docs with stable version %s" stableVersionTag
+ printfn "watching docs with stable version %s" stableDocsVersionTag
runDotNet
(sprintf
"fsdocs watch --eval --clean --properties Configuration=Release --parameters fsdocs-package-version %s"
- stableVersionTag)
+ stableDocsVersionTag)
"./"
}
diff --git a/build/PackageTasks.fs b/build/PackageTasks.fs
index 374670078..311caf0f8 100644
--- a/build/PackageTasks.fs
+++ b/build/PackageTasks.fs
@@ -8,31 +8,52 @@ open TestTasks
open BlackFox.Fake
open Fake.Core
+open Fake.DotNet
open Fake.IO.Globbing.Operators
-let pack =
- BuildTask.create "Pack" [ clean; build; runTests ] {
- if promptYesNo (sprintf "creating stable package with version %s OK?" stableVersionTag) then
- !! "src/**/*.*proj" -- "src/bin/*"
- |> Seq.iter (
- Fake.DotNet.DotNet.pack (fun p ->
- let msBuildParams =
+let pack = BuildTask.create "Pack" [ clean; build; runTests ] {
+ projects
+ |> List.iter (fun pInfo ->
+ if promptYesNo $"creating stable package for {pInfo.Name}{System.Environment.NewLine}\tpackage version: {pInfo.PackageVersionTag}{System.Environment.NewLine}\tassembly version: {pInfo.AssemblyVersion}{System.Environment.NewLine}\tassembly informational version: {pInfo.AssemblyInformationalVersion}{System.Environment.NewLine} OK?" then
+ pInfo.ProjFile
+ |> Fake.DotNet.DotNet.pack (fun p ->
+ let msBuildParams =
+ match pInfo.ReleaseNotes with
+ | Some r ->
+ { p.MSBuildParams with
+ Properties =
+ ([
+ "Version",pInfo.PackageVersionTag
+ "AssemblyVersion", pInfo.AssemblyVersion
+ "AssemblyInformationalVersion", pInfo.AssemblyVersion
+ "PackageReleaseNotes", (r.Notes |> String.concat "\r\n")
+ "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
+ ]
+ @ p.MSBuildParams.Properties)
+ }
+ | _ ->
{ p.MSBuildParams with
Properties =
([
- "Version", stableVersionTag
- "PackageReleaseNotes", (release.Notes |> String.concat "\r\n")
- ]
- @ p.MSBuildParams.Properties)
+ "Version",pInfo.PackageVersionTag
+ "AssemblyVersion", pInfo.AssemblyVersion
+ "AssemblyInformationalVersion", pInfo.AssemblyVersion
+ "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
+ ]
+ @ p.MSBuildParams.Properties)
}
+
- { p with
- MSBuildParams = msBuildParams
- OutputPath = Some pkgDir
- })
+ { p with
+ MSBuildParams = msBuildParams
+ OutputPath = Some pkgDir
+ NoBuild = true
+ }
+ |> DotNet.Options.withCustomParams (Some "--no-dependencies")
)
else
failwith "aborted"
+ )
}
let packPrerelease =
@@ -44,26 +65,44 @@ let packPrerelease =
build
runTests
] {
- if promptYesNo (sprintf "package tag will be %s OK?" prereleaseTag) then
- !! "src/**/*.*proj" -- "src/bin/*"
- |> Seq.iter (
- Fake.DotNet.DotNet.pack (fun p ->
+ projects
+ |> List.iter (fun pInfo ->
+ if promptYesNo $"creating prerelease package for {pInfo.Name}{System.Environment.NewLine}\tpackage version: {pInfo.PackagePrereleaseTag}{System.Environment.NewLine}\tassembly version: {pInfo.AssemblyVersion}{System.Environment.NewLine}\tassembly informational version: {pInfo.AssemblyInformationalVersion}{System.Environment.NewLine} OK?" then
+ pInfo.ProjFile
+ |> Fake.DotNet.DotNet.pack (fun p ->
let msBuildParams =
- { p.MSBuildParams with
- Properties =
- ([
- "Version", prereleaseTag
- "PackageReleaseNotes", (release.Notes |> String.toLines)
- ]
- @ p.MSBuildParams.Properties)
- }
+ match pInfo.ReleaseNotes with
+ | Some r ->
+ { p.MSBuildParams with
+ Properties =
+ ([
+ "Version",pInfo.PackagePrereleaseTag
+ "AssemblyVersion", pInfo.AssemblyVersion
+ "InformationalVersion", pInfo.AssemblyInformationalVersion
+ "PackageReleaseNotes", (r.Notes |> String.concat "\r\n")
+ "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
+ ])
+ }
+ | _ ->
+ { p.MSBuildParams with
+ Properties =
+ ([
+ "Version",pInfo.PackagePrereleaseTag
+ "AssemblyVersion", pInfo.AssemblyVersion
+ "InformationalVersion", pInfo.AssemblyInformationalVersion
+ "TargetsForTfmSpecificContentInPackage", "" //https://github.com/dotnet/fsharp/issues/12320
+ ])
+ }
{ p with
VersionSuffix = Some prereleaseSuffix
OutputPath = Some pkgDir
MSBuildParams = msBuildParams
- })
- )
- else
- failwith "aborted"
+ NoBuild = true
+ }
+ |> DotNet.Options.withCustomParams (Some "--no-dependencies")
+ )
+ else
+ failwith "aborted"
+ )
}
diff --git a/build/ProjectInfo.fs b/build/ProjectInfo.fs
index f3525a8ca..1f3d3e57e 100644
--- a/build/ProjectInfo.fs
+++ b/build/ProjectInfo.fs
@@ -2,40 +2,103 @@
open Fake.Core
-let project = "Plotly.NET"
+/// Contains relevant information about a project (e.g. version info, project location)
+type ProjectInfo = {
+ Name: string
+ ProjFile: string
+ ReleaseNotes: ReleaseNotes.ReleaseNotes Option
+ PackageVersionTag: string
+ mutable PackagePrereleaseTag: string
+ AssemblyVersion: string
+ AssemblyInformationalVersion: string
+} with
+ /// creates a ProjectInfo given a name, project file path, and release notes file path.
+ /// version info is created from the version header of the uppermost release notes entry.
+ /// Assembly version is set to X.0.0, where X is the major version from the releas enotes.
+ static member create(
+ name: string,
+ projFile: string,
+ releaseNotesPath: string
+ ): ProjectInfo =
+ let release = releaseNotesPath |> ReleaseNotes.load
+ let stableVersion = release.NugetVersion |> SemVer.parse
+ let stableVersionTag = $"{stableVersion.Major}.{stableVersion.Minor}.{stableVersion.Patch}"
+ let assemblyVersion = $"{stableVersion.Major}.0.0"
+ let assemblyInformationalVersion = stableVersionTag
+ {
+ Name = name
+ ProjFile = projFile
+ ReleaseNotes = Some release
+ PackagePrereleaseTag = ""
+ PackageVersionTag = stableVersionTag
+ AssemblyVersion = assemblyVersion
+ AssemblyInformationalVersion = assemblyInformationalVersion
+ }
+ static member create(
+ name: string,
+ projFile: string
+ ): ProjectInfo =
+ {
+ Name = name
+ ProjFile = projFile
+ ReleaseNotes = None
+ PackagePrereleaseTag = ""
+ PackageVersionTag = ""
+ AssemblyVersion = ""
+ AssemblyInformationalVersion = ""
+ }
-let testProjects =
- [
- "tests/Plotly.NET.Tests/Plotly.NET.Tests.fsproj"
- "tests/Plotly.NET.ImageExport.Tests/Plotly.NET.ImageExport.Tests.fsproj"
- "tests/Plotly.NET.Tests.CSharp/Plotly.NET.Tests.CSharp.csproj"
- ]
+let projectName = "Plotly.NET"
-let solutionFile = $"{project}.sln"
-
-let configuration = "Release"
+let solutionFile = $"{projectName}.sln"
let gitOwner = "plotly"
+let gitHome = $"https://github.com/{gitOwner}"
+let projectRepo = $"https://github.com/{gitOwner}/{projectName}"
-let gitHome =
- $"https://github.com/{gitOwner}"
+/// packages are generated in this directory.
+let pkgDir = "pkg"
-let projectRepo =
- $"https://github.com/{gitOwner}/{project}"
+/// binaries are built using this configuration.
+let configuration = "Release"
-let pkgDir = "pkg"
+let CoreTestProject = ProjectInfo.create("Plotly.NET.Tests", "tests/Plotly.NET.Tests/Plotly.NET.Tests.fsproj")
+let ImageExportTestProject = ProjectInfo.create("Plotly.NET.ImageExport.Tests", "tests/Plotly.NET.ImageExport.Tests/Plotly.NET.ImageExport.Tests.fsproj")
+let CSharpInteroperabilityTestProject = ProjectInfo.create("Plotly.NET.Tests.CSharpInteroperability", "tests/Plotly.NET.Tests.CSharpInteroperability/Plotly.NET.Tests.CSharpInteroperability.csproj")
+let CSharpTestProject = ProjectInfo.create("Plotly.NET.CSharp.Tests", "tests/Plotly.NET.CSharp.Tests/Plotly.NET.CSharp.Tests.csproj")
+
+/// contains project info about all test projects
+let testProjects =
+ [
+ CoreTestProject
+ ImageExportTestProject
+ CSharpTestProject
+ ]
+
+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 release =
- ReleaseNotes.load "RELEASE_NOTES.md"
+/// contains project info about all projects
+let projects = [
+ CoreProject
+ InteractiveProject
+ ImageExportProject
+ CSharpProject
+]
-let stableVersion =
- SemVer.parse release.NugetVersion
+/// docs are always targeting the version of the core project
+let stableDocsVersionTag = CoreProject.PackageVersionTag
-let stableVersionTag =
- (sprintf "%i.%i.%i" stableVersion.Major stableVersion.Minor stableVersion.Patch)
+/// branch tag is always the version of the core project
+let branchTag = CoreProject.PackageVersionTag
+/// prerelease suffix used by prerelease buildtasks
let mutable prereleaseSuffix = ""
+/// prerelease tag used by prerelease buildtasks
let mutable prereleaseTag = ""
+/// mutable switch used to signal that we are building a prerelease version, used in prerelease buildtasks
let mutable isPrerelease = false
diff --git a/build/ReleaseTasks.fs b/build/ReleaseTasks.fs
index 57c28f4da..e7a9c5712 100644
--- a/build/ReleaseTasks.fs
+++ b/build/ReleaseTasks.fs
@@ -17,9 +17,9 @@ open Fake.IO.Globbing.Operators
let createTag =
BuildTask.create "CreateTag" [ clean; build; runTests; pack ] {
- if promptYesNo (sprintf "tagging branch with %s OK?" stableVersionTag) then
- Git.Branches.tag "" stableVersionTag
- Git.Branches.pushTag "" projectRepo stableVersionTag
+ if promptYesNo (sprintf "tagging branch with %s OK?" branchTag) then
+ Git.Branches.tag "" branchTag
+ Git.Branches.pushTag "" projectRepo branchTag
else
failwith "aborted"
}
@@ -47,13 +47,19 @@ let publishNuget =
let targets =
(!!(sprintf "%s/*.*pkg" pkgDir))
+ printfn "package files:"
+
for target in targets do
printfn "%A" target
- let msg =
- sprintf "release package with version %s?" stableVersionTag
+ printfn "package versions to release:"
- if promptYesNo msg then
+ projects
+ |> List.iter (fun p ->
+ printfn $"{p.Name} @ {p.PackageVersionTag}"
+ )
+
+ if promptYesNo "OK?" then
let source =
"https://api.nuget.org/v3/index.json"
@@ -82,13 +88,19 @@ let publishNugetPrerelease =
let targets =
(!!(sprintf "%s/*.*pkg" pkgDir))
+ printfn "package files:"
+
for target in targets do
printfn "%A" target
- let msg =
- sprintf "release package with version %s?" prereleaseTag
+ printfn "package versions to release:"
- if promptYesNo msg then
+ projects
+ |> List.iter (fun p ->
+ printfn $"{p.Name} @ {p.PackagePrereleaseTag}"
+ )
+
+ if promptYesNo "OK?" then
let source =
"https://api.nuget.org/v3/index.json"
@@ -108,7 +120,7 @@ let publishNugetPrerelease =
let releaseDocs =
BuildTask.create "ReleaseDocs" [ buildDocs ] {
let msg =
- sprintf "release docs for version %s?" stableVersionTag
+ sprintf "release docs for version %s?" stableDocsVersionTag
if promptYesNo msg then
Shell.cleanDir "temp"
@@ -122,7 +134,7 @@ let releaseDocs =
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" "add ." |> printfn "%s"
let cmd =
- sprintf """commit -a -m "Update generated documentation for version %s""" stableVersionTag
+ sprintf """commit -a -m "Update generated documentation for version %s""" stableDocsVersionTag
Git.CommandHelper.runSimpleGitCommand "temp/gh-pages" cmd |> printfn "%s"
Git.Branches.push "temp/gh-pages"
diff --git a/build/TestTasks.fs b/build/TestTasks.fs
index 6f48fd16c..0b7824dff 100644
--- a/build/TestTasks.fs
+++ b/build/TestTasks.fs
@@ -6,10 +6,23 @@ open Fake.DotNet
open ProjectInfo
open BasicTasks
+let buildTests = BuildTask.create "BuildTests" [clean; build] {
+ testProjects
+ |> List.iter (fun pInfo ->
+ let proj = pInfo.ProjFile
+ proj
+ |> DotNet.build (fun p ->
+ p
+ |> DotNet.Options.withCustomParams (Some "--no-dependencies")
+ )
+ )
+}
+
+/// runs the individual test projects via `dotnet test`
let runTests =
- BuildTask.create "RunTests" [ clean; build ] {
+ BuildTask.create "RunTests" [ clean; build; buildTests ] {
testProjects
- |> Seq.iter (fun testProject ->
+ |> Seq.iter (fun testProjectInfo ->
Fake.DotNet.DotNet.test
(fun testParams ->
{ testParams with
@@ -17,7 +30,7 @@ let runTests =
Configuration = DotNet.BuildConfiguration.fromString configuration
NoBuild = true
})
- testProject)
+ testProjectInfo.ProjFile)
}
// to do: use this once we have actual tests
@@ -27,7 +40,7 @@ let runTestsWithCodeCov =
Fake.DotNet.MSBuild.CliArguments.Create()
testProjects
- |> Seq.iter (fun testProject ->
+ |> Seq.iter (fun testProjectInfo ->
Fake.DotNet.DotNet.test
(fun testParams ->
{ testParams with
@@ -42,5 +55,5 @@ let runTestsWithCodeCov =
}
Logger = Some "console;verbosity=detailed"
})
- testProject)
+ testProjectInfo.ProjFile)
}
diff --git a/key.snk b/key.snk
new file mode 100644
index 000000000..000e81f6b
Binary files /dev/null and b/key.snk differ
diff --git a/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj b/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj
index 132d856c4..c06f215ac 100644
--- a/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj
+++ b/src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj
@@ -4,9 +4,39 @@
net6.0
enable
enable
+ Plotly.NET.CSharp
+ Plotly.NET.CSharp
+ Library
+
+ true
+
+ true
+
+ true
+ true
+ true
+ ../../key.snk
+ snupkg
+ true
+ ../../key.snk
+
+
+
+ Kevin Schneider, F# open source contributors
+ Native C# bindings for Plotly.NET 📈🚀.
+ Native C# bindings for Plotly.NET 📈🚀.
+ MIT
+ https://plotly.net
+ logo.png
+ visualization charting plotly fsharp csharp
+ https://github.com/plotly/Plotly.NET/
+ git
+ https://github.com/plotly/Plotly.NET/blob/dev/LICENSE
+ https://github.com/plotly/Plotly.NET/blob/dev/RELEASE_NOTES.md
+
diff --git a/src/Plotly.NET.CSharp/RELEASE_NOTES.md b/src/Plotly.NET.CSharp/RELEASE_NOTES.md
new file mode 100644
index 000000000..608bf6c9d
--- /dev/null
+++ b/src/Plotly.NET.CSharp/RELEASE_NOTES.md
@@ -0,0 +1,38 @@
+### 0.0.1 - June 10 2020
+
+C# bindings for basic charts and styling for usage in ML.NET notebooks:
+
+**Chart styling / Layouting**
+
+- [x] Extension Methods
+ - [x] SaveHtml
+ - [x] Show
+ - [x] WithTraceInfo
+ - [x] WithSize
+ - [x] WithXAxisStyle
+ - [x] WithYAxisStyle
+- [x] Chart.Grid
+- [x] Chart.Combine
+
+**Chart generation**
+- [x] Chart.Invisible
+- [x] Chart2D
+ - [x] Scatter
+ - [x] Point
+ - [x] Line
+ - [x] Bar
+ - [x] Column
+- [x] Chart3D
+ - [x] Scatter3D
+- [x] ChartPolar
+ - [x] ScatterPolar
+- [x] ChartMap
+ - [x] ScatterGeo
+- [x] ChartTernary
+ - [x] ScatterTernary
+- [x] ChartCarpet
+ - [x] Carpet
+- [x] ChartDomain
+ - [x] Pie
+ - [x] ChartSmith
+ - [x] ScatterSmith
\ No newline at end of file
diff --git a/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj b/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
index bd9228f1b..8f3f58195 100644
--- a/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
+++ b/src/Plotly.NET.ImageExport/Plotly.NET.ImageExport.fsproj
@@ -4,6 +4,8 @@
netstandard2.0
true
3390;$(WarnOn)
+ true
+ ../../key.snk
@@ -22,6 +24,7 @@
+
@@ -37,7 +40,7 @@
-
+
diff --git a/src/Plotly.NET.ImageExport/RELEASE_NOTES.md b/src/Plotly.NET.ImageExport/RELEASE_NOTES.md
new file mode 100644
index 000000000..0f2b2adcf
--- /dev/null
+++ b/src/Plotly.NET.ImageExport/RELEASE_NOTES.md
@@ -0,0 +1,3 @@
+### 3.0.0 - June 10 2020
+
+Test
\ No newline at end of file
diff --git a/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj b/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj
index 56708aa7a..d7ddb32dc 100644
--- a/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj
+++ b/src/Plotly.NET.Interactive/Plotly.NET.Interactive.fsproj
@@ -11,6 +11,8 @@
true
true
+ true
+ ../../key.snk
snupkg
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
@@ -38,8 +40,9 @@
-
+
+
diff --git a/src/Plotly.NET.Interactive/RELEASE_NOTES.md b/src/Plotly.NET.Interactive/RELEASE_NOTES.md
new file mode 100644
index 000000000..0f2b2adcf
--- /dev/null
+++ b/src/Plotly.NET.Interactive/RELEASE_NOTES.md
@@ -0,0 +1,3 @@
+### 3.0.0 - June 10 2020
+
+Test
\ No newline at end of file
diff --git a/src/Plotly.NET/AssemblyInfo.fs b/src/Plotly.NET/AssemblyInfo.fs
deleted file mode 100644
index bf22907f0..000000000
--- a/src/Plotly.NET/AssemblyInfo.fs
+++ /dev/null
@@ -1,28 +0,0 @@
-// Auto-Generated by FAKE; do not edit
-namespace System
-
-open System.Reflection
-
-[]
-[]
-[]
-[]
-[]
-do ()
-
-module internal AssemblyVersionInformation =
- []
- let AssemblyTitle = "Plotly.NET"
-
- []
- let AssemblyProduct = "Plotly.NET"
-
- []
- let AssemblyDescription =
- "A F# interactive charting library using plotly.js"
-
- []
- let AssemblyVersion = "2.0.0"
-
- []
- let AssemblyFileVersion = "2.0.0"
diff --git a/src/Plotly.NET/Plotly.NET.fsproj b/src/Plotly.NET/Plotly.NET.fsproj
index a126fab4e..bcc9cabed 100644
--- a/src/Plotly.NET/Plotly.NET.fsproj
+++ b/src/Plotly.NET/Plotly.NET.fsproj
@@ -14,6 +14,8 @@
true
true
+ true
+ ../../key.snk
snupkg
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
Debug;Release;Dotnet
@@ -32,8 +34,8 @@
https://github.com/plotly/Plotly.NET/blob/dev/RELEASE_NOTES.md
+
-
@@ -125,7 +127,6 @@
-
@@ -151,7 +152,7 @@
-
+
diff --git a/src/Plotly.NET/RELEASE_NOTES.md b/src/Plotly.NET/RELEASE_NOTES.md
new file mode 100644
index 000000000..0f2b2adcf
--- /dev/null
+++ b/src/Plotly.NET/RELEASE_NOTES.md
@@ -0,0 +1,3 @@
+### 3.0.0 - June 10 2020
+
+Test
\ No newline at end of file
diff --git a/tests/Plotly.NET.Tests.CSharp/APITest/Chart2DAPITest.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/APITest/Chart2DAPITest.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/APITest/Chart2DAPITest.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/APITest/Chart2DAPITest.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/APITest/Chart3DAPITest.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/APITest/Chart3DAPITest.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/APITest/Chart3DAPITest.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/APITest/Chart3DAPITest.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/APITest/ChartDomainAPITest.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/APITest/ChartDomainAPITest.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/APITest/ChartDomainAPITest.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/APITest/ChartDomainAPITest.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/APITest/ChartMapAPITest.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/APITest/ChartMapAPITest.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/APITest/ChartMapAPITest.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/APITest/ChartMapAPITest.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/APITest/ChartPolarAPITest.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/APITest/ChartPolarAPITest.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/APITest/ChartPolarAPITest.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/APITest/ChartPolarAPITest.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/LayoutObjectTests.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/LayoutObjectTests.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/LayoutObjectTests.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/LayoutObjectTests.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/Plotly.NET.Tests.CSharp.csproj b/tests/Plotly.NET.Tests.CSharpInteroperability/Plotly.NET.Tests.CSharpInteroperability.csproj
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/Plotly.NET.Tests.CSharp.csproj
rename to tests/Plotly.NET.Tests.CSharpInteroperability/Plotly.NET.Tests.CSharpInteroperability.csproj
diff --git a/tests/Plotly.NET.Tests.CSharp/StyleParamTests.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/StyleParamTests.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/StyleParamTests.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/StyleParamTests.cs
diff --git a/tests/Plotly.NET.Tests.CSharp/TraceObjectTests.cs b/tests/Plotly.NET.Tests.CSharpInteroperability/TraceObjectTests.cs
similarity index 100%
rename from tests/Plotly.NET.Tests.CSharp/TraceObjectTests.cs
rename to tests/Plotly.NET.Tests.CSharpInteroperability/TraceObjectTests.cs