From e5eb7ceb3ca135c62498e779a64af031a564a84a Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 11:18:14 -0800 Subject: [PATCH 01/27] move source code to src folder --- .../Bonsai.Sgen.Tests}/Bonsai.Sgen.Tests.csproj | 0 .../Bonsai.Sgen.Tests}/CasingGenerationTests.cs | 0 .../Bonsai.Sgen.Tests}/CompilerTestHelper.cs | 0 .../Bonsai.Sgen.Tests}/DiscriminatorGenerationTests.cs | 0 .../Bonsai.Sgen.Tests}/EnumGenerationTests.cs | 0 {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/SchemaTestHelper.cs | 0 {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/TestHelper.cs | 0 .../Bonsai.Sgen.Tests}/ToStringGenerationTests.cs | 0 Bonsai.Sgen.sln => src/Bonsai.Sgen.sln | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/Bonsai.Sgen.csproj | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpClassCodeArtifact.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpClassTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpClassTemplateModel.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpCodeDomGenerator.cs | 0 .../Bonsai.Sgen}/CSharpCodeDomGeneratorSettings.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpCodeDomTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpEnumNameGenerator.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpEnumTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpJsonSerializerTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpNamingConvention.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpPropertyNameGenerator.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpSerializerTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpTypeMatchTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpTypeNameGenerator.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpTypeResolver.cs | 0 .../Bonsai.Sgen}/CSharpYamlDiscriminatorTemplate.cs | 0 .../Bonsai.Sgen}/CSharpYamlDiscriminatorTypeInspectorTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpYamlSerializerTemplate.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/JsonSchemaExtensions.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/Program.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/Properties/AssemblyInfo.cs | 0 {Bonsai.Sgen => src/Bonsai.Sgen}/SerializerLibraries.cs | 0 Directory.Build.props => src/Directory.Build.props | 0 33 files changed, 0 insertions(+), 0 deletions(-) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/Bonsai.Sgen.Tests.csproj (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/CasingGenerationTests.cs (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/CompilerTestHelper.cs (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/DiscriminatorGenerationTests.cs (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/EnumGenerationTests.cs (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/SchemaTestHelper.cs (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/TestHelper.cs (100%) rename {Bonsai.Sgen.Tests => src/Bonsai.Sgen.Tests}/ToStringGenerationTests.cs (100%) rename Bonsai.Sgen.sln => src/Bonsai.Sgen.sln (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/Bonsai.Sgen.csproj (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpClassCodeArtifact.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpClassTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpClassTemplateModel.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpCodeDomGenerator.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpCodeDomGeneratorSettings.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpCodeDomTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpEnumNameGenerator.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpEnumTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpJsonSerializerTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpNamingConvention.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpPropertyNameGenerator.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpSerializerTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpTypeMatchTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpTypeNameGenerator.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpTypeResolver.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpYamlDiscriminatorTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpYamlDiscriminatorTypeInspectorTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/CSharpYamlSerializerTemplate.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/JsonSchemaExtensions.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/Program.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/Properties/AssemblyInfo.cs (100%) rename {Bonsai.Sgen => src/Bonsai.Sgen}/SerializerLibraries.cs (100%) rename Directory.Build.props => src/Directory.Build.props (100%) diff --git a/Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj b/src/Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj similarity index 100% rename from Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj rename to src/Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj diff --git a/Bonsai.Sgen.Tests/CasingGenerationTests.cs b/src/Bonsai.Sgen.Tests/CasingGenerationTests.cs similarity index 100% rename from Bonsai.Sgen.Tests/CasingGenerationTests.cs rename to src/Bonsai.Sgen.Tests/CasingGenerationTests.cs diff --git a/Bonsai.Sgen.Tests/CompilerTestHelper.cs b/src/Bonsai.Sgen.Tests/CompilerTestHelper.cs similarity index 100% rename from Bonsai.Sgen.Tests/CompilerTestHelper.cs rename to src/Bonsai.Sgen.Tests/CompilerTestHelper.cs diff --git a/Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs b/src/Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs similarity index 100% rename from Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs rename to src/Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs diff --git a/Bonsai.Sgen.Tests/EnumGenerationTests.cs b/src/Bonsai.Sgen.Tests/EnumGenerationTests.cs similarity index 100% rename from Bonsai.Sgen.Tests/EnumGenerationTests.cs rename to src/Bonsai.Sgen.Tests/EnumGenerationTests.cs diff --git a/Bonsai.Sgen.Tests/SchemaTestHelper.cs b/src/Bonsai.Sgen.Tests/SchemaTestHelper.cs similarity index 100% rename from Bonsai.Sgen.Tests/SchemaTestHelper.cs rename to src/Bonsai.Sgen.Tests/SchemaTestHelper.cs diff --git a/Bonsai.Sgen.Tests/TestHelper.cs b/src/Bonsai.Sgen.Tests/TestHelper.cs similarity index 100% rename from Bonsai.Sgen.Tests/TestHelper.cs rename to src/Bonsai.Sgen.Tests/TestHelper.cs diff --git a/Bonsai.Sgen.Tests/ToStringGenerationTests.cs b/src/Bonsai.Sgen.Tests/ToStringGenerationTests.cs similarity index 100% rename from Bonsai.Sgen.Tests/ToStringGenerationTests.cs rename to src/Bonsai.Sgen.Tests/ToStringGenerationTests.cs diff --git a/Bonsai.Sgen.sln b/src/Bonsai.Sgen.sln similarity index 100% rename from Bonsai.Sgen.sln rename to src/Bonsai.Sgen.sln diff --git a/Bonsai.Sgen/Bonsai.Sgen.csproj b/src/Bonsai.Sgen/Bonsai.Sgen.csproj similarity index 100% rename from Bonsai.Sgen/Bonsai.Sgen.csproj rename to src/Bonsai.Sgen/Bonsai.Sgen.csproj diff --git a/Bonsai.Sgen/CSharpClassCodeArtifact.cs b/src/Bonsai.Sgen/CSharpClassCodeArtifact.cs similarity index 100% rename from Bonsai.Sgen/CSharpClassCodeArtifact.cs rename to src/Bonsai.Sgen/CSharpClassCodeArtifact.cs diff --git a/Bonsai.Sgen/CSharpClassTemplate.cs b/src/Bonsai.Sgen/CSharpClassTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpClassTemplate.cs rename to src/Bonsai.Sgen/CSharpClassTemplate.cs diff --git a/Bonsai.Sgen/CSharpClassTemplateModel.cs b/src/Bonsai.Sgen/CSharpClassTemplateModel.cs similarity index 100% rename from Bonsai.Sgen/CSharpClassTemplateModel.cs rename to src/Bonsai.Sgen/CSharpClassTemplateModel.cs diff --git a/Bonsai.Sgen/CSharpCodeDomGenerator.cs b/src/Bonsai.Sgen/CSharpCodeDomGenerator.cs similarity index 100% rename from Bonsai.Sgen/CSharpCodeDomGenerator.cs rename to src/Bonsai.Sgen/CSharpCodeDomGenerator.cs diff --git a/Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs b/src/Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs similarity index 100% rename from Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs rename to src/Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs diff --git a/Bonsai.Sgen/CSharpCodeDomTemplate.cs b/src/Bonsai.Sgen/CSharpCodeDomTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpCodeDomTemplate.cs rename to src/Bonsai.Sgen/CSharpCodeDomTemplate.cs diff --git a/Bonsai.Sgen/CSharpEnumNameGenerator.cs b/src/Bonsai.Sgen/CSharpEnumNameGenerator.cs similarity index 100% rename from Bonsai.Sgen/CSharpEnumNameGenerator.cs rename to src/Bonsai.Sgen/CSharpEnumNameGenerator.cs diff --git a/Bonsai.Sgen/CSharpEnumTemplate.cs b/src/Bonsai.Sgen/CSharpEnumTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpEnumTemplate.cs rename to src/Bonsai.Sgen/CSharpEnumTemplate.cs diff --git a/Bonsai.Sgen/CSharpJsonSerializerTemplate.cs b/src/Bonsai.Sgen/CSharpJsonSerializerTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpJsonSerializerTemplate.cs rename to src/Bonsai.Sgen/CSharpJsonSerializerTemplate.cs diff --git a/Bonsai.Sgen/CSharpNamingConvention.cs b/src/Bonsai.Sgen/CSharpNamingConvention.cs similarity index 100% rename from Bonsai.Sgen/CSharpNamingConvention.cs rename to src/Bonsai.Sgen/CSharpNamingConvention.cs diff --git a/Bonsai.Sgen/CSharpPropertyNameGenerator.cs b/src/Bonsai.Sgen/CSharpPropertyNameGenerator.cs similarity index 100% rename from Bonsai.Sgen/CSharpPropertyNameGenerator.cs rename to src/Bonsai.Sgen/CSharpPropertyNameGenerator.cs diff --git a/Bonsai.Sgen/CSharpSerializerTemplate.cs b/src/Bonsai.Sgen/CSharpSerializerTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpSerializerTemplate.cs rename to src/Bonsai.Sgen/CSharpSerializerTemplate.cs diff --git a/Bonsai.Sgen/CSharpTypeMatchTemplate.cs b/src/Bonsai.Sgen/CSharpTypeMatchTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpTypeMatchTemplate.cs rename to src/Bonsai.Sgen/CSharpTypeMatchTemplate.cs diff --git a/Bonsai.Sgen/CSharpTypeNameGenerator.cs b/src/Bonsai.Sgen/CSharpTypeNameGenerator.cs similarity index 100% rename from Bonsai.Sgen/CSharpTypeNameGenerator.cs rename to src/Bonsai.Sgen/CSharpTypeNameGenerator.cs diff --git a/Bonsai.Sgen/CSharpTypeResolver.cs b/src/Bonsai.Sgen/CSharpTypeResolver.cs similarity index 100% rename from Bonsai.Sgen/CSharpTypeResolver.cs rename to src/Bonsai.Sgen/CSharpTypeResolver.cs diff --git a/Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs b/src/Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs rename to src/Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs diff --git a/Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs b/src/Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs rename to src/Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs diff --git a/Bonsai.Sgen/CSharpYamlSerializerTemplate.cs b/src/Bonsai.Sgen/CSharpYamlSerializerTemplate.cs similarity index 100% rename from Bonsai.Sgen/CSharpYamlSerializerTemplate.cs rename to src/Bonsai.Sgen/CSharpYamlSerializerTemplate.cs diff --git a/Bonsai.Sgen/JsonSchemaExtensions.cs b/src/Bonsai.Sgen/JsonSchemaExtensions.cs similarity index 100% rename from Bonsai.Sgen/JsonSchemaExtensions.cs rename to src/Bonsai.Sgen/JsonSchemaExtensions.cs diff --git a/Bonsai.Sgen/Program.cs b/src/Bonsai.Sgen/Program.cs similarity index 100% rename from Bonsai.Sgen/Program.cs rename to src/Bonsai.Sgen/Program.cs diff --git a/Bonsai.Sgen/Properties/AssemblyInfo.cs b/src/Bonsai.Sgen/Properties/AssemblyInfo.cs similarity index 100% rename from Bonsai.Sgen/Properties/AssemblyInfo.cs rename to src/Bonsai.Sgen/Properties/AssemblyInfo.cs diff --git a/Bonsai.Sgen/SerializerLibraries.cs b/src/Bonsai.Sgen/SerializerLibraries.cs similarity index 100% rename from Bonsai.Sgen/SerializerLibraries.cs rename to src/Bonsai.Sgen/SerializerLibraries.cs diff --git a/Directory.Build.props b/src/Directory.Build.props similarity index 100% rename from Directory.Build.props rename to src/Directory.Build.props From e1a4f8c8e92e7b2e0807926e57ef7d7df8ff91a5 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 11:19:10 -0800 Subject: [PATCH 02/27] Move editorconfig to src folder --- .editorconfig => src/.editorconfig | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .editorconfig => src/.editorconfig (100%) diff --git a/.editorconfig b/src/.editorconfig similarity index 100% rename from .editorconfig rename to src/.editorconfig From a1bd3ba6bdaca97828b62c7f46a19d4bbc1293f9 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 11:23:06 -0800 Subject: [PATCH 03/27] Install docfx --- .config/dotnet-tools.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .config/dotnet-tools.json diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 0000000..1f4d87e --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "docfx": { + "version": "2.78.2", + "commands": [ + "docfx" + ], + "rollForward": false + } + } +} \ No newline at end of file From ed5906c5dd69cc0cc5e6c74566cbd4c0f951782f Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 11:32:26 -0800 Subject: [PATCH 04/27] Add doc files --- docs/.gitignore | 1 + docs/articles/toc.yml | 4 ++ docs/build.ps1 | 2 + docs/docfx.json | 75 ++++++++++++++++++++++++++ docs/favicon.ico | Bin 0 -> 113038 bytes docs/filter.yml | 4 ++ docs/index.md | 4 ++ docs/logo.svg | 96 ++++++++++++++++++++++++++++++++++ docs/template/public/main.css | 1 + docs/template/public/main.js | 13 +++++ docs/toc.yml | 4 ++ docs/workflows/.gitignore | 2 + 12 files changed, 206 insertions(+) create mode 100644 docs/.gitignore create mode 100644 docs/articles/toc.yml create mode 100644 docs/build.ps1 create mode 100644 docs/docfx.json create mode 100644 docs/favicon.ico create mode 100644 docs/filter.yml create mode 100644 docs/index.md create mode 100644 docs/logo.svg create mode 100644 docs/template/public/main.css create mode 100644 docs/template/public/main.js create mode 100644 docs/toc.yml create mode 100644 docs/workflows/.gitignore diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..c08f9ad --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +_site \ No newline at end of file diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml new file mode 100644 index 0000000..b334353 --- /dev/null +++ b/docs/articles/toc.yml @@ -0,0 +1,4 @@ +- href: ../index.md +- href: why-bonsai-sgen.md +- href: basic-usage.md +- href: advanced-usage.md \ No newline at end of file diff --git a/docs/build.ps1 b/docs/build.ps1 new file mode 100644 index 0000000..d8dec61 --- /dev/null +++ b/docs/build.ps1 @@ -0,0 +1,2 @@ +.\bonsai\modules\Export-Image.ps1 "..\src\Bonsai.Sgen\bin\Release\net6.0" +dotnet docfx @args diff --git a/docs/docfx.json b/docs/docfx.json new file mode 100644 index 0000000..0f3b676 --- /dev/null +++ b/docs/docfx.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://raw.githubusercontent.com/dotnet/docfx/main/schemas/docfx.schema.json", + "metadata": [ + { + "src": [ + { + "src": "../src", + "files": [ + "**/*.csproj" + ] + } + ], + "dest": "api", + "filter": "filter.yml" + } + ], + "build": { + "content": [ + { + "files": [ + "**/*.{md,yml}" + ], + "exclude": [ + "_site/**", + "filter.yml", + "apidoc/**" + ] + } + ], + "resource": [ + { + "files": [ + "logo.svg", + "favicon.ico", + "images/**", + "workflows/**" + ] + } + ], + "overwrite": [ + { + "files": [ + "apidoc/**.md" + ], + "exclude": [ + "obj/**", + "_site/**" + ] + } + ], + "output": "_site", + "template": [ + "default", + "modern", + "bonsai/template", + "template" + ], + "globalMetadata": { + "_appName": "Bonsai - SGEN", + "_appTitle": "Bonsai.SGEN", + "_appFooter": "© 2025 Bonsai Foundation CIC and Contributors. Made with docfx", + "_enableSearch": true, + "pdf": false + }, + "markdownEngineProperties": { + "markdigExtensions": [ + "attributes", + "customcontainers" + ] + }, + "xref": [ + "https://bonsai-rx.org/docs/xrefmap.yml" + ] + } +} \ No newline at end of file diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5387c2df21da5a4d5118dd88f7c2604f72d47d7b GIT binary patch literal 113038 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 + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/template/public/main.css b/docs/template/public/main.css new file mode 100644 index 0000000..ee56505 --- /dev/null +++ b/docs/template/public/main.css @@ -0,0 +1 @@ +@import "workflow.css"; \ No newline at end of file diff --git a/docs/template/public/main.js b/docs/template/public/main.js new file mode 100644 index 0000000..a4b97f1 --- /dev/null +++ b/docs/template/public/main.js @@ -0,0 +1,13 @@ +import WorkflowContainer from "./workflow.js" + +export default { + defaultTheme: 'auto', + iconLinks: [{ + icon: 'github', + href: 'https://github.com/bonsai-rx/sgen', + title: 'GitHub' + }], + start: () => { + WorkflowContainer.init(); + } +} diff --git a/docs/toc.yml b/docs/toc.yml new file mode 100644 index 0000000..4be9d63 --- /dev/null +++ b/docs/toc.yml @@ -0,0 +1,4 @@ +- name: Docs + href: articles/ +- name: API + href: api/ \ No newline at end of file diff --git a/docs/workflows/.gitignore b/docs/workflows/.gitignore new file mode 100644 index 0000000..af455cb --- /dev/null +++ b/docs/workflows/.gitignore @@ -0,0 +1,2 @@ +*.layout +*.svg \ No newline at end of file From 4426a72519dd66d475a05f3ae95a0cb06c4a4f80 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 12:59:59 -0800 Subject: [PATCH 05/27] Add enumSortOrder and memberLayout to docfx.json --- docs/docfx.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/docfx.json b/docs/docfx.json index 0f3b676..9113f9d 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -11,7 +11,9 @@ } ], "dest": "api", - "filter": "filter.yml" + "filter": "filter.yml", + "enumSortOrder": "declaringOrder", + "memberLayout": "separatePages" } ], "build": { From 1e40744e46b6423b58e25bacf3369c058d36da16 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 13:01:54 -0800 Subject: [PATCH 06/27] Add api folder gitignore --- docs/api/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 docs/api/.gitignore diff --git a/docs/api/.gitignore b/docs/api/.gitignore new file mode 100644 index 0000000..5bca622 --- /dev/null +++ b/docs/api/.gitignore @@ -0,0 +1,2 @@ +*.yml +.manifest \ No newline at end of file From 06e94b618864cad1d8e668ddabb0727bfa566375 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 13:06:53 -0800 Subject: [PATCH 07/27] Add docfx-tools submodule --- .gitmodules | 3 +++ docs/bonsai | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 docs/bonsai diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c8ffa76 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "docs/bonsai"] + path = docs/bonsai + url = https://github.com/bonsai-rx/docfx-tools diff --git a/docs/bonsai b/docs/bonsai new file mode 160000 index 0000000..14246dc --- /dev/null +++ b/docs/bonsai @@ -0,0 +1 @@ +Subproject commit 14246dc307b918b68aa03232539a8f57318a4623 From 039c23cebf94e40ec041026ec8354f757cb022db Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 13:26:32 -0800 Subject: [PATCH 08/27] Fix dotnet.yml for CI --- .github/workflows/dotnet.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 8d6b947..0a9384a 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -20,7 +20,9 @@ jobs: run: dotnet restore - name: Build + working-directory: src run: dotnet build --no-restore - name: Test + working-directory: src run: dotnet test --no-build --verbosity normal From 9d93c915cf751a89ddf8a3f01d73a8ec6c26d106 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 31 Dec 2024 13:28:05 -0800 Subject: [PATCH 09/27] Additional fix for dotnet.yml --- .github/workflows/dotnet.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 0a9384a..4101b17 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -17,6 +17,7 @@ jobs: dotnet-version: 6.0.x - name: Restore dependencies + working-directory: src run: dotnet restore - name: Build From ffc6d5d4362b0bb8ebed57ac5e4333e7927426ad Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Fri, 3 Jan 2025 13:47:44 -0800 Subject: [PATCH 10/27] Remove TOC references to non-existing articles --- docs/articles/toc.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml index b334353..ef45d5b 100644 --- a/docs/articles/toc.yml +++ b/docs/articles/toc.yml @@ -1,4 +1 @@ -- href: ../index.md -- href: why-bonsai-sgen.md -- href: basic-usage.md -- href: advanced-usage.md \ No newline at end of file +- href: ../index.md \ No newline at end of file From dbba4c7745be6e80d04188117d973c497cdc1049 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Fri, 3 Jan 2025 14:02:38 -0800 Subject: [PATCH 11/27] Move src back to root dir and modify doc config --- src/.editorconfig => .editorconfig | 0 .github/workflows/dotnet.yml | 3 --- .../Bonsai.Sgen.Tests.csproj | 0 .../CasingGenerationTests.cs | 0 .../CompilerTestHelper.cs | 0 .../DiscriminatorGenerationTests.cs | 0 .../EnumGenerationTests.cs | 0 .../SchemaTestHelper.cs | 0 {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/TestHelper.cs | 0 .../ToStringGenerationTests.cs | 0 src/Bonsai.Sgen.sln => Bonsai.Sgen.sln | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/Bonsai.Sgen.csproj | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpClassCodeArtifact.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpClassTemplate.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpClassTemplateModel.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpCodeDomGenerator.cs | 0 .../CSharpCodeDomGeneratorSettings.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpCodeDomTemplate.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpEnumNameGenerator.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpEnumTemplate.cs | 0 .../CSharpJsonSerializerTemplate.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpNamingConvention.cs | 0 .../Bonsai.Sgen => Bonsai.Sgen}/CSharpPropertyNameGenerator.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpSerializerTemplate.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpTypeMatchTemplate.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpTypeNameGenerator.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpTypeResolver.cs | 0 .../CSharpYamlDiscriminatorTemplate.cs | 0 .../CSharpYamlDiscriminatorTypeInspectorTemplate.cs | 0 .../CSharpYamlSerializerTemplate.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/JsonSchemaExtensions.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/Program.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/Properties/AssemblyInfo.cs | 0 {src/Bonsai.Sgen => Bonsai.Sgen}/SerializerLibraries.cs | 0 src/Directory.Build.props => Directory.Build.props | 0 docs/build.ps1 | 2 +- docs/docfx.json | 2 +- 37 files changed, 2 insertions(+), 5 deletions(-) rename src/.editorconfig => .editorconfig (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/Bonsai.Sgen.Tests.csproj (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/CasingGenerationTests.cs (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/CompilerTestHelper.cs (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/DiscriminatorGenerationTests.cs (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/EnumGenerationTests.cs (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/SchemaTestHelper.cs (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/TestHelper.cs (100%) rename {src/Bonsai.Sgen.Tests => Bonsai.Sgen.Tests}/ToStringGenerationTests.cs (100%) rename src/Bonsai.Sgen.sln => Bonsai.Sgen.sln (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/Bonsai.Sgen.csproj (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpClassCodeArtifact.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpClassTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpClassTemplateModel.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpCodeDomGenerator.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpCodeDomGeneratorSettings.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpCodeDomTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpEnumNameGenerator.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpEnumTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpJsonSerializerTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpNamingConvention.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpPropertyNameGenerator.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpSerializerTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpTypeMatchTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpTypeNameGenerator.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpTypeResolver.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpYamlDiscriminatorTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpYamlDiscriminatorTypeInspectorTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/CSharpYamlSerializerTemplate.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/JsonSchemaExtensions.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/Program.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/Properties/AssemblyInfo.cs (100%) rename {src/Bonsai.Sgen => Bonsai.Sgen}/SerializerLibraries.cs (100%) rename src/Directory.Build.props => Directory.Build.props (100%) diff --git a/src/.editorconfig b/.editorconfig similarity index 100% rename from src/.editorconfig rename to .editorconfig diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 4101b17..8d6b947 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -17,13 +17,10 @@ jobs: dotnet-version: 6.0.x - name: Restore dependencies - working-directory: src run: dotnet restore - name: Build - working-directory: src run: dotnet build --no-restore - name: Test - working-directory: src run: dotnet test --no-build --verbosity normal diff --git a/src/Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj b/Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj similarity index 100% rename from src/Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj rename to Bonsai.Sgen.Tests/Bonsai.Sgen.Tests.csproj diff --git a/src/Bonsai.Sgen.Tests/CasingGenerationTests.cs b/Bonsai.Sgen.Tests/CasingGenerationTests.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/CasingGenerationTests.cs rename to Bonsai.Sgen.Tests/CasingGenerationTests.cs diff --git a/src/Bonsai.Sgen.Tests/CompilerTestHelper.cs b/Bonsai.Sgen.Tests/CompilerTestHelper.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/CompilerTestHelper.cs rename to Bonsai.Sgen.Tests/CompilerTestHelper.cs diff --git a/src/Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs b/Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs rename to Bonsai.Sgen.Tests/DiscriminatorGenerationTests.cs diff --git a/src/Bonsai.Sgen.Tests/EnumGenerationTests.cs b/Bonsai.Sgen.Tests/EnumGenerationTests.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/EnumGenerationTests.cs rename to Bonsai.Sgen.Tests/EnumGenerationTests.cs diff --git a/src/Bonsai.Sgen.Tests/SchemaTestHelper.cs b/Bonsai.Sgen.Tests/SchemaTestHelper.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/SchemaTestHelper.cs rename to Bonsai.Sgen.Tests/SchemaTestHelper.cs diff --git a/src/Bonsai.Sgen.Tests/TestHelper.cs b/Bonsai.Sgen.Tests/TestHelper.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/TestHelper.cs rename to Bonsai.Sgen.Tests/TestHelper.cs diff --git a/src/Bonsai.Sgen.Tests/ToStringGenerationTests.cs b/Bonsai.Sgen.Tests/ToStringGenerationTests.cs similarity index 100% rename from src/Bonsai.Sgen.Tests/ToStringGenerationTests.cs rename to Bonsai.Sgen.Tests/ToStringGenerationTests.cs diff --git a/src/Bonsai.Sgen.sln b/Bonsai.Sgen.sln similarity index 100% rename from src/Bonsai.Sgen.sln rename to Bonsai.Sgen.sln diff --git a/src/Bonsai.Sgen/Bonsai.Sgen.csproj b/Bonsai.Sgen/Bonsai.Sgen.csproj similarity index 100% rename from src/Bonsai.Sgen/Bonsai.Sgen.csproj rename to Bonsai.Sgen/Bonsai.Sgen.csproj diff --git a/src/Bonsai.Sgen/CSharpClassCodeArtifact.cs b/Bonsai.Sgen/CSharpClassCodeArtifact.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpClassCodeArtifact.cs rename to Bonsai.Sgen/CSharpClassCodeArtifact.cs diff --git a/src/Bonsai.Sgen/CSharpClassTemplate.cs b/Bonsai.Sgen/CSharpClassTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpClassTemplate.cs rename to Bonsai.Sgen/CSharpClassTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpClassTemplateModel.cs b/Bonsai.Sgen/CSharpClassTemplateModel.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpClassTemplateModel.cs rename to Bonsai.Sgen/CSharpClassTemplateModel.cs diff --git a/src/Bonsai.Sgen/CSharpCodeDomGenerator.cs b/Bonsai.Sgen/CSharpCodeDomGenerator.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpCodeDomGenerator.cs rename to Bonsai.Sgen/CSharpCodeDomGenerator.cs diff --git a/src/Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs b/Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs rename to Bonsai.Sgen/CSharpCodeDomGeneratorSettings.cs diff --git a/src/Bonsai.Sgen/CSharpCodeDomTemplate.cs b/Bonsai.Sgen/CSharpCodeDomTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpCodeDomTemplate.cs rename to Bonsai.Sgen/CSharpCodeDomTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpEnumNameGenerator.cs b/Bonsai.Sgen/CSharpEnumNameGenerator.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpEnumNameGenerator.cs rename to Bonsai.Sgen/CSharpEnumNameGenerator.cs diff --git a/src/Bonsai.Sgen/CSharpEnumTemplate.cs b/Bonsai.Sgen/CSharpEnumTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpEnumTemplate.cs rename to Bonsai.Sgen/CSharpEnumTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpJsonSerializerTemplate.cs b/Bonsai.Sgen/CSharpJsonSerializerTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpJsonSerializerTemplate.cs rename to Bonsai.Sgen/CSharpJsonSerializerTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpNamingConvention.cs b/Bonsai.Sgen/CSharpNamingConvention.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpNamingConvention.cs rename to Bonsai.Sgen/CSharpNamingConvention.cs diff --git a/src/Bonsai.Sgen/CSharpPropertyNameGenerator.cs b/Bonsai.Sgen/CSharpPropertyNameGenerator.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpPropertyNameGenerator.cs rename to Bonsai.Sgen/CSharpPropertyNameGenerator.cs diff --git a/src/Bonsai.Sgen/CSharpSerializerTemplate.cs b/Bonsai.Sgen/CSharpSerializerTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpSerializerTemplate.cs rename to Bonsai.Sgen/CSharpSerializerTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpTypeMatchTemplate.cs b/Bonsai.Sgen/CSharpTypeMatchTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpTypeMatchTemplate.cs rename to Bonsai.Sgen/CSharpTypeMatchTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpTypeNameGenerator.cs b/Bonsai.Sgen/CSharpTypeNameGenerator.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpTypeNameGenerator.cs rename to Bonsai.Sgen/CSharpTypeNameGenerator.cs diff --git a/src/Bonsai.Sgen/CSharpTypeResolver.cs b/Bonsai.Sgen/CSharpTypeResolver.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpTypeResolver.cs rename to Bonsai.Sgen/CSharpTypeResolver.cs diff --git a/src/Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs b/Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs rename to Bonsai.Sgen/CSharpYamlDiscriminatorTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs b/Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs rename to Bonsai.Sgen/CSharpYamlDiscriminatorTypeInspectorTemplate.cs diff --git a/src/Bonsai.Sgen/CSharpYamlSerializerTemplate.cs b/Bonsai.Sgen/CSharpYamlSerializerTemplate.cs similarity index 100% rename from src/Bonsai.Sgen/CSharpYamlSerializerTemplate.cs rename to Bonsai.Sgen/CSharpYamlSerializerTemplate.cs diff --git a/src/Bonsai.Sgen/JsonSchemaExtensions.cs b/Bonsai.Sgen/JsonSchemaExtensions.cs similarity index 100% rename from src/Bonsai.Sgen/JsonSchemaExtensions.cs rename to Bonsai.Sgen/JsonSchemaExtensions.cs diff --git a/src/Bonsai.Sgen/Program.cs b/Bonsai.Sgen/Program.cs similarity index 100% rename from src/Bonsai.Sgen/Program.cs rename to Bonsai.Sgen/Program.cs diff --git a/src/Bonsai.Sgen/Properties/AssemblyInfo.cs b/Bonsai.Sgen/Properties/AssemblyInfo.cs similarity index 100% rename from src/Bonsai.Sgen/Properties/AssemblyInfo.cs rename to Bonsai.Sgen/Properties/AssemblyInfo.cs diff --git a/src/Bonsai.Sgen/SerializerLibraries.cs b/Bonsai.Sgen/SerializerLibraries.cs similarity index 100% rename from src/Bonsai.Sgen/SerializerLibraries.cs rename to Bonsai.Sgen/SerializerLibraries.cs diff --git a/src/Directory.Build.props b/Directory.Build.props similarity index 100% rename from src/Directory.Build.props rename to Directory.Build.props diff --git a/docs/build.ps1 b/docs/build.ps1 index d8dec61..c53f477 100644 --- a/docs/build.ps1 +++ b/docs/build.ps1 @@ -1,2 +1,2 @@ -.\bonsai\modules\Export-Image.ps1 "..\src\Bonsai.Sgen\bin\Release\net6.0" +.\bonsai\modules\Export-Image.ps1 "..\Bonsai.Sgen\bin\Release\net6.0" dotnet docfx @args diff --git a/docs/docfx.json b/docs/docfx.json index 9113f9d..9b1e2fd 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -4,7 +4,7 @@ { "src": [ { - "src": "../src", + "src": "../", "files": [ "**/*.csproj" ] From e6ab5abc8fb7fc169f8cfc3d62482dc63dee8ac5 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Tue, 7 Jan 2025 09:18:32 -0800 Subject: [PATCH 12/27] Apply suggestions from code review Co-authored-by: glopesdev --- docs/build.ps1 | 2 +- docs/docfx.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/build.ps1 b/docs/build.ps1 index c53f477..c0990f8 100644 --- a/docs/build.ps1 +++ b/docs/build.ps1 @@ -1,2 +1,2 @@ -.\bonsai\modules\Export-Image.ps1 "..\Bonsai.Sgen\bin\Release\net6.0" +.\bonsai\modules\Export-Image.ps1 dotnet docfx @args diff --git a/docs/docfx.json b/docs/docfx.json index 9b1e2fd..2b41508 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -58,8 +58,8 @@ "template" ], "globalMetadata": { - "_appName": "Bonsai - SGEN", - "_appTitle": "Bonsai.SGEN", + "_appName": "Bonsai - Sgen", + "_appTitle": "Bonsai.Sgen", "_appFooter": "© 2025 Bonsai Foundation CIC and Contributors. Made with docfx", "_enableSearch": true, "pdf": false From c4f5012bd22d12aa1167dc4bcf67f4719b4ee124 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 15:51:16 -0800 Subject: [PATCH 13/27] Update docfx-tools submodule --- docs/bonsai | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bonsai b/docs/bonsai index 14246dc..0ab0799 160000 --- a/docs/bonsai +++ b/docs/bonsai @@ -1 +1 @@ -Subproject commit 14246dc307b918b68aa03232539a8f57318a4623 +Subproject commit 0ab0799f0373587b565ae0b94c864b962216e1c2 From cbae45df3d649c0470cd064d0846b1262366408e Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 15:53:05 -0800 Subject: [PATCH 14/27] Remove unnecessary docfx.json properties --- docs/docfx.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/docfx.json b/docs/docfx.json index 2b41508..79ac102 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -32,8 +32,6 @@ "resource": [ { "files": [ - "logo.svg", - "favicon.ico", "images/**", "workflows/**" ] From cc13e916d25d72e2e46df9d5a05a8b4e8b67f5ae Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 15:58:00 -0800 Subject: [PATCH 15/27] Add docs.yml GitHub Actions recipe --- .github/workflows/docs.yml | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..85995b9 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,53 @@ +# Builds and publishes the documentation website +name: Build docs + +on: + workflow_dispatch: + +concurrency: + group: docs + cancel-in-progress: true + +permissions: + # Both required by actions/deploy-pages + pages: write + id-token: write + +jobs: + build: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.x + + - name: Setup DocFX + run: dotnet tool restore + + - name: Setup Bonsai + working-directory: .bonsai + run: ./Setup.ps1 + + - name: Restore + run: dotnet restore + + - name: Build + run: dotnet build --no-restore + + - name: Build Documentation + working-directory: docs + run: ./build.ps1 + + - name: Upload GitHub Pages Artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/_site + + - name: Deploy to GitHub Pages + uses: actions/deploy-pages@v4 From f24dd2cb7a3ceef7d42bf89d21ffd6723f0b8eee Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 16:24:42 -0800 Subject: [PATCH 16/27] Add common build props, ignore artifacts folder --- .gitignore | 1 + Directory.Build.props | 27 +-------------------------- build/Bonsai.props | 6 ++++++ build/Common.props | 11 +++++++++++ build/Package.props | 20 ++++++++++++++++++++ build/Version.props | 25 +++++++++++++++++++++++++ 6 files changed, 64 insertions(+), 26 deletions(-) create mode 100644 build/Bonsai.props create mode 100644 build/Common.props create mode 100644 build/Package.props create mode 100644 build/Version.props diff --git a/.gitignore b/.gitignore index 93edfd3..768b466 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ bin obj *.user *.suo +/artifacts/ \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 92b2b84..c0577ac 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,28 +1,3 @@ - - - Bonsai - icon.png - A tool for automatically generating YML serialization classes from schema files. - bonsai.sgen - Bonsai Rx Sgen Schema Serializer Generators - LICENSE - README.md - Copyright © Bonsai Foundation CIC 2023 - snupkg - false - ..\bin\$(Configuration) - https://bonsai-rx.org/sgen - https://github.com/bonsai-rx/sgen.git - - true - git - true - - - - - - - + \ No newline at end of file diff --git a/build/Bonsai.props b/build/Bonsai.props new file mode 100644 index 0000000..813ce88 --- /dev/null +++ b/build/Bonsai.props @@ -0,0 +1,6 @@ + + + + $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)../.bonsai/Bonsai.exe')) + + \ No newline at end of file diff --git a/build/Common.props b/build/Common.props new file mode 100644 index 0000000..0bb2a7b --- /dev/null +++ b/build/Common.props @@ -0,0 +1,11 @@ + + + true + 10.0 + strict + + + + + + \ No newline at end of file diff --git a/build/Package.props b/build/Package.props new file mode 100644 index 0000000..4c46307 --- /dev/null +++ b/build/Package.props @@ -0,0 +1,20 @@ + + + Bonsai + Copyright © Bonsai Foundation CIC and Contributors + https://bonsai-rx.org/sgen + true + Dependency;BonsaiLibrary + snupkg + LICENSE + README.md + icon.png + true + + + + + + + + \ No newline at end of file diff --git a/build/Version.props b/build/Version.props new file mode 100644 index 0000000..32a3f5d --- /dev/null +++ b/build/Version.props @@ -0,0 +1,25 @@ + + + + 0.4.0 + + + + + 0 + + dev$(DevVersion) + <_FileVersionRevision>$([MSBuild]::Add(60000, $(DevVersion))) + + + + $(CiBuildVersionSuffix) + <_FileVersionRevision>0 + <_FileVersionRevision Condition="'$(CiBuildVersionSuffix)' != '' and '$(CiRunNumber)' != ''">$(CiRunNumber) + + + + + $(WarningsAsErrors);CS7035 + + \ No newline at end of file From c8c4a486ad5f6c57c5241dfcc88aa9cbd2133f53 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 17:54:29 -0800 Subject: [PATCH 17/27] Add common build props to sln using visual studio --- Bonsai.Sgen.sln | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Bonsai.Sgen.sln b/Bonsai.Sgen.sln index 7496fef..c101fd9 100644 --- a/Bonsai.Sgen.sln +++ b/Bonsai.Sgen.sln @@ -7,10 +7,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bonsai.Sgen", "Bonsai.Sgen\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C2B91AD3-A136-4833-897F-123A6B3578DD}" ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig Directory.Build.props = Directory.Build.props EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bonsai.Sgen.Tests", "Bonsai.Sgen.Tests\Bonsai.Sgen.Tests.csproj", "{DF485243-376F-4632-A637-D489B799F59A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bonsai.Sgen.Tests", "Bonsai.Sgen.Tests\Bonsai.Sgen.Tests.csproj", "{DF485243-376F-4632-A637-D489B799F59A}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{F60C8E06-0D9D-4A47-963F-8E28AD7924B6}" + ProjectSection(SolutionItems) = preProject + build\Bonsai.props = build\Bonsai.props + build\Common.props = build\Common.props + build\Package.props = build\Package.props + build\Version.props = build\Version.props + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution From ccf7c2b5667902f6514ddbabe593018d51d123a3 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:03:18 -0800 Subject: [PATCH 18/27] Update .csproj with leftover tags from directory.build.props --- Bonsai.Sgen/Bonsai.Sgen.csproj | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Bonsai.Sgen/Bonsai.Sgen.csproj b/Bonsai.Sgen/Bonsai.Sgen.csproj index 20ee0a9..f4c6b6d 100644 --- a/Bonsai.Sgen/Bonsai.Sgen.csproj +++ b/Bonsai.Sgen/Bonsai.Sgen.csproj @@ -1,6 +1,16 @@  + A tool for automatically generating YML serialization classes from schema files. + bonsai.sgen + Bonsai Rx Sgen Schema Serializer Generators + true + ..\bin\$(Configuration) + https://github.com/bonsai-rx/sgen.git + + true + git + true Exe Bonsai.Sgen net6.0 From 903a60ee10dd3e52f10b6c772a956e9b935f4125 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:09:26 -0800 Subject: [PATCH 19/27] Remove unused declarations in .gitignore --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitignore b/.gitignore index 768b466..d441af3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,2 @@ .vs -bin -obj -*.user -*.suo /artifacts/ \ No newline at end of file From b41004e78f47285d31335376bcf70d0c40ca1da1 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:23:00 -0800 Subject: [PATCH 20/27] Remove year from license file --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 6cc246b..9b15ac5 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Bonsai Foundation CIC +Copyright (c) Bonsai Foundation CIC and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From aee89776b4127b18df9285724aa259fdb016eb16 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:27:39 -0800 Subject: [PATCH 21/27] add global.json --- global.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 global.json diff --git a/global.json b/global.json new file mode 100644 index 0000000..989a69c --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "8.0.100", + "rollForward": "latestMinor" + } +} \ No newline at end of file From ae8aac5879c467270d00faddb8ffeebd456a2927 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:28:50 -0800 Subject: [PATCH 22/27] Remove bonsai.props and references to it --- Bonsai.Sgen.sln | 1 - build/Bonsai.props | 6 ------ build/Common.props | 1 - 3 files changed, 8 deletions(-) delete mode 100644 build/Bonsai.props diff --git a/Bonsai.Sgen.sln b/Bonsai.Sgen.sln index c101fd9..52c2a67 100644 --- a/Bonsai.Sgen.sln +++ b/Bonsai.Sgen.sln @@ -15,7 +15,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bonsai.Sgen.Tests", "Bonsai EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{F60C8E06-0D9D-4A47-963F-8E28AD7924B6}" ProjectSection(SolutionItems) = preProject - build\Bonsai.props = build\Bonsai.props build\Common.props = build\Common.props build\Package.props = build\Package.props build\Version.props = build\Version.props diff --git a/build/Bonsai.props b/build/Bonsai.props deleted file mode 100644 index 813ce88..0000000 --- a/build/Bonsai.props +++ /dev/null @@ -1,6 +0,0 @@ - - - - $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)../.bonsai/Bonsai.exe')) - - \ No newline at end of file diff --git a/build/Common.props b/build/Common.props index 0bb2a7b..b1b4f8e 100644 --- a/build/Common.props +++ b/build/Common.props @@ -5,7 +5,6 @@ strict - \ No newline at end of file From ab1d154caa8059f1bf3dedc02b7d925974561f6c Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:37:16 -0800 Subject: [PATCH 23/27] Remove unnecessary properties from csproj --- Bonsai.Sgen/Bonsai.Sgen.csproj | 3 --- docs/.gitignore | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Bonsai.Sgen/Bonsai.Sgen.csproj b/Bonsai.Sgen/Bonsai.Sgen.csproj index f4c6b6d..d67ed6d 100644 --- a/Bonsai.Sgen/Bonsai.Sgen.csproj +++ b/Bonsai.Sgen/Bonsai.Sgen.csproj @@ -5,7 +5,6 @@ bonsai.sgen Bonsai Rx Sgen Schema Serializer Generators true - ..\bin\$(Configuration) https://github.com/bonsai-rx/sgen.git true @@ -15,8 +14,6 @@ Bonsai.Sgen net6.0 enable - 0.4.0 - enable diff --git a/docs/.gitignore b/docs/.gitignore index c08f9ad..253cc60 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,2 @@ -_site \ No newline at end of file +_site +obj/ \ No newline at end of file From 707df6590e173337ee6e599583577a98c9456699 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 19:55:09 -0800 Subject: [PATCH 24/27] remove git repository information from csproj --- Bonsai.Sgen/Bonsai.Sgen.csproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/Bonsai.Sgen/Bonsai.Sgen.csproj b/Bonsai.Sgen/Bonsai.Sgen.csproj index d67ed6d..cf55052 100644 --- a/Bonsai.Sgen/Bonsai.Sgen.csproj +++ b/Bonsai.Sgen/Bonsai.Sgen.csproj @@ -5,10 +5,7 @@ bonsai.sgen Bonsai Rx Sgen Schema Serializer Generators true - https://github.com/bonsai-rx/sgen.git - true - git true Exe Bonsai.Sgen From 74d7168fb4b9220773bdf44f26bddecc0277a567 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 20:01:57 -0800 Subject: [PATCH 25/27] Update .NET version for dotnet.yml --- .github/workflows/dotnet.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 8d6b947..e59b648 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -10,11 +10,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: - dotnet-version: 6.0.x + dotnet-version: 8.x - name: Restore dependencies run: dotnet restore From 52c722a4068bb9f2d2401543d56f92643a695932 Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 20:19:03 -0800 Subject: [PATCH 26/27] Remove global.json, restore original dotnet.yml --- .github/workflows/dotnet.yml | 6 +++--- global.json | 6 ------ 2 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 global.json diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index e59b648..8d6b947 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -10,11 +10,11 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v3 with: - dotnet-version: 8.x + dotnet-version: 6.0.x - name: Restore dependencies run: dotnet restore diff --git a/global.json b/global.json deleted file mode 100644 index 989a69c..0000000 --- a/global.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "sdk": { - "version": "8.0.100", - "rollForward": "latestMinor" - } -} \ No newline at end of file From b425cb077523bdcfe5dd6bf4f0079768849a636b Mon Sep 17 00:00:00 2001 From: Shawn Tan Date: Thu, 23 Jan 2025 20:28:49 -0800 Subject: [PATCH 27/27] Add bonsai local env --- .bonsai/.gitignore | 2 ++ .bonsai/Bonsai.config | 59 +++++++++++++++++++++++++++++++++++++++++++ .bonsai/NuGet.config | 8 ++++++ .bonsai/Setup.cmd | 4 +++ .bonsai/Setup.ps1 | 21 +++++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 .bonsai/.gitignore create mode 100644 .bonsai/Bonsai.config create mode 100644 .bonsai/NuGet.config create mode 100644 .bonsai/Setup.cmd create mode 100644 .bonsai/Setup.ps1 diff --git a/.bonsai/.gitignore b/.bonsai/.gitignore new file mode 100644 index 0000000..0cdead6 --- /dev/null +++ b/.bonsai/.gitignore @@ -0,0 +1,2 @@ +*.exe +Packages/ \ No newline at end of file diff --git a/.bonsai/Bonsai.config b/.bonsai/Bonsai.config new file mode 100644 index 0000000..ac40c8a --- /dev/null +++ b/.bonsai/Bonsai.config @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.bonsai/NuGet.config b/.bonsai/NuGet.config new file mode 100644 index 0000000..97e8b73 --- /dev/null +++ b/.bonsai/NuGet.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.bonsai/Setup.cmd b/.bonsai/Setup.cmd new file mode 100644 index 0000000..92d983d --- /dev/null +++ b/.bonsai/Setup.cmd @@ -0,0 +1,4 @@ +@echo off +pushd %~dp0 +powershell -ExecutionPolicy Bypass -File ./Setup.ps1 +popd \ No newline at end of file diff --git a/.bonsai/Setup.ps1 b/.bonsai/Setup.ps1 new file mode 100644 index 0000000..01cfba6 --- /dev/null +++ b/.bonsai/Setup.ps1 @@ -0,0 +1,21 @@ +Push-Location $PSScriptRoot +if (!(Test-Path "./Bonsai.exe")) { + $release = "https://github.com/bonsai-rx/bonsai/releases/latest/download/Bonsai.zip" + $configPath = "./Bonsai.config" + if (Test-Path $configPath) { + [xml]$config = Get-Content $configPath + $bootstrapper = $config.PackageConfiguration.Packages.Package.where{$_.id -eq 'Bonsai'} + if ($bootstrapper) { + $version = $bootstrapper.version + $release = "https://github.com/bonsai-rx/bonsai/releases/download/$version/Bonsai.zip" + } + } + Invoke-WebRequest $release -OutFile "temp.zip" + Move-Item -Path "NuGet.config" "temp.config" -ErrorAction SilentlyContinue + Expand-Archive "temp.zip" -DestinationPath "." -Force + Move-Item -Path "temp.config" "NuGet.config" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "temp.zip" + Remove-Item -Path "Bonsai32.exe" +} +& .\Bonsai.exe --no-editor +Pop-Location \ No newline at end of file