From 1dc91c9c82868b5907e838a77fb119fb3efd06d7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 09:01:50 +0100 Subject: [PATCH 01/22] chore(deps): update dotnet monorepo (#77) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 14 +++++++------- global.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 2c3cf46d..247b9dc3 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,10 +4,10 @@ - + - + @@ -21,13 +21,13 @@ - - + + - - + + - + \ No newline at end of file diff --git a/global.json b/global.json index ed07ad8f..6b65fcd2 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.103", + "version": "10.0.200", "rollForward": "latestFeature" } } From f8dd7ef0de6c0737e48199e316ecd0e59cd8cbdd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:00:45 +0100 Subject: [PATCH 02/22] chore(deps): update dotnet monorepo (#78) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 14 +++++++------- global.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 247b9dc3..9e5a4d77 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,10 +4,10 @@ - + - + @@ -21,13 +21,13 @@ - - + + - - + + - + \ No newline at end of file diff --git a/global.json b/global.json index 6b65fcd2..8287d387 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.200", + "version": "10.0.201", "rollForward": "latestFeature" } } From 55a6efbf9d8b5bfef4f901a3eea19c6183e1753d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 09:25:15 +0100 Subject: [PATCH 03/22] chore(deps): update dependency mudblazor to 9.2.0 (#79) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9e5a4d77..8ada28ba 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -26,7 +26,7 @@ - + From 87572eeec6286c7c189da04352a01b46492a97bd Mon Sep 17 00:00:00 2001 From: "Ritchie (CTO)" Date: Thu, 26 Mar 2026 08:08:10 +0000 Subject: [PATCH 04/22] docs: add COMMERCIAL.md with enterprise pricing tiers and licensing strategy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces commercial licensing tiers for proprietary/fintech use cases: - Developer (€299/yr), Professional (€999/yr), Enterprise (€3,999+/yr) - FAQ addressing GPL-3.0 implications for commercial users - Placeholder section for upcoming Cloud API offering - Custom consulting/indicator development offering Addresses Sprint 1 pricing strategy (issue #7) and supports the v1.0 enterprise launch roadmap (issue #63). --- COMMERCIAL.md | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 COMMERCIAL.md diff --git a/COMMERCIAL.md b/COMMERCIAL.md new file mode 100644 index 00000000..2556a5ac --- /dev/null +++ b/COMMERCIAL.md @@ -0,0 +1,109 @@ +# πŸ’Ό TaLibStandard β€” Commercial & Enterprise + +TaLibStandard is **open source** (GPL-3.0) for individual and research use. +For commercial applications, we offer flexible licensing and support options. + +--- + +## 🎯 Who Is This For? + +| Use Case | License | +|---|---| +| Personal projects, research, academic use | βœ… GPL-3.0 (free) | +| Startup / bootstrapped product | βœ… GPL-3.0 (free, GPL terms apply) | +| Commercial SaaS or proprietary software | πŸ’Ό Commercial license required | +| Trading firm / hedge fund / prop shop | 🏒 Enterprise license | +| Cloud API or hosted service | ☁️ Enterprise / OEM license | + +> **GPL-3.0 means:** If you distribute a product that includes TaLibStandard, your product must also be open source under GPL-3.0. If you need to keep your code proprietary, a commercial license removes this requirement. + +--- + +## πŸ“¦ Licensing Tiers + +### πŸ₯‰ Developer License β€” €299 / year +> For independent developers and small teams (≀ 3 developers) + +- Commercial use in proprietary applications +- Email support (48h response) +- Access to all future versions in the license year +- Named-developer license (non-transferable) + +--- + +### πŸ₯ˆ Professional License β€” €999 / year +> For companies and teams of up to 10 developers + +- Everything in Developer +- Priority email support (24h response) +- Integration guidance session (1h/year) +- Up to 10 developer seats +- Use in multiple commercial projects + +--- + +### πŸ₯‡ Enterprise License β€” from €3,999 / year +> For hedge funds, prop trading firms, fintech companies, and larger teams + +- Everything in Professional +- Unlimited developer seats +- Dedicated support channel (Slack / Teams) +- SLA: critical bugs fixed within 5 business days +- Architecture review session (2h/year) +- Custom indicator development (available as add-on) +- OEM redistribution rights available + +--- + +### ☁️ Cloud API (coming soon) +> Hosted TaLibStandard as a service β€” no .NET required + +- REST + gRPC endpoints for all 200+ indicators +- Pay-per-call pricing model +- SDKs for Python, JavaScript, Rust (planned) +- Ideal for: non-.NET stacks, serverless, backtesting pipelines + +--- + +## 🀝 Custom Development + +Need an indicator that doesn't exist yet? Custom backtesting integration? Real-time SignalR feed? + +We offer **paid consulting** for: +- Custom indicator development +- Integration with trading platforms (TradingView, MT4/MT5, Interactive Brokers) +- Performance optimization for high-frequency workloads +- Quant workshop training (remote or on-site) + +--- + +## πŸ“© How to Purchase or Inquire + +1. **Open an issue** with the label `[commercial]` in this repository, or +2. **Contact us directly:** [atypical.consulting](https://atypical.garry-ai.cloud) + +We typically respond within 1 business day. + +--- + +## πŸ” FAQ + +**Q: Can I evaluate TaLibStandard in a commercial project before purchasing?** +A: Yes. You can use the GPL-3.0 version for a 30-day evaluation. After 30 days, a commercial license is required for production use in proprietary systems. + +**Q: Does the commercial license cover NuGet packages?** +A: Yes β€” `Atypical.TechnicalAnalysis.Functions` and `Atypical.TechnicalAnalysis.Candles` are both covered. + +**Q: What happens if I upgrade my team size?** +A: Contact us. We'll prorate the upgrade to your current license period. + +**Q: Is source code access included?** +A: Yes β€” the source is on GitHub. The commercial license grants you the right to use it in proprietary software, not a separate private build. + +**Q: Do you offer volume discounts for multi-year contracts?** +A: Yes. Contact us for multi-year or multi-product quotes. + +--- + +_Atypical Consulting SRL β€” BE 0744.517.956 β€” Belgium_ +_Built with care for the algorithmic trading community._ From 22a194dfe7eea33842e9b6b0c9099236465d7671 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jun 2026 18:34:02 +0000 Subject: [PATCH 05/22] chore(deps): update dependency defaultdocumentation to 1.2.5 (#87) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 8ada28ba..9a503539 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,7 +10,7 @@ - + From 241d20b7aa07d463bf42b5b46028566f4ab890ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jun 2026 21:52:25 +0000 Subject: [PATCH 06/22] chore(deps): update actions/checkout action to v6.0.3 (#86) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci-cd.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index a0a31d0f..60ac138c 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -23,7 +23,7 @@ jobs: dotnet-version: ['10.0.x'] steps: - - uses: actions/checkout@v6.0.2 + - uses: actions/checkout@v6.0.3 with: fetch-depth: 0 # Full history for MinVer @@ -55,7 +55,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6.0.2 + uses: actions/checkout@v6.0.3 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} From 2f92a22db74a951a5ea1e53816d2ddb10f3d05f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 02:28:52 +0000 Subject: [PATCH 07/22] chore(deps): update dependency microsoft.testing.extensions.codecoverage to 18.8.0 (#88) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9a503539..c2eae4c3 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -15,7 +15,7 @@ - + From 41197b7b6e45fc04af2508b2dba1775b2633f8b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 04:41:29 +0000 Subject: [PATCH 08/22] chore(deps): update dependency mudblazor to 9.5.0 (#89) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index c2eae4c3..26caf5a9 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -26,7 +26,7 @@ - + From 79d4016f702381bad63271a9ee373dd3096c2b12 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jun 2026 09:53:58 +0000 Subject: [PATCH 09/22] chore(deps): update vstest monorepo to 18.6.0 (#90) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 26caf5a9..a8724f1f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -14,7 +14,7 @@ - + From e1150d5fae6aac4e25152eb578fb0931d00348a3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 08:01:55 +0000 Subject: [PATCH 10/22] chore(deps): update dependency dotnet.reproduciblebuilds to 2.0.5 (#92) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index a8724f1f..3b6e7728 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,7 +6,7 @@ - + From 9552be03fab32564c7694f67e4e1895dee443409 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 13:43:53 +0000 Subject: [PATCH 11/22] chore(deps): update vstest monorepo (#93) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 3b6e7728..91613b7d 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -14,7 +14,7 @@ - + From 74b90e32d108135af1cc8d632a8afe15493e3bd7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jun 2026 09:37:41 +0000 Subject: [PATCH 12/22] chore(deps): update dependency mudblazor to 9.6.0 (#94) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 91613b7d..f4b4dc23 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -26,7 +26,7 @@ - + From d51d51ff033924e06b6432f1058be4b5f7062354 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2026 18:55:27 +0000 Subject: [PATCH 13/22] chore(deps): update dependency microsoft.testing.extensions.codecoverage to 18.9.0 (#95) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index f4b4dc23..10fb4b36 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -15,7 +15,7 @@ - + From dce12a699dc31e382efaf7598553f05143222137 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:15:11 +0000 Subject: [PATCH 14/22] chore(deps): update dependency mudblazor to 9.7.0 (#96) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 10fb4b36..a279ba5e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -26,7 +26,7 @@ - + From b6163171b5e557486871aa1b8ab4c6d2cf283bfc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 Jul 2026 19:49:28 +0000 Subject: [PATCH 15/22] chore(deps): update dependency microsoft.net.test.sdk to 18.8.1 (#97) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index a279ba5e..79f2303e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -14,7 +14,7 @@ - + From 6b8e4bee24b942cded225b88c6cb59463b3b75e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 05:16:11 +0000 Subject: [PATCH 16/22] chore(deps): update actions/checkout action to v6.1.0 (#99) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ci-cd.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 60ac138c..0de91ebb 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -23,7 +23,7 @@ jobs: dotnet-version: ['10.0.x'] steps: - - uses: actions/checkout@v6.0.3 + - uses: actions/checkout@v6.1.0 with: fetch-depth: 0 # Full history for MinVer @@ -55,7 +55,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6.0.3 + uses: actions/checkout@v6.1.0 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} From 42d03634d0e3ac2960038131f341c5d5d70a0d10 Mon Sep 17 00:00:00 2001 From: Philippe Matray Date: Thu, 23 Jul 2026 19:47:12 +0200 Subject: [PATCH 17/22] chore: add branded README banner --- .github/banner.png | Bin 0 -> 103716 bytes README.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 .github/banner.png diff --git a/.github/banner.png b/.github/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..fe91ad5cc0086ba21d608d2d0db3b49ef7313da4 GIT binary patch literal 103716 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%0DYJU3~Fk1SZM%>l4@6fqluQyo)~KN5K0&eG< Date: Thu, 23 Jul 2026 21:22:13 +0200 Subject: [PATCH 18/22] docs: add Tech Stack section derived from project manifests --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index babe2893..fe1df40b 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,20 @@ View our Codacy metrics [here](https://app.codacy.com/gh/phmatray/TaLibStandard) For reporting bugs or suggesting new features, kindly submit these as an issue to the [TaLibStandard Repository](https://github.com/phmatray/TaLibStandard/issues). We value your contributions, but before submitting an issue, please ensure it is not a duplicate of an existing one. + + +## Tech Stack + +- **.NET 10** +- Microsoft.AspNetCore.Components.WebAssembly +- Microsoft.AspNetCore.Components.WebAssembly.DevServer +- Microsoft.DotNet.HotReload.WebAssembly.Browser +- MudBlazor +- PublishSPAforGitHubPages.Build +- DefaultDocumentation + + + ## 🀝 Contributing We welcome contributions from the community! If you'd like to contribute to TaLibStandard, please fork the repository and submit a pull request. For major changes, please open an issue first to discuss what you would like to change. From a5b2745694e67bdcc643d4286e66292e9b88fb26 Mon Sep 17 00:00:00 2001 From: Philippe Matray Date: Thu, 23 Jul 2026 21:27:29 +0200 Subject: [PATCH 19/22] docs: add Usage section --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/README.md b/README.md index fe1df40b..deabc41d 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,65 @@ dotnet add package Atypical.TechnicalAnalysis.Candles dotnet add package Atypical.TechnicalAnalysis.Functions ``` +## πŸ§‘β€πŸ’» Usage + +TaLibStandard exposes two APIs on the same indicator: a low-level `TAFunc` API that mirrors the +original TA-Lib C signature (`ref`/`in` parameters, pre-allocated output arrays), and a higher-level +`TAMath` API that wraps it and returns a strongly-typed result record. + +### High-level API (`TAMath`) + +```csharp +using TechnicalAnalysis.Functions; + +double[] closingPrices = [.. /* your OHLCV data */]; + +// RsiResult exposes RetCode, BegIdx, NBElement and the Real[] output array +RsiResult rsi = TAMath.Rsi(0, closingPrices.Length - 1, closingPrices, timePeriod: 14); + +if (rsi.RetCode == RetCode.Success) +{ + double latestRsi = rsi.Real[^1]; // most recent RSI value +} +``` + +### Low-level API (`TAFunc`) β€” original TA-Lib signature + +```csharp +using TechnicalAnalysis.Functions; + +double[] closes = [.. data.Select(d => (double)d.Close)]; +double[] outReal = new double[closes.Length]; +int outBegIdx = 0; +int outNbElement = 0; +int period = 14; + +RetCode result = TAFunc.Rsi( + 0, closes.Length - 1, + in closes, + in period, + ref outBegIdx, + ref outNbElement, + ref outReal); + +double[] rsiValues = outReal.Take(outNbElement).ToArray(); +``` + +### Candlestick pattern recognition + +```csharp +using TechnicalAnalysis.Candles; + +// Detects the "Short Line" candle pattern over the given OHLC arrays +CandleIndicatorResult pattern = TACandle.CdlShortLine( + 0, closes.Length - 1, opens, highs, lows, closes); +``` + +Both `TAFunc` and `TAMath` overloads are generic-math friendly and accept `double[]` or `float[]` +inputs. See the [full function list](./docs/functions.md) for every available indicator and +candlestick pattern, and the [Demo.BlazorWasm](./Demo.BlazorWasm) project for a working end-to-end +example that charts these indicators. + ## πŸ“Š Code Quality We strive for the highest code quality in TaLibStandard, leveraging Codacyβ€”an automated code analysis/quality tool. Codacy provides static analysis, cyclomatic complexity measures, duplication identification, and code unit test coverage changes for every commit and pull request. From bc3731b0ee821fc84afd307eba15a67c79f9e9b9 Mon Sep 17 00:00:00 2001 From: Philippe Matray Date: Fri, 24 Jul 2026 17:31:28 +0200 Subject: [PATCH 20/22] chore: add house-style .editorconfig --- .editorconfig | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..9ccfc05e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,195 @@ +# EditorConfig β€” portfolio house style (.NET) Β· https://editorconfig.org +# Curated from the conventions shared across the reference repos (Koine, +# DotnetChain, MasterCommander): LF, UTF-8, 4-space indent, file-scoped +# namespaces, Allman braces, sorted usings, _camelCase private fields. +# Severities are capped at `warning` β€” this guides the IDE and `dotnet format`, +# it never fails a build on its own. +root = true + +# --------------------------------------------------------------------------- +# All files +# --------------------------------------------------------------------------- +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 + +# Data / project / markup files use 2-space indent +[*.{json,jsonc,yml,yaml,xml,csproj,fsproj,props,targets,slnx,config,razor}] +indent_size = 2 + +[*.{ts,tsx,js,jsx,css,scss,html}] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false # trailing two spaces are meaningful line breaks + +[Makefile] +indent_style = tab + +# --------------------------------------------------------------------------- +# C# conventions +# --------------------------------------------------------------------------- +[*.cs] +indent_size = 4 +max_line_length = 140 + +# --- Language / usings --- +csharp_using_directive_placement = outside_namespace:warning +dotnet_sort_system_directives_first = true +dotnet_separate_import_directive_groups = false +csharp_style_namespace_declarations = file_scoped:warning + +# --- this. qualification (never qualify with this.) --- +dotnet_style_qualification_for_field = false:warning +dotnet_style_qualification_for_property = false:warning +dotnet_style_qualification_for_method = false:warning +dotnet_style_qualification_for_event = false:warning + +# --- var / type preferences --- +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +csharp_style_var_elsewhere = false:suggestion + +# --- expression-bodied members --- +csharp_style_expression_bodied_methods = when_on_single_line:suggestion +csharp_style_expression_bodied_constructors = false:suggestion +csharp_style_expression_bodied_operators = when_on_single_line:suggestion +csharp_style_expression_bodied_properties = true:suggestion +csharp_style_expression_bodied_accessors = true:suggestion +csharp_style_expression_bodied_lambdas = true:suggestion + +# --- modern C# idioms --- +csharp_prefer_braces = true:warning # always brace if/else/for/while, even single-statement bodies +csharp_style_prefer_switch_expression = true:suggestion +csharp_style_prefer_pattern_matching = true:suggestion +csharp_style_pattern_matching_over_is_with_cast_check = true:warning +csharp_style_pattern_matching_over_as_with_null_check = true:warning +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion +csharp_prefer_simple_using_statement = true:suggestion +csharp_style_prefer_index_operator = true:suggestion +csharp_style_prefer_range_operator = true:suggestion +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_auto_properties = true:warning +dotnet_style_null_propagation = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_readonly_field = true:warning + +# --- accessibility & modifiers --- +dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning +csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async:warning +dotnet_style_predefined_type_for_locals_parameters_members = true:warning +dotnet_style_predefined_type_for_member_access = true:warning + +# --- new-line / brace formatting (Allman) --- +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true + +# --- indentation / spacing / wrapping --- +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = one_less_than_current +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_around_binary_operators = before_and_after +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = false + +# --- unnecessary-code preferences --- +dotnet_code_quality_unused_parameters = non_public:suggestion +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +csharp_style_unused_value_expression_statement_preference = discard_variable:silent + +# --------------------------------------------------------------------------- +# Naming conventions +# --------------------------------------------------------------------------- +# Types & namespaces: PascalCase +dotnet_naming_rule.types_pascal.severity = warning +dotnet_naming_rule.types_pascal.symbols = types_and_namespaces +dotnet_naming_rule.types_pascal.style = pascal_case +dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace,class,struct,interface,enum,delegate +dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = * + +# Interfaces: IPascalCase +dotnet_naming_rule.interfaces_i_prefix.severity = warning +dotnet_naming_rule.interfaces_i_prefix.symbols = interfaces +dotnet_naming_rule.interfaces_i_prefix.style = i_pascal_case +dotnet_naming_symbols.interfaces.applicable_kinds = interface +dotnet_naming_style.i_pascal_case.required_prefix = I +dotnet_naming_style.i_pascal_case.capitalization = pascal_case + +# Type parameters: TPascalCase +dotnet_naming_rule.type_params_t_prefix.severity = warning +dotnet_naming_rule.type_params_t_prefix.symbols = type_parameters +dotnet_naming_rule.type_params_t_prefix.style = t_pascal_case +dotnet_naming_symbols.type_parameters.applicable_kinds = type_parameter +dotnet_naming_style.t_pascal_case.required_prefix = T +dotnet_naming_style.t_pascal_case.capitalization = pascal_case + +# Public members: PascalCase +dotnet_naming_rule.public_members_pascal.severity = warning +dotnet_naming_rule.public_members_pascal.symbols = public_members +dotnet_naming_rule.public_members_pascal.style = pascal_case +dotnet_naming_symbols.public_members.applicable_kinds = property,method,field,event +dotnet_naming_symbols.public_members.applicable_accessibilities = public,internal,protected,protected_internal + +# Constants: PascalCase +dotnet_naming_rule.constants_pascal.severity = warning +dotnet_naming_rule.constants_pascal.symbols = constants +dotnet_naming_rule.constants_pascal.style = pascal_case +dotnet_naming_symbols.constants.applicable_kinds = field +dotnet_naming_symbols.constants.required_modifiers = const + +# Private/internal instance fields: _camelCase +dotnet_naming_rule.private_fields_underscore.severity = warning +dotnet_naming_rule.private_fields_underscore.symbols = private_fields +dotnet_naming_rule.private_fields_underscore.style = underscore_camel_case +dotnet_naming_symbols.private_fields.applicable_kinds = field +dotnet_naming_symbols.private_fields.applicable_accessibilities = private,private_protected +dotnet_naming_style.underscore_camel_case.required_prefix = _ +dotnet_naming_style.underscore_camel_case.capitalization = camel_case + +# Static readonly private fields may be PascalCase β€” keep lenient +dotnet_naming_rule.static_private_fields_pascal.severity = silent +dotnet_naming_rule.static_private_fields_pascal.symbols = static_private_fields +dotnet_naming_rule.static_private_fields_pascal.style = pascal_case +dotnet_naming_symbols.static_private_fields.applicable_kinds = field +dotnet_naming_symbols.static_private_fields.applicable_accessibilities = private +dotnet_naming_symbols.static_private_fields.required_modifiers = static,readonly + +# Locals & parameters: camelCase +dotnet_naming_rule.locals_camel.severity = suggestion +dotnet_naming_rule.locals_camel.symbols = locals_and_params +dotnet_naming_rule.locals_camel.style = camel_case +dotnet_naming_symbols.locals_and_params.applicable_kinds = parameter,local + +# Shared style definitions +dotnet_naming_style.pascal_case.capitalization = pascal_case +dotnet_naming_style.camel_case.capitalization = camel_case + +# --------------------------------------------------------------------------- +# Generated code β€” expected to respect the rules, but analysis is skipped +# --------------------------------------------------------------------------- +[**/{Generated,generated}/**.cs] +generated_code = true + +# --------------------------------------------------------------------------- +# Tests β€” relax rules that fight common test idioms +# --------------------------------------------------------------------------- +[**/*{Tests,Test,Specs}/**.cs] +dotnet_diagnostic.IDE0058.severity = none # expression value never used (Assert/builder calls) From 632c3d2ebf5b782334b7a44e6660a79acf2acb6a Mon Sep 17 00:00:00 2001 From: Philippe Matray Date: Fri, 24 Jul 2026 23:20:42 +0200 Subject: [PATCH 21/22] chore(renovate): extend the shared ci preset --- renovate.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/renovate.json b/renovate.json index 20532c22..129c8a44 100644 --- a/renovate.json +++ b/renovate.json @@ -1,16 +1,6 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:recommended" - ], - "platformAutomerge": true, - "packageRules": [ - { - "matchUpdateTypes": [ - "minor", - "patch" - ], - "automerge": true - } + "local>phmatray/.github:renovate-ci" ] } From d898101fce2e7e98c361674e3bb3c9b4a5ec36d0 Mon Sep 17 00:00:00 2001 From: Philippe Matray Date: Sat, 25 Jul 2026 15:28:39 +0200 Subject: [PATCH 22/22] ci: trigger on pull requests to the actual default branch (#101) --- .github/workflows/ci-cd.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 0de91ebb..5c462ec8 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -4,7 +4,6 @@ on: push: branches: [ main, develop ] pull_request: - branches: [ main ] workflow_dispatch: permissions: