Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,3 @@ dotnet_diagnostic.IDE0032.severity = none
# Excluded becuase of inconsistency with other analyzers
[*.{cs,vb}]
dotnet_diagnostic.IDE0036.severity = none

# Order modifiers
# https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0036
# Excluded becuase of inconsistency with other analyzers
[*.{cs,vb}]
dotnet_diagnostic.IDE0036.severity = none
114 changes: 75 additions & 39 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,89 @@
# Contributing to Cuemon for .NET
When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.
# Contributing to Cuemon for .NET

Please note we have a code of conduct, please follow it in all your interactions with the project.
This repository is part of the Codebelt .NET library estate. The instructions below describe the current checkout and its CI contract. Please keep changes focused and preserve the shared Codebelt build skeleton unless a deliberate policy change is being made.

## Code of Conduct
Please review our [code of conduct](CODE_OF_CONDUCT.md).
## Before you start

## Our Development Process
We use GitHub with a simple GitFlow inspired flow.
All new features and/or fixes are merged into the `main` branch by creating a Pull Request.
- Read the repository `README.md` and open an issue before starting a non-trivial feature or behavioral change.
- Use an installed .NET SDK that can build the target frameworks listed below. This repository currently targets: **net10.0, net48, net9.0, netstandard2.0, netstandard2.1**.
- The solution is `Cuemon.slnx`. Central package versions are maintained in `Directory.Packages.props`.
- The shared build behavior is in `Directory.Build.props` and `Directory.Build.targets`; repository-specific TFMs, package references and metadata remain local to this library.

## Pull Requests
We actively welcome your pull requests.
## Repository shape

1. Fork the repo and create your branch from `main`
2. If you've added code that should be tested, add tests (DO follow [Microsoft Engineering Guidelines](https://github.com/dotnet/aspnetcore/wiki/Engineering-guidelines))
3. Any changes or additions requires documentation in the form of documenting public members
4. Ensure that all existing as well as new test passes
5. Issue that pull request with a big and heartful thanks for contributing
- `src/` contains production projects.
- `test/` contains xUnit v3 test projects.
- `Cuemon.slnx` is the solution used for local development.
- `.github/workflows/ci-pipeline.yml` is the CI workflow and the authority for the test matrix.
- `testenvironments.json` declares the supported `WSL-Ubuntu` and `Docker-Ubuntu` test environments.

## Issues
We use GitHub issues to track public bugs. Please ensure your description is
clear and has sufficient instructions to be able to reproduce the issue.
## Build

Restore and build the solution from the repository root:

```powershell
dotnet restore "Cuemon.slnx"
dotnet build "Cuemon.slnx" --configuration Release --no-restore
```

CI builds both Debug and Release configurations. A clean build should complete before opening a pull request.

## Test

Run tests one project at a time so a failing or hanging project is attributable. This mirrors the CI matrix; it does not silently turn skipped integration tests into passing tests.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Release loop misses Debug

The shown loop runs only with --configuration Release, but the text says it matches the automated checks, which also run Debug. Contributors can follow this guidance and miss a Debug-specific regression until it is caught remotely. This is a non-blocking documentation concern; either run both configurations locally or describe this as a Release-only validation pass.

Suggested change
Run tests one project at a time so a failing or hanging project is attributable. This mirrors the CI matrix; it does not silently turn skipped integration tests into passing tests.
Run tests one project at a time so a failing or hanging project is attributable. This provides a Release-only validation pass; it does not silently turn skipped integration tests into passing tests.
Artifacts

Evidence from the check

  • Authored Bash script that extracts and compares the documented test configuration with the current workflow test matrices, ending with the configuration-parity result.

Command output from the check

  • Captured output from executing the comparison script in `/home/user/repo`; it shows Release in the documentation and Debug,Release in CI, confirming the mismatch.

View artifacts

T-Rex Ran code and verified through T-Rex

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/CONTRIBUTING.md
Line: 33

Comment:
**Release loop misses Debug**

The shown loop runs only with `--configuration Release`, but the text says it matches the automated checks, which also run Debug. Contributors can follow this guidance and miss a Debug-specific regression until it is caught remotely. This is a non-blocking documentation concern; either run both configurations locally or describe this as a Release-only validation pass.

```suggestion
Run tests one project at a time so a failing or hanging project is attributable. This provides a Release-only validation pass; it does not silently turn skipped integration tests into passing tests.
```

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex


```powershell
$testProjects = Get-ChildItem test -Filter *.csproj -Recurse
$testProjects = $testProjects | Where-Object { $_.BaseName -notin @('Cuemon.Data.SqlClient.Tests') }
foreach ($project in $testProjects) {
dotnet test --project $project.FullName --configuration Release --no-restore
}
```

The CI test plan currently runs **38** project(s) and excludes **1** project(s). The workflow also has an optional macOS test job.

## Integration and infrastructure

- `WSL-Ubuntu` — WSL distribution `Ubuntu-24.04`.
- `Docker-Ubuntu` — Docker image `codebeltnet/ubuntu-testrunner:8-9-10-11`.

## Coding Guidelines
* Please follow Framework Design Guidelines
* Please follow SOLID principles
* Make sure you have familiarized yourself with [Cuemon for .NET - Concept Reference](https://docs.cuemon.net/)
* Consider reading my short take on [Software craftsmanship - a journey with inspirational sources!](https://github.com/gimlichael/Must-Read-Resources)
This repository has `docker-compose.yml` with these services: `database`.

## Manifesto
As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft.
Start the services before running the opt-in integration tests and remove them afterwards:

Through this work we have come to value:
```powershell
docker compose up -d
docker compose down
```

* Not only working software,
but also well-crafted software
* Not only responding to change,
but also steadily adding value
* Not only individuals and interactions,
but also a community of professionals
* Not only customer collaboration,
but also productive partnerships
The normal CI test matrix excludes these integration-dependent projects:
- `Cuemon.Data.SqlClient.Tests`

That is, in pursuit of the items on the left we have found the items on the right to be indispensable.
## Package and documentation

[Manifesto for Software Craftsmanship](https://manifesto.softwarecraftsmanship.org/) is the originator of this text.
Create packages using the same solution and Release configuration:

```powershell
dotnet pack "Cuemon.slnx" --configuration Release --no-restore
```

Package-specific release notes live under `.nuget/<ProjectName>/PackageReleaseNotes.txt` and package README files live beside them. `Directory.Build.targets` imports the release notes during packing. Public API changes also require XML documentation updates; DocFX documentation is built by the repository automation.

## Pull requests

1. Create or join an issue before substantial work, then fork the repository and create a branch from `main`.
2. Add or update focused tests and public API documentation where applicable.
3. Run restore, build, and the relevant per-project tests locally.
4. Keep the pull request small, explain the behavior change and validation performed, and wait for the CI checks to pass.

## Issues

Include the affected project, target framework, operating system, SDK version, exact command, expected result, actual result, and a minimal reproduction. Identify whether the behavior differs between local Windows/WSL, Docker-Ubuntu and GitHub Actions.

## Coding guidelines

Follow the existing style, the Framework Design Guidelines, the repository `.editorconfig`, and the shared Codebelt conventions. Do not make unrelated formatting or infrastructure changes in a feature pull request.

## License
By contributing to Cuemon for .NET, you agree that your contributions will be licensed
under the MIT license.

By contributing to Cuemon for .NET, you agree that your contributions will be licensed under the MIT license.
9 changes: 8 additions & 1 deletion .github/workflows/ci-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,6 @@ jobs:
configuration: ${{ matrix.configuration }}
build-switches: -p:SkipSignAssembly=true
projects: ${{ matrix.project }}
test-arguments: -- RunConfiguration.DisableAppDomain=true
build: true # we need to build for .net48
restore: true # apparently we need to restore for .net48
download-pattern: build-${{ matrix.configuration }}-${{ matrix.arch }}
Expand Down Expand Up @@ -296,7 +295,15 @@ jobs:
env:
CONNECTIONSTRINGS__ADVENTUREWORKS: ${{ secrets.DB_ADVENTUREWORKS }}

- name: Upload Integration Test Results
if: always()
uses: actions/upload-artifact@v7
with:
name: IntegrationTestResults-${{ matrix.configuration }}
path: ${{ runner.temp }}/TestResults

- name: Take down SQL Server test dependency for ${{ matrix.configuration }} build
if: always()
uses: codebeltnet/docker-compose@v1
with:
command: down
Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Core.App/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Core/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Data/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10 and .NET 9

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10 and .NET 9

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
6 changes: 6 additions & 0 deletions .nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
Version: 10.7.1
Availability: .NET 10, .NET 9 and .NET Standard 2.0

# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)

Version: 10.7.0
Availability: .NET 10, .NET 9 and .NET Standard 2.0

Expand Down
Loading
Loading