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
8 changes: 4 additions & 4 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@ in `scripts/`.

| File | Trigger | Purpose |
|------|---------|---------|
| `ci.yml` | push + PR on `master` + `workflow_call` | Build cross-platform packages on Linux; run the test suite on Windows |
| `ci.yml` | push + PR on `main` + `workflow_call` | Build cross-platform packages on Linux; run the test suite on Windows; verify the package READMEs against the house template and the built assemblies |
| `release.yml` | **manual dispatch** | Run CI, pack + **push** packages to NuGet, then cut the dated `vyyyyMMdd` Release |
| `nightly.yml` | successful CI on `master` + manual | Publish `nightly-yyyyMMdd` prerelease (no NuGet push) and prune old ones |
| `nightly.yml` | successful CI on `main` + manual | Publish `nightly-yyyyMMdd` prerelease (no NuGet push) and prune old ones |
| `_build.yml` | `workflow_call` (internal) | Pack the 6 publishable packages; optionally push to NuGet |
| `scripts/version.pl` | invoked by workflows | Stamp each package's own `<Version>` + commit count into its csproj (`--stamp`) |
| `scripts/update-changelog.mjs` | invoked by workflows | Bucketise commits into `CHANGELOG.md` |
| `scripts/prune-nightlies.mjs` | invoked by workflows | GFS retention: 7 daily + 4 weekly + 3 monthly |

```
push / PR (master)
push / PR (main)
│
▼
┌───────────┐ build on ubuntu (6 cross-platform packages)
│ ci.yml │ + test on windows (multi-SDK x cfg x arch)
└─────┬─────┘
dispatch ───┤────────── on success on master
dispatch ───┤────────── on success on main
▼ │ ▼
┌──────────┐│ ┌───────────┐
│ release ││ │ nightly │
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Nightly

# After CI succeeds on master, publish a dated prerelease with the packed
# After CI succeeds on main, publish a dated prerelease with the packed
# packages, then prune old nightlies on a GFS schedule. Does NOT push to NuGet.
on:
workflow_run:
Expand Down
7 changes: 3 additions & 4 deletions ASP.NET.Extensions/Readme.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# FrameworkExtensions.ASP.NET

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)

[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/ASP.NET.Extensions)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/ASP.NET.Extensions)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.ASP.NET)](https://www.nuget.org/packages/FrameworkExtensions.ASP.NET/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -78,4 +77,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
2 changes: 1 addition & 1 deletion Backports/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -661,7 +661,7 @@ Every file must include the license header:
//
// You should have received a copy of the License along with Hawkynt's
// .NET Framework extensions. If not, see
// <https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE>.
// <https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE>.

#endregion
```
Expand Down
9 changes: 4 additions & 5 deletions Backports/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

> Polyfills that let one codebase use modern C# and BCL features while still targeting old frameworks, from .NET 2.0 upwards.

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)

