Defining a successor to GraphQL
GraphQL+ is a .NET implementation of a parser, merging verifier, and modeller for GraphQL+ schemas and queries.
- C# with modern language features enabled
- Source projects target .NET Standard 2.0
- Test projects target .NET 10.0, 9.0, and 8.0
- Nullable reference types are enabled
- File-scoped namespaces are preferred
- xUnit v3
- AutoFixture with AutoData
- NSubstitute
- Shouldly
- Verify
dotnet restore
dotnet build
./test.ps1
./test.ps1 -ClassTests
./test.ps1 -Framework "10.0"
./format.ps1
./coverage.ps1format.ps1 runs Prettier for non-C# files, then dotnet format whitespace, dotnet format style, and dotnet format analyzers.
- AutoFixture nuget
- Fluid nuget
- PolySharp nuget
- Shouldly nuget
- Verify nuget
- XUnit v3 nuget
- YamlDotNet nuget
Various scripts presume these dotnet tools are installed globally:
For repository-wide coding style, see Style-Guide.md.
For development conventions including testing standards, see Conventions.md.
For agent workflow guidance, see AGENTS.md.
-
Source Generators
A small PowerShell script is provided to verify that all local links reachable from
test/Html/index.htmlexist on disk.Usage (from repo root):
powershell -NoProfile -ExecutionPolicy Bypass -File .\check-links.ps1 \ -Entry test/Html/index.html -Root test/Html -Verbose
The script:
- follows only local links (ignores
http(s):,mailto:,tel:,data:and protocol-relative//links) - recurses only into HTML files under
test/Html - ignores fragment-only links (e.g.
#anchor) and does not validate in-page anchors - returns exit code
1when broken links are found (suitable for CI)
Example GitHub Actions job snippet:
- name: Check out repository uses: actions/checkout@v4 - name: Check local HTML links run: pwsh -NoProfile -NonInteractive -ExecutionPolicy Bypass -File ./check-links.ps1 -Entry test/Html/index.html -Root test/Html
- follows only local links (ignores