Skip to content

Commit fea4d64

Browse files
committed
Remove System.Reactive/DynamicData from core; fused sinks, MinVer, SonarCloud (WIP)
Large work-in-progress branch: replaces System.Reactive operator chains with hand-written allocation-tuned fused sinks, removes the transitive System.Reactive dependency (local Splat project-reference), normalizes files to UTF-8 (no BOM), adds a HashCode polyfill and ISubject shim for the legacy/compat surface, swaps versioning to MinVer, and adds the SonarCloud workflow.
1 parent c585627 commit fea4d64

1,244 files changed

Lines changed: 125181 additions & 77528 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 1434 additions & 241 deletions
Large diffs are not rendered by default.

.github/workflows/ci-build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ jobs:
2121
configuration: Release
2222
productNamespacePrefix: "ReactiveUI"
2323
installWorkloads: true
24+
versioningTool: minver
25+
minverMinimumMajorMinor: '23.2'
2426
secrets:
2527
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/release.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ jobs:
1313
with:
1414
solutionFile: reactiveui.slnx
1515
installWorkloads: true
16+
versioningTool: minver
17+
minverMinimumMajorMinor: '23.2'
1618
secrets:
1719
ES_USERNAME: ${{ secrets.ES_USERNAME }}
1820
ES_PASSWORD: ${{ secrets.ES_PASSWORD }}

.github/workflows/sonarcloud.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: SonarCloud
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
sonarcloud:
14+
uses: reactiveui/actions-common/.github/workflows/workflow-common-sonarcloud.yml@main
15+
with:
16+
productNamespacePrefix: ReactiveUI
17+
installWorkloads: true
18+
versioningTool: minver
19+
minverMinimumMajorMinor: '23.2'
20+
sonarProjectKey: reactiveui_ReactiveUI
21+
sonarOrganization: reactiveui
22+
sonarExclusions: '**/tests/**,**/integrationtests/**,**/Benchmarks/**,**/TestResults/**'
23+
sonarCoverageExclusions: '**/tests/**,**/integrationtests/**,**/Benchmarks/**,**/*Tests/**,**/*Tests.cs,**/Generated/**'
24+
# WhenAny{Value,Change}Sink.Arity{N}.cs, WhenAnyMixin.Arity{N}.cs and
25+
# WhenAnyObservableMixin.Arity{N}.cs are template-style arity-specific files: the
26+
# residual duplication is the irreducible per-arity typed surface (N typed fields,
27+
# N constructor params, N switch arms). Compressing further would need source
28+
# generators or boxing-based erasure; suppressing CPD here keeps the metric honest
29+
# while every other Sonar rule still runs on them. Sonar path matchers only support
30+
# *, **, ? — use ? twice to cover 1- and 2-digit arities.
31+
sonarCpdExclusions: '**/tests/**,**/integrationtests/**,**/Benchmarks/**,**/*.Arity?.cs,**/*.Arity??.cs'
32+
sonarTestExclusions: '**/tests/**,**/integrationtests/**,**/Benchmarks/**'
33+
testTimeout: '15m'
34+
secrets:
35+
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

0 commit comments

Comments
 (0)