Enhance in-memory reading, benchmarks, and documentation updates - #49
Merged
Conversation
added 9 commits
July 28, 2026 18:37
…ance WorkbookStream handling
… for memory sources
…ursor; improve memory management
- Consolidated real-world XLSX tests into RealWorldXlsxCorpusTests, focusing on genuine producer-exported binaries. - Introduced XlsxDialectShapeTests and XlsxProducerDialectShapeTests for testing known quirks of specific producers with hand-authored XML/ZIP fragments. - Updated WorkbookWriterTests to simplify decimal parsing logic. - Added utility methods in XlsWorkbookBuilder for handling binary data and offsets. - Improved ZipMemoryIndexTests documentation for clarity on in-memory ZIP central-directory reading. - Added a sample XLSX file (sheetjs-sample.xlsx) for testing purposes.
- Introduced a bug report template to streamline issue reporting, including sections for reproduction steps, expected vs actual behavior, and environment details. - Added a feature request template to facilitate suggestions for new features, outlining problem statements, proposed APIs, and alternatives considered. chore: Create pull request template - Established a pull request template to ensure consistency in submissions, including a checklist for build verification, public API changes, and test coverage. ci: Enhance CI workflows - Added a formatting verification step to the CI pipeline for Ubuntu. - Integrated SBOM generation into the release workflow for better dependency tracking. docs: Add architecture documentation - Created an architecture document detailing the codebase structure, format families, shared components, and design decisions. docs: Implement Code of Conduct and Contribution guidelines - Added a Code of Conduct to promote a respectful community environment. - Established contributing guidelines to clarify expectations for contributions, including build requirements and testing protocols. fix: Handle large OLE root entry sizes - Implemented a check to throw an exception if the OLE root entry size exceeds the container's limits, preventing silent failures. test: Add tests for new features and edge cases - Developed tests for XLSX and CSV cancellation during large sheet processing. - Added tests to ensure proper handling of overlong numeric XML entities and forged root entry sizes.
…or handling for empty fixtures
Benchmark ResultsMeasured on ExcelReader.Benchmarks.ColdStartBenchmark
ExcelReader.Benchmarks.CsvParseBenchmark
ExcelReader.Benchmarks.CsvReadBenchmark
ExcelReader.Benchmarks.CsvWriteBenchmark
ExcelReader.Benchmarks.ParseBenchmark
ExcelReader.Benchmarks.ReadBenchmark
ExcelReader.Benchmarks.RealDataReadBenchmark
ExcelReader.Benchmarks.RecordWriteBenchmark
ExcelReader.Benchmarks.WriteBenchmark
ExcelReader.Benchmarks.XlsReadBenchmark
ExcelReader.Benchmarks.XlsWriteBenchmark
|
…attributes for consistency
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #49 +/- ##
==========================================
+ Coverage 88.98% 89.07% +0.08%
==========================================
Files 94 95 +1
Lines 6328 6389 +61
Branches 1192 1200 +8
==========================================
+ Hits 5631 5691 +60
- Misses 460 462 +2
+ Partials 237 236 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements to project documentation, builds, and workflows, focusing on better contributor guidance, CI reliability, and release transparency. Notably, it adds comprehensive documentation for architecture, contributing, and code of conduct, enhances GitHub issue and pull request templates, and improves CI and release workflows with formatting checks and SBOM generation.
Documentation and Contributor Guidance:
ARCHITECTURE.mddescribing the codebase structure, design decisions, and conventions, to help new contributors understand the project quickly.CONTRIBUTING.mdoutlining build/test expectations, API review, test requirements, and how to report bugs/features or security issues.CODE_OF_CONDUCT.mdto set community standards and reporting procedures for unacceptable behavior.CI and Workflow Improvements:
.github/workflows/ci.yml)masteranddevelopbranches, increasing security coverage. (.github/workflows/codeql.yml)Release Process Enhancements:
.github/workflows/release.yml)README and Benchmark Clarifications:
These changes collectively make the project more maintainable, secure, and welcoming for contributors, while improving CI reliability and release artifact transparency.