Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
5298370
update doc libs
Daniel-iel Nov 16, 2025
24f8096
add Spinnerv2 version with span interceptor and huge performance impr…
Daniel-iel Nov 16, 2025
23a7c4c
remove interceptor span, upgrade to dotnet 10, updagrade benchmark, f…
Daniel-iel Nov 21, 2025
b12ae0f
Fixing some broken unit tests and adding safeguards for unmapped prop…
Daniel-iel Nov 22, 2025
2891939
add some unit tests
Daniel-iel Nov 22, 2025
ae16220
documentation update
Daniel-iel Nov 29, 2025
97f8877
update documentation
Daniel-iel Nov 29, 2025
d68e8bc
upgrading documentations and CI
Daniel-iel Nov 29, 2025
026836f
fix dotnet format issue
Daniel-iel Nov 29, 2025
e999abe
fixing dotnet stryke version
Daniel-iel Nov 29, 2025
09f7b7c
fixing stryker CI command
Daniel-iel Nov 29, 2025
a0972b9
fixing stryker CI command
Daniel-iel Nov 29, 2025
ea068a6
fixing path src in mutant test step
Daniel-iel Nov 29, 2025
110acb8
add fixing stryker versions for test
Daniel-iel Nov 29, 2025
52cb30b
for test
Daniel-iel Nov 30, 2025
463ee9d
fo test
Daniel-iel Nov 30, 2025
a611fd1
For test
Daniel-iel Nov 30, 2025
798531b
for test
Daniel-iel Nov 30, 2025
3a6b4ac
fo test
Daniel-iel Nov 30, 2025
2bfcb71
for test
Daniel-iel Nov 30, 2025
407e2d8
for test
Daniel-iel Nov 30, 2025
ecf67a4
for test
Daniel-iel Nov 30, 2025
d5d1153
for test
Daniel-iel Nov 30, 2025
d0f687a
for test
Daniel-iel Nov 30, 2025
87da061
disable the name: Mutant Test because, there is a bug on stryker
Daniel-iel Nov 30, 2025
c6c3453
Fixing interceptor parser
Daniel-iel Nov 30, 2025
ff8c41d
Update bench/Spinner.Benchmark/Helpers/PerfTest.cs
Daniel-iel Nov 30, 2025
73090a3
Fix review issue
Daniel-iel Nov 30, 2025
3e82b4f
Merge branch 'feature/performance-improve' of https://github.com/Dani…
Daniel-iel Nov 30, 2025
23b29bb
Fixing some linter issue
Daniel-iel Nov 30, 2025
3567c10
Fix synk vulnerabilities
Daniel-iel Nov 30, 2025
97d1e31
Fix
Daniel-iel Nov 30, 2025
b3be97e
Fix linter issue
Daniel-iel Nov 30, 2025
a07cd63
fixing code complexity
Daniel-iel Nov 30, 2025
32996d4
change the interceptor implementation and documentation
Daniel-iel Nov 30, 2025
350e9ec
fixing trigger CI-Benchmark
Daniel-iel Nov 30, 2025
f27c451
the CPUUsageDiagnoser only works on windowns
Daniel-iel Nov 30, 2025
28e1af1
Fixing trigger
Daniel-iel Nov 30, 2025
4f27a2d
Fix benchmark error
Daniel-iel Dec 1, 2025
4bc5afc
remove lib ClrHeapAllocationAnalyzer, is not updated anymore, some is…
Daniel-iel Dec 1, 2025
0e1efe6
libs updates
Daniel-iel Dec 1, 2025
26a71ac
Update README.md
Daniel-iel Dec 3, 2025
bf0aa8b
Update README.md
Daniel-iel Dec 3, 2025
0ab2e9a
Update README.md
Daniel-iel Dec 3, 2025
5173083
Update README.md
Daniel-iel Dec 3, 2025
2f9ab50
fix documentation URL
Daniel-iel Dec 6, 2025
6ecd260
Merge branch 'main' into feature/performance-improve
Daniel-iel Dec 6, 2025
29c29ea
add theadsafe tests
Daniel-iel Dec 6, 2025
070d9ae
Improving test coverage
Daniel-iel Dec 7, 2025
b0f37af
improving test coverage
Daniel-iel Dec 7, 2025
89afc92
fixing deepsource issues
Daniel-iel Dec 7, 2025
955e803
fixing snyk issue
Daniel-iel Dec 7, 2025
fcdf5a2
fix snyk issue
Daniel-iel Dec 7, 2025
ca4f2e7
remove codesee
Daniel-iel Dec 7, 2025
774b25c
Fixing tests cases to be compatible with linux and windowns
Daniel-iel Dec 7, 2025
88ddb00
improving test coverage
Daniel-iel Dec 14, 2025
6a6c877
Fixing deepsource issue
Daniel-iel Dec 14, 2025
8d76dd6
Fix documentation
Daniel-iel Dec 25, 2025
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
67 changes: 67 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
name: Bug Report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''
---

## Bug Description

<!-- A clear and concise description of what the bug is -->

## Steps to Reproduce

1.
2.
3.
4.

## Expected Behavior

<!-- What you expected to happen -->

## Actual Behavior

<!-- What actually happened -->

## Code Sample

```csharp
// Minimal code to reproduce the issue
[ObjectMapper(length: 50)]
public class MyClass
{
// Your code here
}

var spinner = new Spinner<MyClass>();
// Steps that cause the bug
```

## Environment

- **Spinner Version:** [e.g., 2.0.0]
- **.NET Version:** [e.g., .NET 8.0]
- **OS:** [e.g., Windows 11, Ubuntu 22.04]
- **IDE:** [e.g., Visual Studio 2022, Rider]

## Stack Trace

<!-- If applicable, add the full stack trace -->

```text
Paste stack trace here
```

## Additional Context

<!-- Add any other context about the problem here -->

## Possible Solution

<!-- Optional: Suggest a fix or reason for the bug -->

## Workaround

<!-- Optional: Describe any workaround you've found -->
72 changes: 72 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
name: Feature Request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Feature Description

<!-- A clear and concise description of the feature you'd like to see -->

## Problem Statement

<!-- Describe the problem this feature would solve -->

Is your feature request related to a problem? Please describe.

## Proposed Solution

<!-- Describe how you envision this feature working -->

## Example Usage

```csharp
// Show how the feature would be used
[ObjectMapper(length: 50)]
public class Example
{
// Your proposed API usage
}
```

## Alternatives Considered

<!-- Describe any alternative solutions or features you've considered -->

## Benefits

<!-- What are the benefits of implementing this feature? -->

-
-
-

## Potential Drawbacks

<!-- Are there any potential drawbacks or concerns? -->

## Implementation Complexity

<!-- Optional: Your assessment of implementation complexity -->

- [ ] Low - Simple change
- [ ] Medium - Moderate effort required
- [ ] High - Significant changes needed

## Willing to Contribute

<!-- Would you be willing to work on this feature? -->

- [ ] Yes, I'd like to implement this feature
- [ ] Yes, I can help with testing
- [ ] No, but I'd like to see it implemented

## Additional Context

<!-- Add any other context, screenshots, or examples about the feature request -->

## Related Issues

<!-- Link to related issues or discussions -->
84 changes: 84 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
## Description

<!-- Provide a clear and concise description of your changes -->

## Type of Change

<!-- Mark the relevant option with an "x" -->

- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] ⚡ Performance improvement
- [ ] 🧪 Test improvement
- [ ] 🔧 Refactoring (no functional changes)

## Related Issues

<!-- Link to related issues using "Fixes #123" or "Closes #456" -->

Fixes #

## Changes Made

<!-- List the specific changes made in this PR -->

-
-
-

## Testing

<!-- Describe how you tested your changes -->

- [ ] All existing tests pass (`dotnet test`)
- [ ] Added new tests for the changes
- [ ] Manually tested the functionality
- [ ] Ran benchmarks (for performance-related changes)
- [ ] Checked for memory leaks or performance regressions

## Checklist

<!-- Mark completed items with an "x" -->

- [ ] My code follows the project's code style and conventions
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings or errors
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published

## Screenshots (if applicable)

<!-- Add screenshots or GIFs to help explain your changes -->

## Additional Notes

<!-- Any additional information that reviewers should know -->

## Performance Impact

<!-- For performance-critical changes, include benchmark results -->

**Before:**

```
Method: ReadFromString
Mean: X ns
Allocated: X B
```

**After:**

```
Method: ReadFromString
Mean: Y ns
Allocated: Y B
```

---

By submitting this PR, I confirm that my contribution is made under the terms of the MIT license.
27 changes: 16 additions & 11 deletions .github/workflows/ci-benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Get Build Version 🏷️
run: |
Expand All @@ -27,29 +27,34 @@ jobs:
shell: pwsh

