elastic / elastic/docs-builder

chore: Consolidate micro-projects in src/

Open
#3,573 1 comment 0 reactions 0 assignees View on GitHub
chore needs triage tech-debt
Dominant language
C#
Stars
24
Forks
44
Avg merge
1d 7h
Merged PRs (30d)
146

Description

## What

Three projects under `src/` each contain 1–2 source files and exist only to hold a single class or interface. Collapsing them reduces solution sprawl (currently 44 projects) without any logical boundary benefit.

## Projects to collapse

### `src/Elastic.Documentation.Svg` → merge into `Elastic.Documentation`
Contains one 296-line static class (`EuiSvgIcons`). Has its own csproj with two consumers (`Elastic.Markdown`, `Elastic.Codex`). Move the file into `Elastic.Documentation`, update project references.
Note: #3572 deletes the unused `tokens/` icon set (56 files + ~90 lines of plumbing) from this project first — do that before the merge to move less.

### `src/services/Elastic.Documentation.Services` → merge into `Elastic.Documentation` or tooling
Single file: an empty marker interface `IService` + `ServiceInvoker`. Referenced by ~8 service projects. Merge into `Elastic.Documentation` (or whichever shared project the services already depend on).
Note: delete the `IService` marker and its `where TService : IService` constraints outright instead of moving it — the invoke delegate is passed explicitly, so the marker grants no capability.

### `src/services/Elastic.Documentation.Integrations` → merge into `Elastic.Documentation.Deploying` or `.Assembler`
Two files: `S3IncrementalUploader` and `S3EtagCalculator`. Consumed only by sibling service projects. Collapse into the deploying/assembler project that already depends on it.

## How

For each: move source files, delete the `.csproj`, update `PackageReference` → `ProjectReference` in consumers, remove from `docs-builder.slnx`, run `dotnet build`.

Part of the broader ponytail over-engineering audit tracked in #3574.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.