From 1b5039cea7f06afdd7dcef1c60a1fc0c7dc42670 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Sat, 29 Aug 2026 15:06:18 -0400 Subject: [PATCH] Add archival notice: project is no longer maintained Most of Prevent's functionality is now covered natively by .NET's own guard-clause throw-helpers (ArgumentNullException.ThrowIfNull, ArgumentException.ThrowIfNullOrEmpty/ThrowIfNullOrWhiteSpace, ArgumentOutOfRangeException.ThrowIfGreaterThan/ThrowIfLessThan, etc., .NET 6/8+), and the remainder is comprehensively covered by Ardalis.GuardClauses, which has far greater adoption and active maintenance. - README.md: archival banner pointing to Ardalis.GuardClauses and BCL alternatives, ahead of the (still-useful) usage sample. - CONTRIBUTING.md: replaced the now-moot trunk-based workflow doc with a short "not accepting contributions" stub. No further releases are planned; release.yml stays disabled permanently. See the deprecation-plan checklist for the remaining manual steps (NuGet Deprecate listing, AppVeyor project teardown, NuGet API key rotation, GitHub repo archive). --- CONTRIBUTING.md | 34 +++------------------------------- README.md | 7 +++++++ 2 files changed, 10 insertions(+), 31 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f66446..72e3c6b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,33 +1,5 @@ # Contributing -## Branching and Pull Requests - -This project uses a trunk-based development model. `master` is the only long-lived branch. - -1. Create a short-lived feature branch off `master`. -2. Open a Pull Request targeting `master`. -3. The `CI` workflow (`build-test` job) must pass. -4. Merges must result in linear history. Use squash or rebase merges. - -## Releases - -Releases are fully automated. - -* **Prereleases:** Every merge to `master` triggers the `release.yml` workflow, which publishes a prerelease NuGet package (e.g., `3.1.0-preview.0.7`). No action is required from contributors. -* **Stable Releases:** The maintainer cuts stable releases by pushing an annotated git tag matching `vX.Y.Z` (e.g. `git tag -a v3.1.0 -m "v3.1.0" && git push origin v3.1.0`). This builds a clean `X.Y.Z` package, publishes it to NuGet, and creates a GitHub Release with auto-generated notes. - -## Versioning - -Versioning is handled automatically via [MinVer](https://github.com/adamralph/minver) based on git tags. - -* Do not manually edit `AssemblyVersion`, `FileVersion`, or `InformationalVersion` in the `.csproj` file. -* Version numbers are derived from the latest git tag. - -## Local Development - -To build and test the project locally: - -```bash -dotnet build -dotnet test -``` +ArgSentry is no longer maintained and is not accepting contributions, issues, or pull +requests. See the [README](README.md) for details and for a suggested alternative +(`Ardalis.GuardClauses`). diff --git a/README.md b/README.md index 2b9f1f8..904ea8e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,13 @@ ArgSentry [![CI](https://github.com/eric-davis/ArgSentry/actions/workflows/ci.yml/badge.svg)](https://github.com/eric-davis/ArgSentry/actions/workflows/ci.yml) +> **⚠️ Archived — no longer maintained.** Most of what `Prevent` does is now built into +> .NET itself (`ArgumentNullException.ThrowIfNull`, `ArgumentException.ThrowIfNullOrEmpty`, +> `ArgumentOutOfRangeException.ThrowIfGreaterThan`, etc., .NET 6/8+). For the rest +> (collection/Guid/default-value checks), see [Ardalis.GuardClauses](https://github.com/ardalis/GuardClauses), +> which is actively maintained. This package will remain on NuGet as-is for existing +> consumers, but there will be no further updates, bug fixes, or releases. + ArgSentry is a .NET / .NET Core utility library for validating method argument values.