From 7700dce7eb7922fa7cf2323ef01fd629cbc5d597 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 20:27:44 +0000 Subject: [PATCH 1/3] Add README with badges, description, terms of use, install, and features Agent-Logs-Url: https://github.com/Tyrrrz/PowerKit/sessions/33ee8a3b-3007-433d-8118-e203fb6e7050 Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com> --- README.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e4a0729..2d187e3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,77 @@ # PowerKit -Collection of utilities and extensions for rapid .NET development + +[![Status](https://img.shields.io/badge/status-active-47c219.svg)](https://github.com/Tyrrrz/.github/blob/prime/docs/project-status.md) +[![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://tyrrrz.me/ukraine) +[![Build](https://img.shields.io/github/actions/workflow/status/Tyrrrz/PowerKit/main.yml?branch=prime)](https://github.com/Tyrrrz/PowerKit/actions) +[![Coverage](https://img.shields.io/codecov/c/github/Tyrrrz/PowerKit/prime)](https://codecov.io/gh/Tyrrrz/PowerKit) +[![Version](https://img.shields.io/nuget/v/PowerKit.svg)](https://nuget.org/packages/PowerKit) +[![Downloads](https://img.shields.io/nuget/dt/PowerKit.svg)](https://nuget.org/packages/PowerKit) +[![Discord](https://img.shields.io/discord/869237470565392384?label=discord)](https://discord.gg/2SUWKFnHSm) +[![Fuck Russia](https://img.shields.io/badge/fuck-russia-e4181c.svg?labelColor=000000)](https://twitter.com/tyrrrz/status/1495972128977571848) + + + + + +
Development of this project is entirely funded by the community. Consider donating to support!
+ +**PowerKit** is a collection of utilities and extensions for rapid .NET development. +It's distributed as a source-only package that can be referenced without imposing any run-time dependencies. + +## Terms of use[[?]](https://github.com/Tyrrrz/.github/blob/prime/docs/why-so-political.md) + +By using this project or its source code, for any purpose and in any shape or form, you grant your **implicit agreement** to all the following statements: + +- You **condemn Russia and its military aggression against Ukraine** +- You **recognize that Russia is an occupant that unlawfully invaded a sovereign state** +- You **support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas** +- You **reject false narratives perpetuated by Russian state propaganda** + +To learn more about the war and how you can help, [click here](https://tyrrrz.me/ukraine). Glory to Ukraine! πŸ‡ΊπŸ‡¦ + +## Install + +- πŸ“¦ [NuGet](https://nuget.org/packages/PowerKit): `dotnet add package PowerKit` + +> [!IMPORTANT] +> To reference this package, you must have the latest major version of the .NET SDK installed. +> This is only required for the build process, and does not affect which version of the runtime you can target. + +## Features + +- Provides utility types: + - `Cell` β€” a container for a value that may or may not be set (nullable-agnostic alternative to `Nullable`) + - `Disposable` β€” helpers for creating and composing `IDisposable` instances + - `LockFile` β€” a file-based lock that prevents concurrent access to a shared resource + - `TempFile` β€” a temporary file that is automatically deleted when disposed + - `TempDirectory` β€” a temporary directory that is automatically deleted when disposed +- Provides extension methods for: + - `AggregateException`, `Exception` + - `ArrayPool` + - `Assembly` + - `IAsyncEnumerable` + - `BinaryReader`, `BinaryWriter` + - `bool` + - `ICollection` + - `IComparable` + - `Console` + - `CultureInfo` + - `DateTime`, `DateTimeOffset` + - `decimal`, `double`, `int`, `long` + - `DirectoryInfo` + - `Encoding` + - `IEnumerable` + - `Environment` + - `FileInfo` + - `Guid` + - `Path` + - `Process` + - `RegistryKey` + - `Stream` + - `StringBuilder` + - `string` + - `TextReader` + - `TimeSpan` + - `ZipArchiveEntry` +- Targets .NET Standard 2.0+, .NET Framework 3.5+, .NET 10+ +- Imposes no run-time dependencies From 2662bbc94ab73745d5af5d2e672cb272a0670831 Mon Sep 17 00:00:00 2001 From: Oleksii Holub <1935960+Tyrrrz@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:34:10 +0300 Subject: [PATCH 2/3] Update README.md --- README.md | 46 +++++----------------------------------------- 1 file changed, 5 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 2d187e3..b623533 100644 --- a/README.md +++ b/README.md @@ -33,45 +33,9 @@ To learn more about the war and how you can help, [click here](https://tyrrrz.me - πŸ“¦ [NuGet](https://nuget.org/packages/PowerKit): `dotnet add package PowerKit` -> [!IMPORTANT] -> To reference this package, you must have the latest major version of the .NET SDK installed. -> This is only required for the build process, and does not affect which version of the runtime you can target. - -## Features +> [!WARNING] +> To use this package, your project needs to target C# 14 or later. +> You can ensure this by using the latest .NET SDK and setting `latest` in the project file. -- Provides utility types: - - `Cell` β€” a container for a value that may or may not be set (nullable-agnostic alternative to `Nullable`) - - `Disposable` β€” helpers for creating and composing `IDisposable` instances - - `LockFile` β€” a file-based lock that prevents concurrent access to a shared resource - - `TempFile` β€” a temporary file that is automatically deleted when disposed - - `TempDirectory` β€” a temporary directory that is automatically deleted when disposed -- Provides extension methods for: - - `AggregateException`, `Exception` - - `ArrayPool` - - `Assembly` - - `IAsyncEnumerable` - - `BinaryReader`, `BinaryWriter` - - `bool` - - `ICollection` - - `IComparable` - - `Console` - - `CultureInfo` - - `DateTime`, `DateTimeOffset` - - `decimal`, `double`, `int`, `long` - - `DirectoryInfo` - - `Encoding` - - `IEnumerable` - - `Environment` - - `FileInfo` - - `Guid` - - `Path` - - `Process` - - `RegistryKey` - - `Stream` - - `StringBuilder` - - `string` - - `TextReader` - - `TimeSpan` - - `ZipArchiveEntry` -- Targets .NET Standard 2.0+, .NET Framework 3.5+, .NET 10+ -- Imposes no run-time dependencies +> [!IMPORTANT] +> The library is statically tested for compatibility with .NET Standard 1.0+ and .NET Framework 3.5+, however some of the older targets may require additionally installing [**PolyShim**](https://github.com/Tyrrrz/PolyShim). From bde9f3f549121ef8ae352e3f9843b75e36dfb723 Mon Sep 17 00:00:00 2001 From: Oleksii Holub <1935960+Tyrrrz@users.noreply.github.com> Date: Tue, 14 Apr 2026 23:42:13 +0300 Subject: [PATCH 3/3] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b623533..d042a0a 100644 --- a/README.md +++ b/README.md @@ -38,4 +38,4 @@ To learn more about the war and how you can help, [click here](https://tyrrrz.me > You can ensure this by using the latest .NET SDK and setting `latest` in the project file. > [!IMPORTANT] -> The library is statically tested for compatibility with .NET Standard 1.0+ and .NET Framework 3.5+, however some of the older targets may require additionally installing [**PolyShim**](https://github.com/Tyrrrz/PolyShim). +> The library is statically tested for compatibility with .NET Standard 2.0+ and .NET Framework 3.5+, however some of the older targets may require additionally installing [**PolyShim**](https://github.com/Tyrrrz/PolyShim).