Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,23 @@ A drift between `_atom/IBuild.cs` and the committed YAML should be treated as a
4. Update `PublicApiTests.VerifyPublicApiSurface.verified.txt` (see the Verify workflow above).
5. Document it in the relevant `docs/` page and, if user-facing, the README.

## Documentation

Docs follow the shared Invex documentation standard used by every Invex library:

- **README.md** is also the NuGet readme. Keep the fixed section order (title, badges, pitch, Features,
Installation, Quick start, Usage, Documentation, Development, License) and use absolute links only
(`https://github.com/Invex-Games/process/blob/main/...` or the docs site), so they work on nuget.org.
- **DocFX site** (`docfx.json`, `toc.yml`, `index.md`, `docs/`, `api/index.md`), published to
https://invex-games.github.io/process/. `docs/introduction.md` and `docs/getting-started.md` come first; every page
opens with one to three sentences on what it covers and ends with a "See also" or "Next steps" list. Link API
types with `<xref:Namespace.Type>`, not file paths.
- **`api/index.md`** is the only hand-written file under `api/`; everything else there is generated. Put per-type
detail in XML docs, not in hand-written API pages.
- **XML docs are enforced.** `CS1591` is not suppressed for shipped projects, so every public type and member needs
`<summary>`, plus `<param>`, `<typeparam>`, `<returns>` and `<exception>` where they apply, `<remarks>` for
non-obvious behaviour, and `<see cref>`/`<paramref>`/`<see langword>` for references.

## Defer to the docs

For anything beyond the above, prefer these over duplicating detail:
Expand All @@ -150,5 +167,5 @@ For anything beyond the above, prefer these over duplicating detail:
- `docs/transforming-output.md` — per-line rewriting and suppression.
- `docs/cancellation.md` — what cancellation does and doesn't do.
- `docs/testing.md` — faking `IProcessRunner` in consumer tests.
- `api/SemVer.md` — the versioning policy and what counts as the public API.
- `docs/versioning.md` — the versioning policy and what counts as the public API.

3 changes: 2 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
<PackageIcon>icon.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageDescription>A process runner library</PackageDescription>
<PackageDescription>Runs external processes behind an injectable IProcessRunner with logging, real-time output streaming, full output capture and fail-fast error handling</PackageDescription>
<PackageProjectUrl>https://invex-games.github.io/process/</PackageProjectUrl>
<EnablePackageValidation>true</EnablePackageValidation>
<PublishRepositoryUrl>true</PublishRepositoryUrl>

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![Build](https://github.com/Invex-Games/process/actions/workflows/Build.yml/badge.svg)](https://github.com/Invex-Games/process/actions/workflows/Build.yml)
[![NuGet](https://img.shields.io/nuget/v/Invex.Process.svg)](https://www.nuget.org/packages/Invex.Process)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/Invex-Games/process/blob/main/LICENSE.txt)
[![.NET](https://img.shields.io/badge/.NET-8.0%20%7C%209.0%20%7C%2010.0-512BD4.svg)](https://dotnet.microsoft.com/)
[![.NET](https://img.shields.io/badge/.NET-10.0-512BD4.svg)](https://dotnet.microsoft.com/)

A small, focused .NET library for running external processes with first-class logging, real-time output streaming,
full output capture, and fail-fast error handling. It wraps `System.Diagnostics.Process` behind a clean, injectable
Expand Down
Loading