chore: consolidate project metadata, drop unused dependencies and vendored sample assets #110

Closed
opened 2026-09-24 12:28:54 +00:00 by Grandiras · 0 comments
Owner

Part of the v0.7.0 update cycle. This is cleanup the v0.6.0 sweep missed, with no intended behaviour change.

Scope

Project files

  • Move package metadata that every project duplicates into Directory.Build.props: Authors, PackageLicenseExpression, PackageProjectUrl, RepositoryUrl, RepositoryType, PackageReadmeFile, TargetFramework, Nullable, ImplicitUsings. Optionally add src/, tests/ and samples/ Directory.Build.props files. Description, PackageTags and PackageId stay per project wherever they differ.
  • Drop settings that equal their defaults: LangVersion latest, TreatWarningsAsErrors false, and RootNamespace/AssemblyName wherever they equal the project name.
  • Keep GenerateDocumentationFile and CS1591 as an error on every packable src/ project, set once.
  • Remove Microsoft.Extensions.Http and Microsoft.Extensions.Options from src/ATProtoNet/ATProtoNet.csproj; the core uses neither. This shrinks the core dependency closure from 14 packages to 3. Do not touch ATProtoNet.Server's package references; that belongs to the package-restructure issue.
  • Remove redundant transitive ProjectReferences from the samples and from ATProtoNet.IntegrationTests.
  • atproto-lexgen --version should report the assembly's informational version, not the hard-coded "1.0.0".
  • .gitignore: remove the duplicate .idea/ line and add nupkg/.

Dead code

  • Remove unnecessary usings (IDE0005) across src/, tests/, tools/ and samples/. Skip files under Identity/, Crypto/, Repo/, Spaces/, Serialization/, Lexicon/**/*Models.cs, ATProtoNet.Server/Spaces/ and ATProtoNet.Aspire.Hosting/; parallel PRs are rewriting those.
  • Remove unused internals: XrpcClient.RefreshToken, StandardSiteClient._xrpc, and unused private or internal parameters (OAuthClient currentNonce, LexiconGenerator EmitPlan/LexiconEmitter).

Samples

  • Remove the vendored Bootstrap trees (88 tracked files, 17.4 MB). Only bootstrap.min.css is referenced, so keep just that file or load it from a CDN with SRI.
  • Fold samples/BlazorOAuthSample into samples/ServerIntegrationSample, which is a strict superset. Update ATProto.NET.slnx and the doc links (docs/blazor.md, docs/oauth.md, docs/architecture.md).
  • Remove unused Blazor template leftovers from the remaining sample.
  • Link SpacesSample from docs/spaces.md.

Acceptance

  • dotnet build passes with 0 warnings and all unit tests pass.
  • For each packable project, the .nuspec metadata (authors, license, URLs, readme, dependencies other than the two removed ones) is unchanged. Compare dotnet pack output before and after.
Part of the v0.7.0 update cycle. This is cleanup the v0.6.0 sweep missed, with **no intended behaviour change**. ## Scope **Project files** - [ ] Move package metadata that every project duplicates into `Directory.Build.props`: `Authors`, `PackageLicenseExpression`, `PackageProjectUrl`, `RepositoryUrl`, `RepositoryType`, `PackageReadmeFile`, `TargetFramework`, `Nullable`, `ImplicitUsings`. Optionally add `src/`, `tests/` and `samples/` `Directory.Build.props` files. `Description`, `PackageTags` and `PackageId` stay per project wherever they differ. - [ ] Drop settings that equal their defaults: `LangVersion latest`, `TreatWarningsAsErrors false`, and `RootNamespace`/`AssemblyName` wherever they equal the project name. - [ ] Keep `GenerateDocumentationFile` and `CS1591` as an error on every packable `src/` project, set once. - [ ] Remove `Microsoft.Extensions.Http` and `Microsoft.Extensions.Options` from `src/ATProtoNet/ATProtoNet.csproj`; the core uses neither. This shrinks the core dependency closure from 14 packages to 3. **Do not** touch `ATProtoNet.Server`'s package references; that belongs to the package-restructure issue. - [ ] Remove redundant transitive `ProjectReference`s from the samples and from `ATProtoNet.IntegrationTests`. - [ ] `atproto-lexgen --version` should report the assembly's informational version, not the hard-coded `"1.0.0"`. - [ ] `.gitignore`: remove the duplicate `.idea/` line and add `nupkg/`. **Dead code** - [ ] Remove unnecessary `using`s (IDE0005) across `src/`, `tests/`, `tools/` and `samples/`. **Skip** files under `Identity/`, `Crypto/`, `Repo/`, `Spaces/`, `Serialization/`, `Lexicon/**/*Models.cs`, `ATProtoNet.Server/Spaces/` and `ATProtoNet.Aspire.Hosting/`; parallel PRs are rewriting those. - [ ] Remove unused internals: `XrpcClient.RefreshToken`, `StandardSiteClient._xrpc`, and unused private or internal parameters (`OAuthClient` `currentNonce`, LexiconGenerator `EmitPlan`/`LexiconEmitter`). **Samples** - [ ] Remove the vendored Bootstrap trees (88 tracked files, 17.4 MB). Only `bootstrap.min.css` is referenced, so keep just that file or load it from a CDN with SRI. - [ ] Fold `samples/BlazorOAuthSample` into `samples/ServerIntegrationSample`, which is a strict superset. Update `ATProto.NET.slnx` and the doc links (`docs/blazor.md`, `docs/oauth.md`, `docs/architecture.md`). - [ ] Remove unused Blazor template leftovers from the remaining sample. - [ ] Link `SpacesSample` from `docs/spaces.md`. ## Acceptance - `dotnet build` passes with 0 warnings and all unit tests pass. - For each packable project, the `.nuspec` metadata (authors, license, URLs, readme, dependencies other than the two removed ones) is unchanged. Compare `dotnet pack` output before and after.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Grandiras/ATProto.NET#110
No description provided.