Added CODE_OF_CONDUCT.md and CONTRIBUTING.md files#992
Conversation
📝 WalkthroughWalkthroughThe pull request adds contributor guidance, corrects ChangesDocumentation refresh
Estimated code review effort: 2 (Simple) | ~15 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 13
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CONTRIBUTING.md`:
- Around line 45-50: Correct the spelling errors in the contributor
documentation by replacing “mantainers” with “maintainers” and “mantain” with
“maintain” in the visible contributor guidance text.
In `@README_V2.md`:
- Around line 209-211: Align the benchmark link text and target in the README so
both reference the same filename, preserving the intended row count and column
description for the benchmark document.
- Line 26: Update the Markdown image elements in README_V2.md, including the
.NET Foundation logo, contributor avatar, and contributors image, with
descriptive alt text that conveys their meaning; use an empty alt value only for
images determined to be decorative.
- Around line 201-205: Update the Markdown links in the README, including the
release-notes link near “You can check,” the TODO project link, and the other
referenced occurrences, replacing generic text such as “here” or “Link” with
descriptive destination labels like “release notes” and “project roadmap” while
preserving each existing URL.
- Around line 197-201: Update the upgrade-notes link in the “Release Notes”
section of README_V2.md to use the case-sensitive filename matching the
referenced V2-Upgrade-Notes.md path, preserving the existing link text and
surrounding release-notes content.
- Around line 508-517: Correct the values declaration in the “From a
IEnumerable<IDictionary<string, object>>” example by removing the extra
parentheses after the generic type, while preserving the collection initializer
and exporter usage.
- Around line 561-571: Remove the extra closing parenthesis in the
CommandDefinition example under “5. Dapper Query,” leaving exactly one closing
parenthesis for the constructor so the documented snippet compiles.
- Around line 1140-1153: Add the missing semicolon to the final
templater.ApplyTemplate invocation in the C# example, leaving the surrounding
configuration and usage unchanged.
- Around line 703-720: Fix the null-values example so the Export call does not
reference the undeclared config symbol: either define config before the call or
remove the configuration: config argument, while preserving the documented
default null-to-empty-string behavior.
- Around line 1244-1259: Update the custom formatting example’s value
initializer to instantiate Dto objects instead of Issue241Dto objects, keeping
the existing Name and InDate values unchanged so the sample compiles
consistently with the declared Dto[] type.
- Around line 382-395: Update the casting example in the “Casting dynamic rows
to IDictionary” section so the importer variable declaration uses the same
`excelImporter` name referenced by the subsequent query examples.
- Around line 1567-1593: Update the custom separator example to obtain the CSV
importer through MiniExcel.Importers.GetCsvImporter(), while leaving the
CsvConfiguration and query usage unchanged.
- Around line 213-216: Update the benchmark command in README_V2.md to use the
`--project` option, place BenchmarkDotNet arguments after `--`, and quote the
`*` filter pattern as shown in the review. Preserve the existing Release
configuration, target framework, filter, and join behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: d896132e-4251-41a2-b0e5-39fe84b6eb3d
📒 Files selected for processing (4)
CODE_OF_CONDUCT.mdCONTRIBUTING.mdMiniExcel.slnxREADME_V2.md
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 13
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CONTRIBUTING.md`:
- Around line 45-50: Correct the spelling errors in the contributor
documentation by replacing “mantainers” with “maintainers” and “mantain” with
“maintain” in the visible contributor guidance text.
In `@README_V2.md`:
- Around line 209-211: Align the benchmark link text and target in the README so
both reference the same filename, preserving the intended row count and column
description for the benchmark document.
- Line 26: Update the Markdown image elements in README_V2.md, including the
.NET Foundation logo, contributor avatar, and contributors image, with
descriptive alt text that conveys their meaning; use an empty alt value only for
images determined to be decorative.
- Around line 201-205: Update the Markdown links in the README, including the
release-notes link near “You can check,” the TODO project link, and the other
referenced occurrences, replacing generic text such as “here” or “Link” with
descriptive destination labels like “release notes” and “project roadmap” while
preserving each existing URL.
- Around line 197-201: Update the upgrade-notes link in the “Release Notes”
section of README_V2.md to use the case-sensitive filename matching the
referenced V2-Upgrade-Notes.md path, preserving the existing link text and
surrounding release-notes content.
- Around line 508-517: Correct the values declaration in the “From a
IEnumerable<IDictionary<string, object>>” example by removing the extra
parentheses after the generic type, while preserving the collection initializer
and exporter usage.
- Around line 561-571: Remove the extra closing parenthesis in the
CommandDefinition example under “5. Dapper Query,” leaving exactly one closing
parenthesis for the constructor so the documented snippet compiles.
- Around line 1140-1153: Add the missing semicolon to the final
templater.ApplyTemplate invocation in the C# example, leaving the surrounding
configuration and usage unchanged.
- Around line 703-720: Fix the null-values example so the Export call does not
reference the undeclared config symbol: either define config before the call or
remove the configuration: config argument, while preserving the documented
default null-to-empty-string behavior.
- Around line 1244-1259: Update the custom formatting example’s value
initializer to instantiate Dto objects instead of Issue241Dto objects, keeping
the existing Name and InDate values unchanged so the sample compiles
consistently with the declared Dto[] type.
- Around line 382-395: Update the casting example in the “Casting dynamic rows
to IDictionary” section so the importer variable declaration uses the same
`excelImporter` name referenced by the subsequent query examples.
- Around line 1567-1593: Update the custom separator example to obtain the CSV
importer through MiniExcel.Importers.GetCsvImporter(), while leaving the
CsvConfiguration and query usage unchanged.
- Around line 213-216: Update the benchmark command in README_V2.md to use the
`--project` option, place BenchmarkDotNet arguments after `--`, and quote the
`*` filter pattern as shown in the review. Preserve the existing Release
configuration, target framework, filter, and join behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: d896132e-4251-41a2-b0e5-39fe84b6eb3d
📒 Files selected for processing (4)
CODE_OF_CONDUCT.mdCONTRIBUTING.mdMiniExcel.slnxREADME_V2.md
🛑 Comments failed to post (13)
CONTRIBUTING.md (1)
45-50: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Correct the contributor-documentation spelling errors.
Replace
mantainerswithmaintainersandmantainwithmaintain.🧰 Tools
🪛 LanguageTool
[grammar] ~46-~46: Ensure spelling is correct
Context: ...ly difficult and time-consuming for the mantainers to review them, integrate them appropri...(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~46-~46: Ensure spelling is correct
Context: ...ately into the codebase, and ultimately mantain them indefinitely. ## Questions? Feel...(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~49-~49: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...tain them indefinitely. ## Questions? Feel free to open a discussion or contact the mantai...(FEEL_FREE_TO_STYLE_ME)
[grammar] ~50-~50: Ensure spelling is correct
Context: ...ree to open a discussion or contact the mantainers directly via email if you have further ...(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@CONTRIBUTING.md` around lines 45 - 50, Correct the spelling errors in the contributor documentation by replacing “mantainers” with “maintainers” and “mantain” with “maintain” in the visible contributor guidance text.Source: Linters/SAST tools
README_V2.md (12)
26-26: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add alternate text to meaningful images.
The .NET Foundation logo, contributor avatar, and contributors image currently lack usable alt text. Add descriptive alt text, or use an empty alt value when an image is purely decorative.
Also applies to: 1990-1990, 2002-2002
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 26-26: Images should have alternate text (alt text)
(MD045, no-alt-text)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` at line 26, Update the Markdown image elements in README_V2.md, including the .NET Foundation logo, contributor avatar, and contributors image, with descriptive alt text that conveys their meaning; use an empty alt value only for images determined to be decorative.Source: Linters/SAST tools
197-201: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix the case-sensitive upgrade-notes link.
The link uses
V2-upgrade-notes.md, whileMiniExcel.slnxreferencesV2-Upgrade-Notes.md. GitHub links are case-sensitive, so this currently leads to a 404.🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 201-201: Link text should be descriptive
(MD059, descriptive-link-text)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 197 - 201, Update the upgrade-notes link in the “Release Notes” section of README_V2.md to use the case-sensitive filename matching the referenced V2-Upgrade-Notes.md path, preserving the existing link text and surrounding release-notes content.
201-205: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use descriptive link text.
Replace generic labels such as
hereandLinkwith labels describing the destination, such asrelease notes,project roadmap,benchmark results, anddonation discussion.Also applies to: 219-219, 1996-1997
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 201-201: Link text should be descriptive
(MD059, descriptive-link-text)
[warning] 205-205: Link text should be descriptive
(MD059, descriptive-link-text)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 201 - 205, Update the Markdown links in the README, including the release-notes link near “You can check,” the TODO project link, and the other referenced occurrences, replacing generic text such as “here” or “Link” with descriptive destination labels like “release notes” and “project roadmap” while preserving each existing URL.Source: Linters/SAST tools
209-211: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
Align the benchmark filename and description.
The text says
Test100,000x10.xlsx, but the link targetsTest1,000,000x10.xlsx. Correct either the label or the target so readers know which benchmark file is being referenced.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 209 - 211, Align the benchmark link text and target in the README so both reference the same filename, preserving the intended row count and column description for the benchmark document.
213-216: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash set -euo pipefail printf '\n== README_V2.md excerpt ==\n' sed -n '205,225p' README_V2.md printf '\n== benchmark-related files ==\n' fd -a 'MiniExcel.Benchmarks*' . fd -a '*.csproj' benchmarks . printf '\n== benchmark command references in repo ==\n' rg -n --hidden --glob '!**/bin/**' --glob '!**/obj/**' 'dotnet run|--filter \*|--join|MiniExcel.Benchmarks' README_V2.md benchmarks .Repository: mini-software/MiniExcel
Length of output: 1427
🏁 Script executed:
#!/bin/bash set -euo pipefail printf '\n== Program.cs outline ==\n' ast-grep outline benchmarks/MiniExcel.Benchmarks/Program.cs --view expanded || true printf '\n== Program.cs ==\n' cat -n benchmarks/MiniExcel.Benchmarks/Program.cs printf '\n== csproj ==\n' cat -n benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csprojRepository: mini-software/MiniExcel
Length of output: 3358
README_V2.md:213-216 — Fix the benchmark command
Use--projectinstead of-project, and pass BenchmarkDotNet args after--; quote*so the shell doesn’t expand it:dotnet run --project .\benchmarks\MiniExcel.Benchmarks -c Release -f net9.0 -- --filter "*" --join🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 213 - 216, Update the benchmark command in README_V2.md to use the `--project` option, place BenchmarkDotNet arguments after `--`, and quote the `*` filter pattern as shown in the review. Preserve the existing Release configuration, target framework, filter, and join behavior.
382-395: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
sed -n '382,395p' README_V2.md | cat -nRepository: mini-software/MiniExcel
Length of output: 691
🏁 Script executed:
#!/bin/bash sed -n '382,395p' README_V2.md | cat -nRepository: mini-software/MiniExcel
Length of output: 691
Fix the sample variable name.
excelimporteris later referenced asexcelImporter, which breaks the example.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 382 - 395, Update the casting example in the “Casting dynamic rows to IDictionary” section so the importer variable declaration uses the same `excelImporter` name referenced by the subsequent query examples.
508-517: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
sed -n '500,525p' README_V2.mdRepository: mini-software/MiniExcel
Length of output: 750
Fix the invalid
Listdeclaration.List<Dictionary<string, object>>() valuesis invalid C# syntax; remove the extra().🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 508 - 517, Correct the values declaration in the “From a IEnumerable<IDictionary<string, object>>” example by removing the extra parentheses after the generic type, while preserving the collection initializer and exporter usage.
561-571: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash set -euo pipefail # Inspect the cited range with line numbers and surrounding context sed -n '552,576p' README_V2.md | cat -nRepository: mini-software/MiniExcel
Length of output: 1141
Remove the extra closing parenthesis. The
CommandDefinitionexample closes the constructor twice, so the snippet won’t compile.🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 561-561: Multiple spaces after hash on atx style heading
(MD019, no-multiple-space-atx)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 561 - 571, Remove the extra closing parenthesis in the CommandDefinition example under “5. Dapper Query,” leaving exactly one closing parenthesis for the constructor so the documented snippet compiles.
703-720: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash set -euo pipefail printf '\n=== README_V2.md around lines 680-740 ===\n' sed -n '680,740p' README_V2.md | cat -n printf '\n=== occurrences of "config" in README_V2.md ===\n' rg -n '\bconfig\b' README_V2.mdRepository: mini-software/MiniExcel
Length of output: 4828
Define
configbefore this call The null-handling example passesconfiguration: config, butconfigis only declared in the next snippet. Remove the argument here or move the configuration setup above this export.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 703 - 720, Fix the null-values example so the Export call does not reference the undeclared config symbol: either define config before the call or remove the configuration: config argument, while preserving the documented default null-to-empty-string behavior.
1140-1153: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash set -euo pipefail sed -n '1140,1155p' README_V2.md | cat -nRepository: mini-software/MiniExcel
Length of output: 861
Add the missing semicolon to the C# example. The final
templater.ApplyTemplate(path, templatePath, value, config)line is missing;, so the snippet won’t compile as written.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 1140 - 1153, Add the missing semicolon to the final templater.ApplyTemplate invocation in the C# example, leaving the surrounding configuration and usage unchanged.
1244-1259: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use
Dtoin the formatting example.
valueis declared asDto[], but the elements are instantiated asIssue241Dto. Replace those constructors withnew Dto { ... }so the example compiles as written.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 1244 - 1259, Update the custom formatting example’s value initializer to instantiate Dto objects instead of Issue241Dto objects, keeping the existing Name and InDate values unchanged so the sample compiles consistently with the declared Dto[] type.
1567-1593: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash set -euo pipefail rg -n "GetCsvImporter|GetCsvExporter|namespace MiniExcel\.(Importers|Exporters)|class .*CsvImporter|class .*CsvExporter" .Repository: mini-software/MiniExcel
Length of output: 3494
🏁 Script executed:
#!/bin/bash set -euo pipefail # Show the relevant README block with line numbers sed -n '1550,1605p' README_V2.md # Locate likely source files if present fd -i "CsvImporter|CsvExporter|Importer|Exporter" .Repository: mini-software/MiniExcel
Length of output: 2145
Use
MiniExcel.Importers.GetCsvImporter()here. The importer is exposed onMiniExcel.Importers, notMiniExcel.Exporters.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README_V2.md` around lines 1567 - 1593, Update the custom separator example to obtain the CSV importer through MiniExcel.Importers.GetCsvImporter(), while leaving the CsvConfiguration and query usage unchanged.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CONTRIBUTING.md`:
- Around line 48-50: Update the “Questions?” section in CONTRIBUTING.md to
include the maintainers’ email address or a mailto link, or remove the email
contact option entirely if no address should be provided.
In `@README_V2.md`:
- Around line 211-216: The benchmark command in the README must separate dotnet
run options from BenchmarkDotNet arguments. Update the command to place --
before the benchmark flags and use the documented --filter "*" syntax, while
preserving the existing project, configuration, framework, and --join options.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 63f56eed-8c54-4162-9d59-91a1f494edb1
📒 Files selected for processing (2)
CONTRIBUTING.mdREADME_V2.md
Summary by CodeRabbit