[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/Backports)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/Backports)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.Backports)](https://www.nuget.org/packages/FrameworkExtensions.Backports/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -1720,7 +1719,7 @@ Contributions are welcome! Please follow these steps:
1. Fork the repository.
2. Create a new branch with a descriptive name.
3. Make your changes.
4. __Remember__: Everything *public* in here should polyfill existing Microsoft functionality and thus should be mentioned in the [Readme](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/Backports/Readme.md) with a link to its original documentation. Don't expose public members not part of Microsoft's API.
4. __Remember__: Everything *public* in here should polyfill existing Microsoft functionality and thus should be mentioned in the [Readme](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/Backports/Readme.md) with a link to its original documentation. Don't expose public members not part of Microsoft's API.
5. Submit a pull request.

## Alternatives
Expand Down Expand Up @@ -2188,4 +2187,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ public static void DoRandomStuff(this string @this, int startAt, int count) {
* throw [ArgumentOutOfRangeException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentoutofrangeexception) when an indexer, number or count is simply not within a valid range
* throw [InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception) when an argument might be valid but the object is currently in a state where that value is not accepted
* throw [NotSupportedException](https://learn.microsoft.com/en-us/dotnet/api/system.notsupportedexception) when an argument is technically valid, but the code to handle it was not (yet) implemented
* use [Guard](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/Corlib.Extensions/Guard/Against.cs)-clauses instead of checking yourself (they are already tuned for performance in most cases)
* use [Guard](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/Corlib.Extensions/Guard/Against.cs)-clauses instead of checking yourself (they are already tuned for performance in most cases)

``` cs
public static void DoSomething(this string @this, string other, int count) {
Expand Down Expand Up @@ -635,7 +635,7 @@ private static void _DoSpecificStuff(string @this) {
}
```

* use throw-helpers if possible from the [AlwaysThrow](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/Corlib.Extensions/Guard/AlwaysThrow.cs)-class
* use throw-helpers if possible from the [AlwaysThrow](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/Corlib.Extensions/Guard/AlwaysThrow.cs)-class

``` cs
public static void DoSomething<T>(this IEnumerable<T> @this) {
Expand Down Expand Up @@ -670,7 +670,7 @@ public static void EarlyMornings(DateTime date) {
public static void NoCokeYetException() => throw new NoCokeYetException();
```

* when adding specific stuff for numbers use the [Against.T4.tt](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/Corlib.Extensions/Guard/Against.T4.tt) to avoid writing nearly identical code for each number type
* when adding specific stuff for numbers use the [Against.T4.tt](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/Corlib.Extensions/Guard/Against.T4.tt) to avoid writing nearly identical code for each number type

``` cs
<#foreach (var type in new[]{"sbyte", "short", "int", "long", "float", "double", "decimal"}) {#>
Expand Down
9 changes: 4 additions & 5 deletions Corlib.Extensions/Readme.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# FrameworkExtensions.Corlib

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/Corlib.Extensions)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/Corlib.Extensions)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.Corlib)](https://www.nuget.org/packages/FrameworkExtensions.Corlib/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -2187,7 +2186,7 @@ Multi-targeting support:

## Contributing

See [CONTRIBUTING.md](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/CONTRIBUTING.md) for detailed guidelines on:
See [CONTRIBUTING.md](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/CONTRIBUTING.md) for detailed guidelines on:

- Code style and conventions
- Performance requirements
Expand Down Expand Up @@ -13163,4 +13162,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
7 changes: 3 additions & 4 deletions Microsoft.Office.Extensions/Readme.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# FrameworkExtensions.Microsoft.Office

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)

[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/Microsoft.Office.Extensions)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/Microsoft.Office.Extensions)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.Microsoft.Office)](https://www.nuget.org/packages/FrameworkExtensions.Microsoft.Office/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -278,4 +277,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
7 changes: 3 additions & 4 deletions Microsoft.Win32.Extensions/Readme.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# FrameworkExtensions.Microsoft.Win32

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)

[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/Microsoft.Win32.Extensions)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/Microsoft.Win32.Extensions)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.Microsoft.Win32)](https://www.nuget.org/packages/FrameworkExtensions.Microsoft.Win32/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -132,4 +131,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
7 changes: 3 additions & 4 deletions PresentationCore.Extensions/Readme.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# FrameworkExtensions.PresentationCore

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)

[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/PresentationCore.Extensions)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/PresentationCore.Extensions)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.PresentationCore)](https://www.nuget.org/packages/FrameworkExtensions.PresentationCore/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -356,4 +355,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# FrameworkExtensions.DirectoryServices

[![Build](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/NewBuild.yml)
[![Tests](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml/badge.svg)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/Tests.yml)
[![CI](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/actions/workflows/ci.yml)

[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=master)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/master/System.DirectoryServices.AccountManagement.Extensions)
[![Last Commit](https://img.shields.io/github/last-commit/Hawkynt/C--FrameworkExtensions?branch=main)](https://github.com/Hawkynt/C--FrameworkExtensions/commits/main/System.DirectoryServices.AccountManagement.Extensions)
[![NuGet Version](https://img.shields.io/nuget/v/FrameworkExtensions.DirectoryServices)](https://www.nuget.org/packages/FrameworkExtensions.DirectoryServices/)
[![License](https://img.shields.io/badge/License-LGPL_3.0-blue)](https://licenses.nuget.org/LGPL-3.0-or-later)

Expand Down Expand Up @@ -236,4 +235,4 @@ If this project saves you time or money, consider supporting its development:

## 📜 License

Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/master/LICENSE).
Licensed under LGPL-3.0-or-later — see the repository [LICENSE](https://github.com/Hawkynt/C--FrameworkExtensions/blob/main/LICENSE).
Loading
Loading