Skip to content

Release: caching, scheduling, database, messaging, packaging & docs#1

Merged
tgiachi merged 103 commits into
mainfrom
develop
Jun 22, 2026
Merged

Release: caching, scheduling, database, messaging, packaging & docs#1
tgiachi merged 103 commits into
mainfrom
develop

Conversation

@tgiachi

@tgiachi tgiachi commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Summary

Brings the full develop line to main to trigger a semantic-release. Highlights:

  • Database (SquidStd.Database + .Abstractions): FreeSql data layer — IDataAccess<T> (CRUD/bulk/paging), URI connection strings, transactional writes, ZLinq helpers.
  • Caching (SquidStd.Caching + .Abstractions + .Redis): cache-aside CacheService, in-memory and Redis providers, metrics.
  • Messaging (SquidStd.Messaging + .Abstractions + .RabbitMq): typed queue facade, in-memory and RabbitMQ transports, scheme-based connection strings.
  • Scheduling: cron scheduler + timer-wheel pump (ICronScheduler, RegisterSchedulerServices).
  • Core/Config: IDataSerializer/IDataDeserializer, $ENV_VAR substitution in config, ReplaceEnv.
  • Packaging: per-package NuGet READMEs (logo + usage), <PublishNuget>-driven publish discovery; 15 publishable packages.
  • Docs: DocFX site (API reference + per-package articles) with logo + teal theme, deployed to GitHub Pages via docs.yml.
  • CI: CodeQL, NuGet publish, semantic-release, build/test badges.

Release impact

Conventional commits since v0.1.0: 42 feat, 2 fix (plus docs/refactor/ci/build) → expected minor bump.

Test plan

  • dotnet build + full test suite green (494 tests)
  • DocFX site builds with 0 warnings
  • All publishable packages embed README + icon; no missing-readme warnings
  • On merge: release.yml tags the version, nuget-publish.yml publishes packages, docs.yml deploys the site

tgiachi added 30 commits June 22, 2026 12:04
…st reformatting

- add Services.Core services (EventBus, ConfigManager, JobSystem, TimerWheel, MainThreadDispatcher) and default-services registration
- add config section registration (RegisterConfigSection, IConfigManagerService, ConfigRegistrationData) and IEventBus changes
- add YamlUtils section/runtime-type helpers
- add SquidStd.Scripting.Lua project
- iterate network sessions surface (Session, SessionManager, ISessionManager, UDP client/server)
- reformat and reorganize the test suite
- make IScriptEngineService inherit the SquidStd lifecycle service contract

- expose Lua engine name/version through LuaEngineConfig

- update LuaScriptEngineService start/stop methods to lifecycle signatures
- move Options/Container properties above the constructors
- move DisposeAsync to be the last method
- extract nested BootstrapState enum to Types/BootstrapStateType (internal)
- replace the user-data constructor delegate with a MoonSharp callback

- add Lua scripting coverage for the engine, loader, bridge, modules, and helpers

- reference the Lua scripting project from the test project
- add the local .codegraph index directory to gitignore
- ConfigManagerService: move properties above the constructor; drop ThrowIfNull on the DI container
- EventBusService: extract nested EventDispatch to Internal/EventDispatch.cs; move Dispose last
- JobSystemService: move properties above the constructor; move Dispose last; rename Schedule/Schedule<T> to ScheduleAsync (IJobSystem + tests updated)
- LuaScriptEngineService: reorder members (const first, fields, properties, events, ctor); move Dispose last; drop ThrowIfNull on DI deps; add CancellationToken to ExecuteFunctionAsync/ExecuteScriptFileAsync
- IScriptEngineService: add CancellationToken to ExecuteFunctionAsync
- feat: add metric samples, snapshots, config entry, provider contract, and collection service

- feat: register metrics in default core services and publish collection snapshots through EventBus

- refactor: reuse logger level and rolling interval mapping extensions in bootstrap

- test: cover metrics config, collection, EventBus publish, service registration, and logger mappings
- feat: add storage and secret contracts with config sections
- feat: add file storage, YAML object storage, and AES-GCM secret protection
- feat: register storage and secret services in the core service extensions
- test: cover storage roundtrips, secret encryption, fallback key warning, and DI registration
- refactor: compact forwarding constructors
- refactor: simplify ConfigureServices container validation
- refactor: compact cancellation handling in RunUntilShutdownAsync
tgiachi added 29 commits June 22, 2026 16:35
….RabbitMq and Scripting.Lua with READMEs

- add <PublishNuget>true</PublishNuget> to the four projects
- add NuGet package README to each
- register JsonDataSerializer for IDataSerializer/IDataDeserializer in RegisterCoreServices
- MessageQueue depends on IDataSerializer + IDataDeserializer
- remove IMessageSerializer and JsonMessageSerializer
- in-memory and RabbitMq registrations register the default serializer if absent
- update messaging tests (drop JsonMessageSerializerTests, covered by JsonDataSerializerTests)
- RabbitMq: connection string uses rabbitmq:// scheme (not amqp://)
- Messaging.Abstractions: MessagingOptions has no prefetch (that is RabbitMqOptions)
- add README.md to Caching.Abstractions, Caching and Caching.Redis (auto-packed via Directory.Build.props)
- list the three cache packages in the root packages index
- rename the root README title/logo alt from SquidStd to squid-std
…quivalents

- IEvent summary: 'Orion IRCd event bus' -> 'SquidStd event bus'
- SquidStdUdpClient cref: OrionTcpClient -> SquidStdTcpClient (fixes broken XML doc xref)
- add .NET 10 badge alongside CI/test/coverage
- add Requirements and Quick Start (SquidStdBootstrap usage)
- add Architecture (design principles) and Documentation (DocFX site) sections
- add Contributing and Versioning & Releases sections
- note Docker requirement for integration tests
@tgiachi
tgiachi merged commit 8f80141 into main Jun 22, 2026
2 checks passed
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