Skip to content

modernize: net8.0, net9.0, net10.0, code optimizations and cleanup.#79

Merged
AGiorgetti merged 14 commits into
developfrom
feature/modernize
Jun 10, 2026
Merged

modernize: net8.0, net9.0, net10.0, code optimizations and cleanup.#79
AGiorgetti merged 14 commits into
developfrom
feature/modernize

Conversation

@AGiorgetti

@AGiorgetti AGiorgetti commented Jun 10, 2026

Copy link
Copy Markdown
Member

Updated NEventStore to 10.2.0

This pull request introduces major improvements to CI/CD automation, security, and developer experience, with new GitHub Actions workflows, security-focused agent and instructions, and supporting configuration for dependency and Docker management. The changes emphasize secure, reproducible builds, least-privilege authentication, and supply chain hardening.

Added explicit support for:

  • net8.0
  • net9.0
  • net10.0

Some Code refactoring and cleanup.

CI/CD Automation and Security:

  • Added a comprehensive CI workflow (.github/workflows/ci.yml) for multi-platform builds and matrix test runs, including secure action pinning, dependency caching, and test artifact upload.
  • Introduced a pack-and-publish workflow (.github/workflows/pack-and-publish.yml) for building and optionally publishing NuGet packages, with secure secret handling and manual trigger support.
  • Added a dependabot configuration (.github/dependabot.yml) to automate updates for GitHub Actions dependencies, improving supply chain security.

Security and Authentication Guidance:

  • Added a GitHub Actions Expert agent (.github/agents/github-actions-expert.agent.md) with best practices for workflow security, action pinning, OIDC, and supply chain hardening.
  • Added detailed instructions and a skill for secure git and GitHub CLI authentication using environment-based PATs, enforcing non-persistence and scope validation (.github/instructions/git-gh-auth.instructions.md, .agents/skills/git-gh-pat-auth/SKILL.md). [1] [2]

Developer Experience:

  • Added VS Code tasks (.vscode/tasks.json) for easy Docker environment setup and .NET builds.
  • Upgraded gitversion.tool to version 6.7.0 for improved versioning support. (.config/dotnet-tools.json)

These changes collectively modernize the repository’s automation, enforce strong security practices, and streamline local development.

AGiorgetti added 13 commits May 12, 2026 12:41
Centralize modern TFMs in Directory.Build.props and update all projects to support net8.0, net9.0, and net10.0. Upgrade BenchmarkDotNet and test dependencies (FluentAssertions, MSTest, NUnit, Microsoft.NET.Test.Sdk). Refactor tests to use FluentAssertions' Should() syntax. Update GitVersion tool and configuration for GitFlow. Add changelog and documentation comments for these changes.
Added nuspec groups for .NET 8.0, 9.0, and 10.0. Increased minimum NEventStore dependency to 10.2.0 (breaking change). Updated changelog. Marked test project with IsTestProject, switched reference group to net472, updated FluentAssertions to 8.9.0, and removed legacy Service entry. Bumped Microsoft.SourceLink.GitHub to 10.0.203. Updated NEventStore submodule.
- Add artifacts/ and .tokensave to .gitignore
- Bump NEventStore submodule to latest commit
- Use mongo:8 image in CI docker-compose files
- Upgrade test dependencies in MongoDB.Core.Tests.csproj
- Update SourceLink.GitHub in MongoDB.Core.csproj
…nctionality

- Introduced `benchmark-snapshot.ps1` script for creating performance snapshots.
- Added various benchmark classes to measure performance of checkpoint generators, duplicate conflicts, global checkpoint reads, and recycle bin reads.
- Implemented async benchmarks for reading from and writing to the event store.
- Enhanced `EventStoreHelpers` to ensure BSON serializers are registered for compatibility.
- Updated project files to support new benchmarks and ensure proper configuration.
- Modified `Program.cs` to utilize `BenchmarkSwitcher` for running benchmarks.
- Added performance notes for per-stream read queries in Changelog.md
- Introduced explain audit script for validating index usage in MongoDB
- Implemented tests to ensure expected indexes are used for various queries
- Added MongoDB snapshot indexes for improved snapshot retrieval
- Refactored MongoPersistenceEngine to optimize query filters and sorting
…sage attributes

- Introduced a new class `MongoPersistenceEngineLogMessages` to centralize logging messages.
- Replaced direct logging calls with structured logging using the new LoggerMessage attributes for better performance and readability.
- Updated various methods in `MongoPersistenceEngine`, `MongoPersistenceWireup`, and related classes to utilize the new logging structure.
- Removed unnecessary logging checks and streamlined the logging process.
- Cleaned up project file by removing obsolete resource configurations related to Messages.resx.
Clarified response style rules in AGENTS.md to disallow openers/closings, emojis, and em-dashes. Updated NEventStore submodule. Upgraded Microsoft.NET.Test.Sdk and MongoDB.Driver versions in test project.
…and benchmarks for MongoDB persistence

- Updated Performance-Investigation.md to reflect current state and findings.
- Added SnapshotAssistedRebuildBenchmarks to compare full and snapshot-assisted rebuilds.
- Refined ReadFromStreamBenchmarks and StreamRevisionWindowBenchmarks for consistency.
- Adjusted benchmark job configurations for improved clarity and performance.
- Fixed minor issues in benchmark scripts and extension methods for better functionality.
@AGiorgetti AGiorgetti changed the title Feature/modernize modernize: net8.0, net9.0, net10.0, code optimizations and cleanup. Jun 10, 2026
@AGiorgetti AGiorgetti merged commit 09f0921 into develop Jun 10, 2026
10 checks passed
@AGiorgetti AGiorgetti deleted the feature/modernize branch June 10, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant