Skip to content

feat(standards): canonical C#, SQL, Markdown configs (complete the set)#32

Open
WomB0ComB0 wants to merge 1 commit into
mainfrom
feat/standards-configs-csharp-sql-md
Open

feat(standards): canonical C#, SQL, Markdown configs (complete the set)#32
WomB0ComB0 wants to merge 1 commit into
mainfrom
feat/standards-configs-csharp-sql-md

Conversation

@WomB0ComB0

@WomB0ComB0 WomB0ComB0 commented Jun 22, 2026

Copy link
Copy Markdown
Member

Closes the config gap from #31. Adds canonical configs for the remaining standards languages:

File Tool Adopt
dotnet/Directory.Build.props MSBuild / Roslyn analyzers auto-imported from repo root (real inheritance)
sql/.sqlfluff SQLFluff (Postgres) copy to root
.markdownlint.jsonc markdownlint copy to root

config/ now covers every language in docs/standards/02-languages.md. Index updated; 'not yet templated' note retired. Validated (XML/INI/JSONC parse clean).

Summary by CodeRabbit

  • Chores
    • Introduced canonical markdown linting configuration with customized rule settings
    • Introduced canonical SQL formatting configuration with Postgres dialect and spacing standards
    • Introduced canonical .NET build configuration enabling advanced language features and code analysis
    • Updated documentation to catalog new configuration files and guide future additions

Closes the config gap left in #31:
- dotnet/Directory.Build.props  — Nullable, .NET analyzers, code-style-in-build,
                                  warnings-as-errors in CI (auto-imported by MSBuild)
- sql/.sqlfluff                 — SQLFluff, Postgres dialect, lower-case keywords/idents
- .markdownlint.jsonc           — markdownlint tuned for our HTML-hero READMEs

config/ now covers every language in docs/standards. Updated the config index
+ retired the 'not yet templated' note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 97fcb3e0-81b8-4e9c-be78-93f70fb08783

📥 Commits

Reviewing files that changed from the base of the PR and between af25c1c and fa7734d.

📒 Files selected for processing (4)
  • config/.markdownlint.jsonc
  • config/README.md
  • config/dotnet/Directory.Build.props
  • config/sql/.sqlfluff

📝 Walkthrough

Walkthrough

Three canonical configuration files are added under config/: dotnet/Directory.Build.props for .NET MSBuild properties, sql/.sqlfluff for SQLFluff, and .markdownlint.jsonc for markdownlint. config/README.md is updated to register the three new files in the canonical configs table and replace the prior "Not yet templated" section with an "Adding a config" section.

Changes

Canonical Config Files and Documentation

Layer / File(s) Summary
New canonical config files
config/dotnet/Directory.Build.props, config/sql/.sqlfluff, config/.markdownlint.jsonc
Directory.Build.props sets Nullable, ImplicitUsings, LangVersion=latest, Roslyn analyzers at latest-recommended, TreatWarningsAsErrors on CI, and doc file generation. .sqlfluff sets Postgres dialect with Jinja templating, max_line_length=100, 2-space indentation, and lowercase keyword/identifier policies. .markdownlint.jsonc enables defaults while disabling MD013, MD033, MD041 and configuring MD024 (siblings-only) and MD029 (ordered).
README documentation update
config/README.md
Adds rows for dotnet/Directory.Build.props, sql/.sqlfluff, and .markdownlint.jsonc to the canonical configs table, and replaces the "Not yet templated" section with an "Adding a config" section linking to docs/standards/02-languages.md.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • resq-software/.github#31: Also adds canonical config files under config/ and updates config/README.md with new table entries, directly overlapping with this PR's structure and documentation pattern.

Poem

🐇 Hop hop, the configs are here at last,
Markdownlint, SQLFluff, and .NET steadfast!
No more warnings to haunt the CI run,
Canonical rules — for every one!
This bunny rejoices, the linting is done. 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly references adding canonical C#, SQL, and Markdown configs, which matches the three configuration files added in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/standards-configs-csharp-sql-md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds canonical configuration files for markdownlint, .NET (Directory.Build.props), and SQLFluff, and updates the README to document these additions. Feedback has been provided to use the American spelling "capitalization" in the SQLFluff configuration to avoid warnings in newer versions, and to suppress the CS1591 warning in the .NET build properties to prevent CI build failures caused by missing XML comments on public members.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread config/sql/.sqlfluff
Comment on lines +12 to +16
[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = lower

[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In SQLFluff v2.0.0 and later, all rule names and configuration options were renamed from British spelling (capitalisation) to American spelling (capitalization). Using the old spelling will result in configuration warnings or errors in modern SQLFluff versions.

Please update the section headers and configuration keys to use capitalization.

[sqlfluff:rules:capitalization.keywords]
capitalization_policy = lower

[sqlfluff:rules:capitalization.identifiers]
extended_capitalization_policy = lower

Comment on lines +18 to +20
<!-- Treat warnings as errors in CI; keep local dev builds loud-but-green. -->
<TreatWarningsAsErrors Condition="'$(CI)' == 'true'">true</TreatWarningsAsErrors>
<GenerateDocumentationFile>true</GenerateDocumentationFile>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Enabling <GenerateDocumentationFile>true</GenerateDocumentationFile> globally triggers compiler warning CS1591 (Missing XML comment for publicly visible type or member) for all public APIs. Since <TreatWarningsAsErrors> is enabled in CI, this will break the build for any project containing public members without XML comments (which is common in application projects, controllers, etc.).

It is highly recommended to suppress CS1591 globally so that documentation files are still generated (e.g., for Swagger/OpenAPI) without forcing XML comments on every public member.

    <!-- Treat warnings as errors in CI; keep local dev builds loud-but-green. -->
    <TreatWarningsAsErrors Condition="'$(CI)' == 'true'">true</TreatWarningsAsErrors>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <NoWarn>$(NoWarn);1591</NoWarn>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant