From 25c98ebf7aa607e0547f1a49fc2ccc3f1f25640e Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:49:44 -0700 Subject: [PATCH 01/23] Configure repository conventions --- .github/conventions.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/conventions.yml diff --git a/.github/conventions.yml b/.github/conventions.yml new file mode 100644 index 0000000..faa7c4f --- /dev/null +++ b/.github/conventions.yml @@ -0,0 +1,7 @@ +conventions: + - path: FacilityApi/Facility/conventions/facility-dotnet-package + - path: FacilityApi/Facility/conventions/facility-dotnet-package-workflows + +pull-request: + reviewers: + - ejball \ No newline at end of file From 54a7ec3101c2f9a097220e53fc33c64420f68353 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:06 -0700 Subject: [PATCH 02/23] Update Facility .NET package props --- Directory.Build.props | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index b46188a..cca1b5e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -38,4 +38,11 @@ true + + + FacilityApi + FacilityJavaScript + MIT + + From 4bcda1d39019e487c2a2ed9fca385d134ae47fe2 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:08 -0700 Subject: [PATCH 03/23] Update LSP server for C# --- .github/lsp.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/lsp.json diff --git a/.github/lsp.json b/.github/lsp.json new file mode 100644 index 0000000..ff432d6 --- /dev/null +++ b/.github/lsp.json @@ -0,0 +1,19 @@ +{ + "lspServers": { + "csharp": { + "command": "dnx", + "args": [ + "--yes", + "--prerelease", + "roslyn-language-server", + "--", + "--stdio", + "--autoLoadProjects" + ], + "fileExtensions": { + ".cs": "csharp", + ".cshtml": "csharp" + } + } + } +} From 501960a3665e5d8025da3de54c492b7c8fc2c05d Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:09 -0700 Subject: [PATCH 04/23] Update Facility .NET repository conventions --- FacilityJavaScript.sln | 69 ------------------- FacilityJavaScript.slnx | 25 +++++++ ...ngs => FacilityJavaScript.slnx.DotSettings | 0 global.json | 2 +- 4 files changed, 26 insertions(+), 70 deletions(-) delete mode 100644 FacilityJavaScript.sln create mode 100644 FacilityJavaScript.slnx rename FacilityJavaScript.sln.DotSettings => FacilityJavaScript.slnx.DotSettings (100%) diff --git a/FacilityJavaScript.sln b/FacilityJavaScript.sln deleted file mode 100644 index 215ed9c..0000000 --- a/FacilityJavaScript.sln +++ /dev/null @@ -1,69 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.32014.148 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A219E328-B15A-41FF-BAA5-5F46679EF9C8}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - .gitattributes = .gitattributes - .gitignore = .gitignore - build.ps1 = build.ps1 - .github\workflows\build.yaml = .github\workflows\build.yaml - Directory.Build.props = Directory.Build.props - dotnet-tools.json = dotnet-tools.json - example\ExampleApi.fsd = example\ExampleApi.fsd - Directory.Packages.props = Directory.Packages.props - global.json = global.json - LICENSE = LICENSE - nuget.config = nuget.config - ts\package.json = ts\package.json - README.md = README.md - ReleaseNotes.md = ReleaseNotes.md - ReleaseNotesNpm.md = ReleaseNotesNpm.md - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Facility.CodeGen.JavaScript", "src\Facility.CodeGen.JavaScript\Facility.CodeGen.JavaScript.csproj", "{89B9867C-5124-49BE-B201-0F1D8E9F7738}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "fsdgenjs", "src\fsdgenjs\fsdgenjs.csproj", "{7AA54CE8-D908-4FBB-9D81-111DE0C29E8F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Facility.CodeGen.JavaScript.UnitTests", "tests\Facility.CodeGen.JavaScript.UnitTests\Facility.CodeGen.JavaScript.UnitTests.csproj", "{E4E67F1B-A9E3-47A9-A05B-D517A50EA606}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "tools\Build\Build.csproj", "{9D6DC519-8908-4D3A-B16B-118D682BD170}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XmlDocGen", "tools\XmlDocGen\XmlDocGen.csproj", "{636E5B36-4AA8-47D8-884C-AE4D80B49A14}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {89B9867C-5124-49BE-B201-0F1D8E9F7738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {89B9867C-5124-49BE-B201-0F1D8E9F7738}.Debug|Any CPU.Build.0 = Debug|Any CPU - {89B9867C-5124-49BE-B201-0F1D8E9F7738}.Release|Any CPU.ActiveCfg = Release|Any CPU - {89B9867C-5124-49BE-B201-0F1D8E9F7738}.Release|Any CPU.Build.0 = Release|Any CPU - {7AA54CE8-D908-4FBB-9D81-111DE0C29E8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7AA54CE8-D908-4FBB-9D81-111DE0C29E8F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7AA54CE8-D908-4FBB-9D81-111DE0C29E8F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7AA54CE8-D908-4FBB-9D81-111DE0C29E8F}.Release|Any CPU.Build.0 = Release|Any CPU - {E4E67F1B-A9E3-47A9-A05B-D517A50EA606}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E4E67F1B-A9E3-47A9-A05B-D517A50EA606}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4E67F1B-A9E3-47A9-A05B-D517A50EA606}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E4E67F1B-A9E3-47A9-A05B-D517A50EA606}.Release|Any CPU.Build.0 = Release|Any CPU - {9D6DC519-8908-4D3A-B16B-118D682BD170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9D6DC519-8908-4D3A-B16B-118D682BD170}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D6DC519-8908-4D3A-B16B-118D682BD170}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9D6DC519-8908-4D3A-B16B-118D682BD170}.Release|Any CPU.Build.0 = Release|Any CPU - {636E5B36-4AA8-47D8-884C-AE4D80B49A14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {636E5B36-4AA8-47D8-884C-AE4D80B49A14}.Debug|Any CPU.Build.0 = Debug|Any CPU - {636E5B36-4AA8-47D8-884C-AE4D80B49A14}.Release|Any CPU.ActiveCfg = Release|Any CPU - {636E5B36-4AA8-47D8-884C-AE4D80B49A14}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {258EAD6F-902F-4B6D-83A2-EA3AD001A385} - EndGlobalSection -EndGlobal diff --git a/FacilityJavaScript.slnx b/FacilityJavaScript.slnx new file mode 100644 index 0000000..d6d48eb --- /dev/null +++ b/FacilityJavaScript.slnx @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FacilityJavaScript.sln.DotSettings b/FacilityJavaScript.slnx.DotSettings similarity index 100% rename from FacilityJavaScript.sln.DotSettings rename to FacilityJavaScript.slnx.DotSettings diff --git a/global.json b/global.json index 391ba3c..512142d 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "8.0.100", + "version": "10.0.100", "rollForward": "latestFeature" } } From b1e98f88bb55a5769f734b0215d2bc5b231acce5 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:14 -0700 Subject: [PATCH 05/23] Update root .editorconfig --- .editorconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 7371aa8..9518dc9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,12 +1,11 @@ +# DO NOT EDIT: root convention root = true [*] charset = utf-8 end_of_line = lf -indent_size = 2 -indent_style = space -insert_final_newline = true trim_trailing_whitespace = true +# END DO NOT EDIT [*.fsd] indent_size = 4 @@ -380,3 +379,4 @@ resharper_unused_auto_property_accessor_global_highlighting = none resharper_unused_auto_property_accessor_local_highlighting = suggestion resharper_unused_member_global_highlighting = none resharper_unused_member_local_highlighting = suggestion + From 49a35a75442d70815b827d215b4c6ca3a107f3da Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:15 -0700 Subject: [PATCH 06/23] Update .editorconfig for JSON --- .editorconfig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.editorconfig b/.editorconfig index 9518dc9..c2e0604 100644 --- a/.editorconfig +++ b/.editorconfig @@ -380,3 +380,8 @@ resharper_unused_auto_property_accessor_local_highlighting = suggestion resharper_unused_member_global_highlighting = none resharper_unused_member_local_highlighting = suggestion +# DO NOT EDIT: json convention +[*.json] +indent_size = 2 +indent_style = space +# END DO NOT EDIT From 84d629eed165fe4e529c9eea9a64bb1d259407d4 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:17 -0700 Subject: [PATCH 07/23] Update .editorconfig for Markdown --- .editorconfig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.editorconfig b/.editorconfig index c2e0604..65fd2a6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -385,3 +385,10 @@ resharper_unused_member_local_highlighting = suggestion indent_size = 2 indent_style = space # END DO NOT EDIT + +# DO NOT EDIT: md convention +[*.md] +indent_size = 2 +indent_style = space +insert_final_newline = true +# END DO NOT EDIT From 840f4f6ae0402756de91ed803545417f67f31532 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:19 -0700 Subject: [PATCH 08/23] Update .editorconfig for PowerShell --- .editorconfig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.editorconfig b/.editorconfig index 65fd2a6..c68540e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -392,3 +392,10 @@ indent_size = 2 indent_style = space insert_final_newline = true # END DO NOT EDIT + +# DO NOT EDIT: ps1 convention +[*.ps1] +indent_size = tab +indent_style = tab +insert_final_newline = true +# END DO NOT EDIT From 23959c474398364b6ea8af34a9622a43bd10263a Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:20 -0700 Subject: [PATCH 09/23] Update .editorconfig for YAML --- .editorconfig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.editorconfig b/.editorconfig index c68540e..2c82118 100644 --- a/.editorconfig +++ b/.editorconfig @@ -399,3 +399,9 @@ indent_size = tab indent_style = tab insert_final_newline = true # END DO NOT EDIT + +# DO NOT EDIT: yaml convention +[*.{yml,yaml}] +indent_size = 2 +indent_style = space +# END DO NOT EDIT From 29b5262903ddf5595496fbb3b09c9d2bfc1cd64f Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:22 -0700 Subject: [PATCH 10/23] Update .editorconfig for C# --- .editorconfig | 70 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/.editorconfig b/.editorconfig index 2c82118..a9428be 100644 --- a/.editorconfig +++ b/.editorconfig @@ -26,10 +26,43 @@ insert_final_newline = false [dotnet-tools.json] insert_final_newline = false -[*.cs] +# DO NOT EDIT: json convention +[*.json] +indent_size = 2 +indent_style = space +# END DO NOT EDIT + +# DO NOT EDIT: md convention +[*.md] +indent_size = 2 +indent_style = space +insert_final_newline = true +# END DO NOT EDIT + +# DO NOT EDIT: ps1 convention +[*.ps1] +indent_size = tab +indent_style = tab +insert_final_newline = true +# END DO NOT EDIT + +# DO NOT EDIT: yaml convention +[*.{yml,yaml}] +indent_size = 2 +indent_style = space +# END DO NOT EDIT + +# DO NOT EDIT: csharp convention +# generated from https://github.com/Faithlife/CodingGuidelines/blob/master/sections/csharp/editorconfig.md +[*.{csproj,props,slnx,targets}] +indent_size = 2 +indent_style = space + +[*.{cs,cshtml,razor}] indent_size = tab indent_style = tab tab_width = 4 +insert_final_newline = true csharp_indent_block_contents = true csharp_indent_braces = false csharp_indent_case_contents = true @@ -129,6 +162,8 @@ dotnet_diagnostic.CA1819.severity = suggestion dotnet_diagnostic.CA1822.severity = suggestion dotnet_diagnostic.CA1826.severity = suggestion dotnet_diagnostic.CA1848.severity = suggestion +dotnet_diagnostic.CA1861.severity = suggestion +dotnet_diagnostic.CA1873.severity = suggestion dotnet_diagnostic.CA2000.severity = none dotnet_diagnostic.CA2227.severity = none dotnet_diagnostic.CA2234.severity = none @@ -211,7 +246,15 @@ dotnet_diagnostic.IDE0161.severity = suggestion dotnet_diagnostic.IDE0170.severity = suggestion dotnet_diagnostic.IDE0180.severity = warning dotnet_diagnostic.IDE0290.severity = suggestion +dotnet_diagnostic.IDE0300.severity = suggestion +dotnet_diagnostic.IDE0301.severity = suggestion +dotnet_diagnostic.IDE0305.severity = suggestion +dotnet_diagnostic.IDE0306.severity = suggestion +dotnet_diagnostic.IDE0370.severity = suggestion +dotnet_diagnostic.IDE0390.severity = suggestion +dotnet_diagnostic.IDE0391.severity = suggestion dotnet_diagnostic.IDE1005.severity = suggestion +dotnet_diagnostic.NUnit2045.severity = suggestion dotnet_diagnostic.SA0001.severity = none dotnet_diagnostic.SA1003.severity = none dotnet_diagnostic.SA1008.severity = none @@ -379,29 +422,4 @@ resharper_unused_auto_property_accessor_global_highlighting = none resharper_unused_auto_property_accessor_local_highlighting = suggestion resharper_unused_member_global_highlighting = none resharper_unused_member_local_highlighting = suggestion - -# DO NOT EDIT: json convention -[*.json] -indent_size = 2 -indent_style = space -# END DO NOT EDIT - -# DO NOT EDIT: md convention -[*.md] -indent_size = 2 -indent_style = space -insert_final_newline = true -# END DO NOT EDIT - -# DO NOT EDIT: ps1 convention -[*.ps1] -indent_size = tab -indent_style = tab -insert_final_newline = true -# END DO NOT EDIT - -# DO NOT EDIT: yaml convention -[*.{yml,yaml}] -indent_size = 2 -indent_style = space # END DO NOT EDIT From c33cc645501fb0bc856948c327c434575ac599ef Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:24 -0700 Subject: [PATCH 11/23] Update .gitattributes for C# --- .gitattributes | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitattributes b/.gitattributes index f24179d..a715043 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,7 @@ *.sln text merge=union *.g.cs linguist-generated=true + +# DO NOT EDIT: csharp convention +*.cs text diff=csharp +# END DO NOT EDIT From e13953ee2d0241f40515e02faffc542a19020979 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:26 -0700 Subject: [PATCH 12/23] Update build.ps1 --- build.ps1 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/build.ps1 b/build.ps1 index 9b32821..b11b95c 100755 --- a/build.ps1 +++ b/build.ps1 @@ -1,12 +1,13 @@ #!/usr/bin/env pwsh +# DO NOT EDIT: generated by https://github.com/Faithlife/CodingGuidelines/tree/master/conventions/build-script $ErrorActionPreference = 'Stop' Push-Location $PSScriptRoot try { - dotnet publish ./tools/Build/Build.csproj --artifacts-path ./artifacts --nologo --verbosity quiet - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - dotnet ./artifacts/publish/Build/release/Build.dll $args - if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + dotnet publish ./tools/Build/Build.csproj --artifacts-path ./artifacts --nologo --verbosity quiet -tl:off + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + dotnet ./artifacts/publish/Build/release/Build.dll $args + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } } finally { - Pop-Location + Pop-Location } From 56347a5bbb0ca42b0e8e51d0623cc3a03f7bcf6d Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:27 -0700 Subject: [PATCH 13/23] Update Facility .NET repository conventions --- nuget.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nuget.config b/nuget.config index 6873eb9..da2f86d 100644 --- a/nuget.config +++ b/nuget.config @@ -1,6 +1,6 @@ - + - + From bbb3094a77086774dfb3dc328bff33e6e211e051 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:28 -0700 Subject: [PATCH 14/23] Update common .gitignore --- .gitignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a2ad192..57e0646 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,15 @@ obj/ release/ *.cache -*.log *.ncrunchproject *.ncrunchsolution *.user launchSettings.json nCrunchTemp* _ReSharper* + +# DO NOT EDIT: gitignore-common convention .DS_Store +Thumbs.db +*.log +# END DO NOT EDIT From b7ea2fd81d04cbd4928f5b67a19fd81fe83ac5ab Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:30 -0700 Subject: [PATCH 15/23] Update .gitignore for .NET --- .gitignore | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 57e0646..dd0859d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,5 @@ .vs/ .idea/ -artifacts/ -bin/ -obj/ -release/ *.cache *.ncrunchproject @@ -18,3 +14,10 @@ _ReSharper* Thumbs.db *.log # END DO NOT EDIT + +# DO NOT EDIT: gitignore-dotnet convention +artifacts/ +bin/ +obj/ +release/ +# END DO NOT EDIT From 6c4d5c51b0b54a505c6a0b6981ca077a98132057 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:31 -0700 Subject: [PATCH 16/23] Update .gitignore for IDEs --- .gitignore | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index dd0859d..e83df5a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,8 @@ -.vs/ -.idea/ -*.cache *.ncrunchproject *.ncrunchsolution -*.user launchSettings.json nCrunchTemp* -_ReSharper* # DO NOT EDIT: gitignore-common convention .DS_Store @@ -21,3 +16,12 @@ bin/ obj/ release/ # END DO NOT EDIT + +# DO NOT EDIT: gitignore-ide convention +.vs/ +.idea/ +*.cache +*.user +*.userprefs +_ReSharper* +# END DO NOT EDIT From 5f1e73fac1d7b6b8eb8d95320691c7f6b7867656 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:32 -0700 Subject: [PATCH 17/23] Update CONTRIBUTING.md --- CONTRIBUTING.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2dcf409..2bf2bb6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,13 +1,19 @@ + + # Contributing -To contribute to this project, please submit a pull request, referencing the corresponding issue as appropriate. +## Publishing + +To publish an official release: -Changes should generally be verified with one or more new unit tests. +* Update the `` in [`Directory.Build.props`](Directory.Build.props). +* Add a corresponding section to the top of [`ReleaseNotes.md`](ReleaseNotes.md). +* Push or create a PR for review. -Use `build.ps1 test` to build the solution and run the unit tests from the command line. ([PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell) is supported on Windows, Linux, and macOS.) +### Prereleases -If the code generation algorithm changes, run `build.ps1 codegen` to update the locally generated code, which must be up-to-date for the automated build to succeed. +Certain changes can be hard to unit test and are better tested in a real consumer project. In this case, you can publish a beta version of the library for testing. -To publish to NuGet, update the `` in [`Directory.Build.props`](Directory.Build.props) and add a corresponding section to the top of [`ReleaseNotes.md`](ReleaseNotes.md). (To publish a prerelease version, add a `` element below ``.) When the version change is merged to `master`, publishing will happen automatically. +To publish a beta, add a `` below `` in [`Directory.Build.props`](Directory.Build.props), e.g., `beta.1`. Publish as above. -This repository uses the [`faithlife-build`](https://github.com/FacilityApi/RepoTemplate/tree/faithlife-build) template of [`FacilityApi/RepoTemplate`](https://github.com/FacilityApi/RepoTemplate). +When beta testing is done, delete the `` and publish again. From 4a39973146290c35eb4043be811d95f45d2ed569 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:34 -0700 Subject: [PATCH 18/23] Update .NET library props --- Directory.Build.props | 29 +++++++++++++++++++++++++++++ Directory.Packages.props | 14 ++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index cca1b5e..5874106 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -45,4 +45,33 @@ MIT + + + 14.0 + enable + enable + true + en-US + embedded + https://github.com/$(GitHubOrganization)/$(RepositoryName) + https://github.com/$(GitHubOrganization)/$(RepositoryName)/blob/master/ReleaseNotes.md + https://github.com/$(GitHubOrganization)/$(RepositoryName).git + $(GitHubOrganization) + Copyright $(Authors) + true + latest-all + true + true + false + false + false + true + true + true + true + true + all + low + + diff --git a/Directory.Packages.props b/Directory.Packages.props index b1ee154..438dd3f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -16,4 +16,18 @@ + + + true + true + true + + + + + + + + + \ No newline at end of file From 343e62811e22923c1084f15b46b3c8165e8185cd Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:38 -0700 Subject: [PATCH 19/23] Update Facility .NET repository conventions --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index df586e7..f1491c9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright 2024 Ed Ball +Copyright 2026 Ed Ball 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 512b45bfdd3322dba7715a97f9fbe6d07555be8f Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:50:39 -0700 Subject: [PATCH 20/23] Update Facility .NET package workflows --- .github/workflows/apply-repo-conventions.yml | 47 +++++++++++ .github/workflows/ci.yml | 82 ++++++++++++++++++++ .github/workflows/copilot-setup-steps.yml | 26 +++++++ 3 files changed, 155 insertions(+) create mode 100644 .github/workflows/apply-repo-conventions.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/copilot-setup-steps.yml diff --git a/.github/workflows/apply-repo-conventions.yml b/.github/workflows/apply-repo-conventions.yml new file mode 100644 index 0000000..75fcc14 --- /dev/null +++ b/.github/workflows/apply-repo-conventions.yml @@ -0,0 +1,47 @@ +name: Apply Repository Conventions + +on: + schedule: + - cron: '31 9 * * 1-5' + workflow_dispatch: + +permissions: {} + +jobs: + apply: + name: Apply + runs-on: ubuntu-latest + steps: + - name: Generate GitHub App token + id: app-token + uses: actions/create-github-app-token@v3 + with: + client-id: ${{ vars.FACILITY_BOT_CLIENT_ID }} + private-key: ${{ secrets.FACILITY_BOT_PRIVATE_KEY }} + + - name: Check out repository + uses: actions/checkout@v6 + with: + token: ${{ steps.app-token.outputs.token }} + # full history needed for git merge-base in repo-conventions tool + fetch-depth: 0 + + - name: Configure Git + run: | + git config user.name "facility-bot[app]" + git config user.email "facility-bot[app]@users.noreply.github.com" + + - name: Install .NET + uses: actions/setup-dotnet@v5 + + - name: Install APM + uses: microsoft/apm-action@v1 + with: + setup-only: true + + - name: Apply repository conventions + env: + GH_TOKEN: ${{ steps.app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} + run: | + dnx -y repo-conventions apply --open-pr diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9cf1094 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ +name: Continuous Integration + +on: + push: + branches: [master] + tags-ignore: ['**'] + pull_request: + workflow_dispatch: + +env: + DOTNET_NOLOGO: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + +defaults: + run: + shell: pwsh + +permissions: + contents: write + +jobs: + build-matrix: + name: Build ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + steps: + - name: Check out code + uses: actions/checkout@v6 + - name: Install .NET + uses: actions/setup-dotnet@v5 + - name: Restore + run: ./build.ps1 restore + - name: Build + run: ./build.ps1 build --skip restore + - name: Test + run: ./build.ps1 test --skip build + - name: Package + run: ./build.ps1 package --skip test + - name: Upload packages + if: matrix.os == 'windows-latest' + uses: actions/upload-artifact@v7 + with: + name: nuget-packages + path: release/*.nupkg + if-no-files-found: error + + build: + name: Build + runs-on: ubuntu-latest + needs: build-matrix + if: ${{ always() }} + steps: + - name: Build failed + if: ${{ needs.build-matrix.result != 'success' }} + run: Write-Host "Build failed."; exit 1 + - name: Build succeeded + if: ${{ needs.build-matrix.result == 'success' }} + run: Write-Host "Build succeeded." + + publish: + name: Publish + runs-on: windows-latest + needs: build + if: github.repository_owner == 'FacilityApi' && github.ref == 'refs/heads/master' + steps: + - name: Check out code + uses: actions/checkout@v6 + - name: Install .NET + uses: actions/setup-dotnet@v5 + - name: Download packages + uses: actions/download-artifact@v8 + with: + name: nuget-packages + path: release + - name: Publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + run: ./build.ps1 publish --skip package --trigger publish-nuget-output diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 0000000..ef7f555 --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,26 @@ +name: Copilot Setup Steps + +on: + workflow_dispatch: + +env: + DOTNET_NOLOGO: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + +defaults: + run: + shell: pwsh + +permissions: + contents: read + +jobs: + copilot-setup-steps: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v6 + - name: Install .NET + uses: actions/setup-dotnet@v5 + - name: Restore + run: ./build.ps1 restore From 01d6f8bb29d76b8a193f7c33553335111c4102cf Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:54:06 -0700 Subject: [PATCH 21/23] Modernize FacilityJavaScript repository --- .gitattributes | 4 -- .github/workflows/build.yaml | 53 ------------------- .github/workflows/npm.yml | 39 ++++++++++++++ .github/workflows/publish-docs.yaml | 31 ----------- .gitignore | 6 --- Directory.Build.props | 27 +--------- Directory.Packages.props | 17 ++---- FacilityJavaScript.slnx | 19 ------- FacilityJavaScript.slnx.DotSettings | 3 -- README.md | 5 +- example/js/package-lock.json | 2 +- .../Facility.CodeGen.JavaScript.csproj | 1 + .../JavaScriptGenerator.cs | 2 +- src/fsdgenjs/FsdGenJavaScriptApp.cs | 2 +- src/fsdgenjs/fsdgenjs.csproj | 1 + .../JavaScriptGeneratorTests.cs | 2 +- tools/Build/Build.cs | 10 ---- tools/XmlDocGen/XmlDocGen.csproj | 16 ------ tools/XmlDocGen/XmlDocGenApp.cs | 3 -- ts/package-lock.json | 20 ++----- 20 files changed, 57 insertions(+), 206 deletions(-) delete mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/npm.yml delete mode 100644 .github/workflows/publish-docs.yaml delete mode 100644 FacilityJavaScript.slnx.DotSettings delete mode 100644 tools/XmlDocGen/XmlDocGen.csproj delete mode 100644 tools/XmlDocGen/XmlDocGenApp.cs diff --git a/.gitattributes b/.gitattributes index a715043..ba0aa44 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,9 +1,5 @@ * text=auto eol=lf -*.cs text diff=csharp -*.csproj text merge=union -*.sln text merge=union - *.g.cs linguist-generated=true # DO NOT EDIT: csharp convention diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index b9122ab..0000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,53 +0,0 @@ -name: Build - -on: - push: - branches: [master] - tags-ignore: ['**'] - pull_request: - workflow_dispatch: - -env: - DOTNET_NOLOGO: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - -defaults: - run: - shell: pwsh - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - steps: - - name: Check out code - uses: actions/checkout@v3 - with: - fetch-depth: 0 # required to publish docs - - name: Install .NET - uses: actions/setup-dotnet@v4 - - name: Restore - run: .\build.ps1 restore - - name: Build - run: .\build.ps1 build --skip restore - - name: Test - run: .\build.ps1 test --skip build - - name: Publish - if: runner.os == 'Windows' && github.repository_owner == 'FacilityApi' && github.ref == 'refs/heads/master' - env: - BUILD_BOT_PASSWORD: ${{ secrets.BUILD_BOT_PASSWORD }} - NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} - run: .\build.ps1 publish --skip test - - name: Build NPM - if: runner.os == 'Linux' - run: .\build.ps1 build-npm - - name: Test NPM - if: runner.os == 'Linux' - run: .\build.ps1 test-npm --skip build-npm - - name: Publish NPM - if: runner.os == 'Linux' && github.repository_owner == 'FacilityApi' && github.ref == 'refs/heads/master' - env: - NPM_ACCESS_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} - run: .\build.ps1 publish-npm --skip test-npm diff --git a/.github/workflows/npm.yml b/.github/workflows/npm.yml new file mode 100644 index 0000000..603187d --- /dev/null +++ b/.github/workflows/npm.yml @@ -0,0 +1,39 @@ +name: npm + +on: + push: + branches: [master] + tags-ignore: ['**'] + pull_request: + workflow_dispatch: + +env: + DOTNET_NOLOGO: 1 + DOTNET_CLI_TELEMETRY_OPTOUT: 1 + +defaults: + run: + shell: pwsh + +jobs: + npm: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v6 + - name: Install .NET + uses: actions/setup-dotnet@v5 + - name: Install Node.js + uses: actions/setup-node@v6 + with: + node-version: lts/* + registry-url: https://registry.npmjs.org + - name: Build npm package + run: ./build.ps1 build-npm + - name: Test npm package + run: ./build.ps1 test-npm --skip build-npm + - name: Publish npm package + if: github.repository_owner == 'FacilityApi' && github.ref == 'refs/heads/master' + env: + NPM_ACCESS_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} + run: ./build.ps1 publish-npm --skip test-npm \ No newline at end of file diff --git a/.github/workflows/publish-docs.yaml b/.github/workflows/publish-docs.yaml deleted file mode 100644 index ca0e689..0000000 --- a/.github/workflows/publish-docs.yaml +++ /dev/null @@ -1,31 +0,0 @@ -name: Publish Docs - -on: - workflow_dispatch: - -env: - DOTNET_NOLOGO: 1 - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - -defaults: - run: - shell: pwsh - -jobs: - publish-docs: - runs-on: windows-latest - steps: - - name: Install .NET - uses: actions/setup-dotnet@v3 - with: - dotnet-version: | - 6.0.x - 8.0.x - - name: Check out code - uses: actions/checkout@v3 - with: - fetch-depth: 0 # required to publish docs - - name: Publish Docs - env: - BUILD_BOT_PASSWORD: ${{ secrets.BUILD_BOT_PASSWORD }} - run: .\build.ps1 publish --no-test --trigger publish-docs diff --git a/.gitignore b/.gitignore index e83df5a..7ec75c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,3 @@ - -*.ncrunchproject -*.ncrunchsolution -launchSettings.json -nCrunchTemp* - # DO NOT EDIT: gitignore-common convention .DS_Store Thumbs.db diff --git a/Directory.Build.props b/Directory.Build.props index 5874106..aeec854 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -3,34 +3,8 @@ 3.9.0 3.8.0 - 12.0 - enable - enable - true $(NoWarn);1591;1998;NU1507;NU5105 - en-US - embedded - FacilityApi - FacilityJavaScript - MIT - https://github.com/$(GitHubOrganization)/$(RepositoryName) - https://github.com/$(GitHubOrganization)/$(RepositoryName)/blob/master/ReleaseNotes.md - https://github.com/$(GitHubOrganization)/$(RepositoryName).git Ed Ball - Copyright $(Authors) - true - true - true - latest-all - true - true - false - false - false - true - true - true - true @@ -45,6 +19,7 @@ MIT + 14.0 diff --git a/Directory.Packages.props b/Directory.Packages.props index 438dd3f..2f8d382 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,7 +1,11 @@ + true + true + true + @@ -9,20 +13,7 @@ - - - - - - - - - true - true - true - - diff --git a/FacilityJavaScript.slnx b/FacilityJavaScript.slnx index d6d48eb..3bf1a69 100644 --- a/FacilityJavaScript.slnx +++ b/FacilityJavaScript.slnx @@ -1,25 +1,6 @@ - - - - - - - - - - - - - - - - - - - diff --git a/FacilityJavaScript.slnx.DotSettings b/FacilityJavaScript.slnx.DotSettings deleted file mode 100644 index a257e31..0000000 --- a/FacilityJavaScript.slnx.DotSettings +++ /dev/null @@ -1,3 +0,0 @@ - - <?xml version="1.0" encoding="utf-16"?><Profile name="Build"><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CppClangTidyCleanupDescriptor /><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="False" ArrangeBraces="False" ArrangeAttributes="False" ArrangeArgumentsStyle="False" ArrangeCodeBodyStyle="False" ArrangeVarStyle="True" ArrangeTrailingCommas="True" /><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings><EmbraceInRegion>False</EmbraceInRegion><RegionName></RegionName></CSOptimizeUsings><CSReformatCode>True</CSReformatCode><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CSShortenReferences>True</CSShortenReferences><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly></Profile> - ES diff --git a/README.md b/README.md index f65d297..eb4a7e8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Facility JavaScript and TypeScript Support [JavaScript and TypeScript support](https://facilityapi.github.io/generate/javascript) for the [Facility API Framework](https://facilityapi.github.io/). -[![Build](https://github.com/FacilityApi/FacilityJavaScript/actions/workflows/build.yaml/badge.svg?branch=master)](https://github.com/FacilityApi/FacilityJavaScript/actions/workflows/build.yaml?query=branch%3Amaster) Name | Description | npm/NuGet --- | --- | --- @@ -15,12 +14,12 @@ Facility.CodeGen.JavaScript | A library that generates JavaScript or TypeScript To run conformance tests, first start one of the conformance servers from within the `/conformance` folder: -``` +```sh npm run fastify ``` Then run the conformance tool against the running service. -``` +```sh npm run test ``` diff --git a/example/js/package-lock.json b/example/js/package-lock.json index 6e94904..9804a48 100644 --- a/example/js/package-lock.json +++ b/example/js/package-lock.json @@ -23,7 +23,7 @@ }, "../../ts": { "name": "facility-core", - "version": "2.3.0", + "version": "2.3.1", "license": "MIT", "devDependencies": { "@types/chai": "^4.2.18", diff --git a/src/Facility.CodeGen.JavaScript/Facility.CodeGen.JavaScript.csproj b/src/Facility.CodeGen.JavaScript/Facility.CodeGen.JavaScript.csproj index d6643a8..89f13ba 100644 --- a/src/Facility.CodeGen.JavaScript/Facility.CodeGen.JavaScript.csproj +++ b/src/Facility.CodeGen.JavaScript/Facility.CodeGen.JavaScript.csproj @@ -6,6 +6,7 @@ Facility FSD JavaScript TypeScript CodeGen true README.md + true diff --git a/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs b/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs index 2b9c32d..e786495 100644 --- a/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs +++ b/src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs @@ -1214,7 +1214,7 @@ private static void WriteJsDoc(CodeWriter code, string? summary, bool isObsolete WriteJsDoc(code, lines); } - private static void WriteJsDoc(CodeWriter code, IReadOnlyList lines) + private static void WriteJsDoc(CodeWriter code, List lines) { if (lines.Count == 1) { diff --git a/src/fsdgenjs/FsdGenJavaScriptApp.cs b/src/fsdgenjs/FsdGenJavaScriptApp.cs index e00a215..34c01bb 100644 --- a/src/fsdgenjs/FsdGenJavaScriptApp.cs +++ b/src/fsdgenjs/FsdGenJavaScriptApp.cs @@ -6,7 +6,7 @@ namespace fsdgenjs { - public sealed class FsdGenJavaScriptApp : CodeGeneratorApp + internal sealed class FsdGenJavaScriptApp : CodeGeneratorApp { public static int Main(string[] args) => new FsdGenJavaScriptApp().Run(args); diff --git a/src/fsdgenjs/fsdgenjs.csproj b/src/fsdgenjs/fsdgenjs.csproj index 47e5eb5..02cc78f 100644 --- a/src/fsdgenjs/fsdgenjs.csproj +++ b/src/fsdgenjs/fsdgenjs.csproj @@ -9,6 +9,7 @@ true Major README.md + true diff --git a/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs b/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs index 7e0182a..9699d80 100644 --- a/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs +++ b/tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs @@ -7,7 +7,7 @@ namespace Facility.CodeGen.JavaScript.UnitTests { - public sealed class JavaScriptGeneratorTests + internal sealed class JavaScriptGeneratorTests { [TestCase(false)] [TestCase(true)] diff --git a/tools/Build/Build.cs b/tools/Build/Build.cs index d1f6c6f..261f0a9 100644 --- a/tools/Build/Build.cs +++ b/tools/Build/Build.cs @@ -2,21 +2,11 @@ { var codegen = "fsdgenjs"; - var gitLogin = new GitLoginInfo("FacilityApiBot", Environment.GetEnvironmentVariable("BUILD_BOT_PASSWORD") ?? ""); - var dotNetBuildSettings = new DotNetBuildSettings { NuGetApiKey = Environment.GetEnvironmentVariable("NUGET_API_KEY"), - DocsSettings = new DotNetDocsSettings - { - GitLogin = gitLogin, - GitAuthor = new GitAuthorInfo("FacilityApiBot", "facilityapi@gmail.com"), - SourceCodeUrl = "https://github.com/FacilityApi/FacilityJavaScript/tree/master/src", - ProjectHasDocs = name => !name.StartsWith("fsdgen", StringComparison.Ordinal), - }, PackageSettings = new DotNetPackageSettings { - GitLogin = gitLogin, PushTagOnPublish = x => $"nuget.{x.Version}", }, }; diff --git a/tools/XmlDocGen/XmlDocGen.csproj b/tools/XmlDocGen/XmlDocGen.csproj deleted file mode 100644 index 0ac3cc2..0000000 --- a/tools/XmlDocGen/XmlDocGen.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - Exe - net8.0 - - - - - - - - - - - diff --git a/tools/XmlDocGen/XmlDocGenApp.cs b/tools/XmlDocGen/XmlDocGenApp.cs deleted file mode 100644 index 893a7df..0000000 --- a/tools/XmlDocGen/XmlDocGenApp.cs +++ /dev/null @@ -1,3 +0,0 @@ -using XmlDocMarkdown.Core; - -return XmlDocMarkdownApp.Run(args); diff --git a/ts/package-lock.json b/ts/package-lock.json index 80cac35..32b5aeb 100644 --- a/ts/package-lock.json +++ b/ts/package-lock.json @@ -1,12 +1,12 @@ { "name": "facility-core", - "version": "2.3.0", + "version": "2.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "facility-core", - "version": "2.3.0", + "version": "2.3.1", "license": "MIT", "devDependencies": { "@types/chai": "^4.2.18", @@ -299,7 +299,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.1.tgz", "integrity": "sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "4.26.1", "@typescript-eslint/types": "4.26.1", @@ -407,7 +406,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -878,7 +876,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", @@ -1901,7 +1898,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true, - "peer": true, "bin": { "prettier": "bin-prettier.js" }, @@ -2360,7 +2356,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", "dev": true, - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2808,7 +2803,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.1.tgz", "integrity": "sha512-q7F3zSo/nU6YJpPJvQveVlIIzx9/wu75lr6oDbDzoeIRWxpoc/HQ43G4rmMoCc5my/3uSj2VEpg/D83LYZF5HQ==", "dev": true, - "peer": true, "requires": { "@typescript-eslint/scope-manager": "4.26.1", "@typescript-eslint/types": "4.26.1", @@ -2867,8 +2861,7 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "peer": true + "dev": true }, "acorn-jsx": { "version": "5.3.1", @@ -3215,7 +3208,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", "dev": true, - "peer": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.2", @@ -3978,8 +3970,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", - "dev": true, - "peer": true + "dev": true }, "prettier-linter-helpers": { "version": "1.0.0", @@ -4280,8 +4271,7 @@ "version": "3.9.9", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", - "dev": true, - "peer": true + "dev": true }, "uri-js": { "version": "4.4.1", From bdeb8846012f743c48777ac8a7ab75994fc325be Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 14:03:02 -0700 Subject: [PATCH 22/23] Delete unnecessary PropertyGroup --- Directory.Build.props | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index aeec854..f2bee21 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -7,11 +7,6 @@ Ed Ball - - $(VersionPrefix).$(BuildNumber) - true - - FacilityApi From 074fa81e9701c2e6cfc3e7f82159b0170799c1d4 Mon Sep 17 00:00:00 2001 From: Ed Ball Date: Fri, 29 May 2026 11:55:13 -0700 Subject: [PATCH 23/23] Publish 3.9.1 --- Directory.Build.props | 4 ++-- ReleaseNotes.md | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index f2bee21..74de0fd 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,8 +1,8 @@ - 3.9.0 - 3.8.0 + 3.9.1 + 3.9.0 $(NoWarn);1591;1998;NU1507;NU5105 Ed Ball diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 3eacdae..3d341bd 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,10 @@ These are the NuGet package releases. See also [npm Release Notes](ReleaseNotesNpm.md). +## 3.9.1 + +* Update NuGet package README. + ## 3.9.0 * Add ability to configure route specific `bodyLimit` in fastify plugin, via the new `routeOptions` property on the plugin constructor.