- name: Setup NuGet 🔧
uses: NuGet/setup-nuget@v1.0.5
uses: NuGet/setup-nuget@v2

- name: Setup .NET Core SDK 6.0 🔧
uses: actions/setup-dotnet@v1
- name: Setup .NET Core SDK 10.0 🔧
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
dotnet-version: 10.0.x

- name: Setup .NET Core SDK 9.0 🔧
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x

- name: Setup .NET Core SDK 8.0 🔧
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.400
dotnet-version: 8.0.x

- name: Clean Dependencies 📦
run: dotnet clean ${{env.PROJECT_BENCH }}
run: dotnet clean ${{env.PROJECT_BENCH}}

- name: Restore Dependencies 📦
run: dotnet restore ${{env.PROJECT_BENCH }}
run: dotnet restore ${{env.PROJECT_BENCH}}

- name: Build ⚙️
run: dotnet build ${{env.PROJECT_BENCH }} -c Release -p:Version=$BUILD_VERSION --no-restore
run: dotnet build ${{env.PROJECT_BENCH}} -c Release -p:Version=$BUILD_VERSION --no-restore

- name: Publish 📮
run: dotnet publish ${{env.PROJECT_BENCH }} -f net8.0 -c Release --verbosity normal -o ./publish.benchmarks/
run: dotnet publish ${{env.PROJECT_BENCH}} -f net10.0 -c Release --verbosity normal -o ./publish.benchmarks/

- name: Run 🏋️‍♂️
if: github.event_name == 'pull_request'
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/ci-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,20 @@ jobs:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: webfactory/ssh-agent@v0.5.0
with:
ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }}
- uses: actions/checkout@v4

- name: Setup Node 🔧
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: "20.x"
cache: "npm"
cache-dependency-path: ./docs/package-lock.json
path: $DOC_FOLDER

- name: Setup SSH Agent 🔑
if: startsWith(github.ref, 'refs/tags/v')
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }}

- name: Restore Dependencies 📦
working-directory: ${{ env.DOC_FOLDER }}
Expand Down
30 changes: 18 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,17 @@ jobs:
APP: "${{ github.workspace }}/src"
PROJECT_TEST: "${{ github.workspace }}/src/Spinner.Test"
PROJECT_SLN: "./src/Spinner.sln"
PROJECT_BIN6: "./src/Spinner/bin/Release/net6.0"
PROJECT_BIN10: "./src/Spinner/bin/Release/net10.0"
PROJECT_BIN9: "./src/Spinner/bin/Release/net9.0"
PROJECT_BIN8: "./src/Spinner/bin/Release/net8.0"

runs-on: ubuntu-latest
strategy:
matrix:
dotnet-version: ["8.0.400"]
dotnet-version: ["10.0.x", "9.0.x", "8.0.x"]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Get Build Version 🏷️
run: |
Expand All @@ -34,10 +35,10 @@ jobs:
shell: pwsh

- name: Setup NuGet 🔧
uses: NuGet/setup-nuget@v1.0.5
uses: NuGet/setup-nuget@v2

- name: Setup .NET Core SDK ${{ matrix.dotnet-version }} 🔧
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.dotnet-version }}

Expand Down Expand Up @@ -68,22 +69,27 @@ jobs:
cd ${{ env.PROJECT_TEST}}
dotnet stryker --reporter "progress"

- name: Run Infer .Net 6.0 🔍
uses: microsoft/infersharpaction@v1.2
- name: Run Infer .NET 10.0 🔍
uses: microsoft/infersharpaction@v1.5
with:
binary-path: ${{ env.PROJECT_BIN6 }}
binary-path: ${{ env.PROJECT_BIN10 }}

- name: Run Infer .Net 8.0 🔍
uses: microsoft/infersharpaction@v1.2
- name: Run Infer .NET 9.0 🔍
uses: microsoft/infersharpaction@v1.5
with:
binary-path: ${{ env.PROJECT_BIN9 }}

- name: Run Infer .NET 8.0 🔍
uses: microsoft/infersharpaction@v1.5
with:
binary-path: ${{ env.PROJECT_BIN8 }}

- name: Codecov 📊
uses: codecov/codecov-action@v2.1.0
uses: codecov/codecov-action@v4
with:
token: ${{secrets.CODECOV_TOKEN}}
directory: ${{ env.PROJECT_TEST }}
file: coverage.opencover.xml
files: coverage.opencover.xml

- name: Publish Package ✉️
if: startsWith(github.ref, 'refs/tags/v')
Expand Down
Loading
Loading