Skip to content

fix(framework): restore Compendium.Abstractions.Storage assembly (bug e263abc6)#110

Merged
Pomdapis merged 1 commit into
mainfrom
fix/restore-abstractions-storage
May 18, 2026
Merged

fix(framework): restore Compendium.Abstractions.Storage assembly (bug e263abc6)#110
Pomdapis merged 1 commit into
mainfrom
fix/restore-abstractions-storage

Conversation

@Pomdapis
Copy link
Copy Markdown
Contributor

Summary

Fixes VK bug e263abc6 — `Compendium.Abstractions.Storage` was added by PR #69 then accidentally lost in the squash + a subsequent sln edit, so the assembly never shipped to nuget despite PR #69 claiming 44 tests at 100% coverage.

This commit restores the 17 files from `4869762` (the original feature-branch tip) verbatim and re-adds the two `.sln` entries.

Files restored

```
src/Abstractions/Compendium.Abstractions.Storage/
Compendium.Abstractions.Storage.csproj
GlobalUsings.cs
IObjectStore.cs
Models/ListOptions.cs, ObjectInfo.cs, ObjectMetadata.cs, ObjectStream.cs, PresignedAction.cs
StorageErrors.cs

tests/Unit/Compendium.Abstractions.Storage.Tests/
Compendium.Abstractions.Storage.Tests.csproj
GlobalUsings.cs
Models/{ListOptions,ObjectInfo,ObjectMetadata,ObjectStream,PresignedAction}Tests.cs
StorageErrorsTests.cs
```

Verification

  • `dotnet build src/Abstractions/Compendium.Abstractions.Storage` → 0 warnings, 0 errors.
  • `dotnet test tests/Unit/Compendium.Abstractions.Storage.Tests` → 44/44 green (100% line + branch coverage on the surface).
  • `Compendium.sln` lists both projects under Abstractions/Tests solution folders.
  • Full sln build still green; no regression in existing tests.

What unlocks

  • After merge → tag `v1.0.2` → `Compendium.Abstractions.Storage@1.0.2` ships to nuget (along with all other Compendium.* at 1.0.2; mechanical re-tag).
  • Follow-up PR on `compendium-adapter-s3` removes its inlined `IObjectStore` types and binds `<PackageReference Include="Compendium.Abstractions.Storage" Version="1.0.2" />`.
  • `compendium-adapter-azure-blob` (POM-519) + `compendium-adapter-gcs` (POM-520) are now unblocked.

Test plan

  • CI green.
  • Visual check of restored files matches `git show 4869762` (it does — git checkout 4869762 -- ...).

… e263abc6)

PR #69 ("feat(abstractions/storage): define IObjectStore port") merged on
2026-05-10 with 18 files (csproj + IObjectStore + supporting types + 6 test
files). The squash silently dropped all 17 source/test files and kept only
the `Compendium.sln` change. A subsequent PR then stripped the orphan sln
entries pointing at non-existent projects.

End result: the assembly never shipped to nuget despite the PR claiming
"100% line / 100% branch / 44 tests green". `compendium-adapter-s3` (POM-514)
just shipped 1.0.0-preview.0 with the `IObjectStore` types inlined locally
under `Compendium.Adapters.S3.Abstractions` as a workaround.

This commit restores the 17 files from `4869762` (the original feature-branch
tip) verbatim and re-adds the two `.sln` entries:

  src/Abstractions/Compendium.Abstractions.Storage/
    Compendium.Abstractions.Storage.csproj
    GlobalUsings.cs
    IObjectStore.cs
    Models/ListOptions.cs, ObjectInfo.cs, ObjectMetadata.cs, ObjectStream.cs, PresignedAction.cs
    StorageErrors.cs

  tests/Unit/Compendium.Abstractions.Storage.Tests/
    Compendium.Abstractions.Storage.Tests.csproj
    GlobalUsings.cs
    Models/{ListOptions,ObjectInfo,ObjectMetadata,ObjectStream,PresignedAction}Tests.cs
    StorageErrorsTests.cs

Verification:
- dotnet build src/Abstractions/Compendium.Abstractions.Storage → 0 warnings.
- dotnet test tests/Unit/Compendium.Abstractions.Storage.Tests → 44/44 green.

Next steps after this merges:
- Tag v1.0.2 on framework → publishes Compendium.Abstractions.Storage@1.0.2
  (plus all other Compendium.* at 1.0.2; mechanical re-tag, no behavioural change).
- Follow-up PR on compendium-adapter-s3 removing the inlined types and
  binding `<PackageReference Include="Compendium.Abstractions.Storage" Version="1.0.2" />`.
- compendium-adapter-azure-blob (POM-519) + compendium-adapter-gcs (POM-520)
  are now unblocked.
Copilot AI review requested due to automatic review settings May 18, 2026 14:32
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Restores the missing Compendium.Abstractions.Storage NuGet-shipped assembly (and its unit test project) and re-adds both projects to Compendium.sln, addressing the regression where the storage abstractions never made it into released packages.

Changes:

  • Reintroduces Compendium.Abstractions.Storage (IObjectStore + storage models + standardized StorageErrors).
  • Restores Compendium.Abstractions.Storage.Tests with unit coverage for the restored surface.
  • Re-adds both projects to Compendium.sln with build configurations and solution-folder nesting.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/Abstractions/Compendium.Abstractions.Storage/Compendium.Abstractions.Storage.csproj Restores the Storage abstractions project packaging/configuration.
src/Abstractions/Compendium.Abstractions.Storage/GlobalUsings.cs Adds global using for Compendium.Core.Results.
src/Abstractions/Compendium.Abstractions.Storage/IObjectStore.cs Restores the provider-agnostic object storage port interface.
src/Abstractions/Compendium.Abstractions.Storage/StorageErrors.cs Restores standardized error factories for storage operations.
src/Abstractions/Compendium.Abstractions.Storage/Models/ListOptions.cs Restores listing option/page model records.
src/Abstractions/Compendium.Abstractions.Storage/Models/ObjectInfo.cs Restores object descriptor model.
src/Abstractions/Compendium.Abstractions.Storage/Models/ObjectMetadata.cs Restores upload metadata model.
src/Abstractions/Compendium.Abstractions.Storage/Models/ObjectStream.cs Restores the stream+metadata wrapper type with dispose semantics.
src/Abstractions/Compendium.Abstractions.Storage/Models/PresignedAction.cs Restores enum for presigned URL action.
tests/Unit/Compendium.Abstractions.Storage.Tests/Compendium.Abstractions.Storage.Tests.csproj Restores unit test project for the storage abstractions.
tests/Unit/Compendium.Abstractions.Storage.Tests/GlobalUsings.cs Restores test global usings for the project.
tests/Unit/Compendium.Abstractions.Storage.Tests/StorageErrorsTests.cs Restores tests for StorageErrors codes/types/messages.
tests/Unit/Compendium.Abstractions.Storage.Tests/Models/ListOptionsTests.cs Restores tests for list option/page models.
tests/Unit/Compendium.Abstractions.Storage.Tests/Models/ObjectInfoTests.cs Restores tests for ObjectInfo.
tests/Unit/Compendium.Abstractions.Storage.Tests/Models/ObjectMetadataTests.cs Restores tests for ObjectMetadata.
tests/Unit/Compendium.Abstractions.Storage.Tests/Models/ObjectStreamTests.cs Restores tests for ObjectStream dispose behavior.
tests/Unit/Compendium.Abstractions.Storage.Tests/Models/PresignedActionTests.cs Restores tests for PresignedAction enum values.
Compendium.sln Restores solution entries and configuration for both projects.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\Compendium.Abstractions\Compendium.Abstractions.csproj" />
Comment on lines +7 to +11
<IsTestProject>true</IsTestProject>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="FluentAssertions" />
<PackageReference Include="NSubstitute" />

global using Xunit;
global using FluentAssertions;
global using NSubstitute;
@Pomdapis Pomdapis merged commit 1cfea0d into main May 18, 2026
6 checks passed
@Pomdapis Pomdapis deleted the fix/restore-abstractions-storage branch May 18, 2026 14:56
This was referenced May 21, 2026
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.

2 participants