chore: Consolidate micro-projects in src/

Open
#3,573 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Quiet
Tech stack
csharp

Research direction

Start by reviewing the three source projects, their csproj files, consumer references, and docs-builder.slnx. Apply the requested source moves and project/reference cleanup, including the IService constraint removal and the prior tokens/ deletion from #3572. Run dotnet build; done means the micro-projects are gone and the solution still builds.

Written by the indexing model from the issue text.

Description

chore needs triage tech-debt

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 PackageReferenceProjectReference in consumers, remove from docs-builder.slnx, run dotnet build.

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

Dominant language
C#
Stars
25
Forks
44
Avg merge
22h 15m
Merged PRs (30d)
162

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from elastic/docs-builder

All issues in elastic/docs-builder

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.