diff --git a/src/libraries/README.md b/src/libraries/README.md index 9184950e90576..e56a1f1272157 100644 --- a/src/libraries/README.md +++ b/src/libraries/README.md @@ -2,22 +2,36 @@ This folder contains the source and tests for the .NET Libraries. Different libraries are owned by different team members; refer to the [Areas](../../docs/area-owners.md#areas) list for lead and owner information. -## Development Statuses - -Some libraries are under more active development than others. Depending on the library's status, expectations for issues and pull requests can vary. Check the library's folder for a `README.md` that declares the status for that library. Regardless of a library's status, refer to the [DOs and DON'Ts](../../CONTRIBUTING.md#dos-and-donts) and [Suggested Workflow](../../CONTRIBUTING.md#suggested-workflow) in our contribution guidelines before submitting a pull request. - -- **Active** - - Under active development by the team - - Issues will be considered for fix or addition to the backlog - - PRs for both features and fixes will be considered when aligned with current efforts -- **Inactive** - - Under minimal development; quality is maintained - - Issues will be considered for fix or addition to the backlog - - PRs for both features and fixes will be considered -- **Legacy** - - Not under development; maintained for compatibility - - Issues are likely to be closed without fixes - - PRs are unlikely to be accepted +## Contribution Bar + +Some libraries are under more active development than others. Depending on the library's status, expectations for issues and pull requests can vary. Check the library's folder for a `README.md` that declares the contribution bar for that library which consists of a **Primary bar** and optional **Secondary bars**. Regardless of a library's contribution bar, refer to the [DOs and DON'Ts](../../CONTRIBUTING.md#dos-and-donts) and [Suggested Workflow](../../CONTRIBUTING.md#suggested-workflow) in our contribution guidelines before submitting a pull request. + +### Assumed bars (unless a library says otherwise) +- **We consider security fixes** +- **We consider test coverage changes** +- **We don't accept style-only changes** + +### Primary bar +- **We consider new features, new APIs and performance changes** + - Both features and fixes will be considered when aligned with current efforts + - For new APIs, please follow the [API Review Process](../../docs/project/api-review-process.md) + - Performance gains are welcome. Update [benchmarks](https://github.com/dotnet/performance) as appropriate + - Refactoring changes are welcome +- **We only consider fixes to maintain or improve quality** + - New features and APIs are **not** normally accepted but there are exceptions such as when responding to runtime changes or language additions + - The library is likely mature and feature-complete but may be extended occasionally + - Performance gains are considered if they are lower-risk or high-impact + - Refactoring changes are considered if there is a clear benefit +- **We only consider lower-risk or high-impact fixes to maintain or improve quality** + - New features and APIs are **not** accepted + - We don't accept potentially destabilizing fixes or test changes unless there is a clear need +- **We only consider fixes that unblock critical issues** + - New features and APIs are **not** accepted + - Infrastructure changes and other non-functional changes are considered + +### Secondary bars +- **We consider PRs that target this library for new [source code analyzers](../../docs/project/analyzers.md)** +- **We don't accept refactoring changes due to new language features** ## Deployment diff --git a/src/libraries/System.Reflection.Context/README.md b/src/libraries/System.Reflection.Context/README.md index 57ca5cc85d2b8..d4917e56c9ff5 100644 --- a/src/libraries/System.Reflection.Context/README.md +++ b/src/libraries/System.Reflection.Context/README.md @@ -3,7 +3,8 @@ Used by `System.ComponentModel` to support [`CustomReflectionContext`](https://l Documentation can be found at https://learn.microsoft.com/dotnet/api/system.reflection.context. -## Status: [Legacy](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We only consider fixes that unblock critical issues](../../libraries/README.md#primary-bar) ## Deployment [System.Reflection.Context](https://www.nuget.org/packages/System.Reflection.Context) NuGet package diff --git a/src/libraries/System.Reflection.DispatchProxy/README.md b/src/libraries/System.Reflection.DispatchProxy/README.md index c5d1aec291a9b..dd1b29c09a9d9 100644 --- a/src/libraries/System.Reflection.DispatchProxy/README.md +++ b/src/libraries/System.Reflection.DispatchProxy/README.md @@ -3,7 +3,9 @@ Supports the [`DispatchProxy`](https://learn.microsoft.com/dotnet/api/system.ref Documentation can be found at https://learn.microsoft.com/dotnet/api/system.reflection.dispatchproxy. -## Status: [Legacy](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We consider new features, new APIs and performance changes](../../libraries/README.md#primary-bar) + Although used for key scenarios by the community, it has remained relatively unchanged. Internally it uses [Emit](../System.Reflection.Emit/README.md) to generate the proxies so it doesn't work on all platforms. ## Deployment diff --git a/src/libraries/System.Reflection.Emit.ILGeneration/README.md b/src/libraries/System.Reflection.Emit.ILGeneration/README.md index b5c1d321f428e..1c893e92faad1 100644 --- a/src/libraries/System.Reflection.Emit.ILGeneration/README.md +++ b/src/libraries/System.Reflection.Emit.ILGeneration/README.md @@ -3,7 +3,10 @@ Contains types used with [`System.Reflection.Emit`](../System.Reflection.Emit/RE The primary class is [`ILGenerator`](https://learn.microsoft.com/dotnet/api/system.reflection.emit.ilgenerator). -## Status: [Inactive](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We consider new features, new APIs and performance changes](../../libraries/README.md#primary-bar) + +See the [Help Wanted](https://github.com/dotnet/runtime/issues?q=is%3Aissue+is%3Aopen+label%3Aarea-System.Reflection.Emit+label%3A%22help+wanted%22) issues. ## Deployment [System.Reflection.Emit.ILGeneration](https://www.nuget.org/packages/System.Reflection.Emit.ILGeneration) is included in the shared framework. \ No newline at end of file diff --git a/src/libraries/System.Reflection.Emit.Lightweight/README.md b/src/libraries/System.Reflection.Emit.Lightweight/README.md index e7610705865aa..622c03f6977ff 100644 --- a/src/libraries/System.Reflection.Emit.Lightweight/README.md +++ b/src/libraries/System.Reflection.Emit.Lightweight/README.md @@ -1,7 +1,8 @@ # System.Reflection.Emit.Lightweight The primary class is [`DynamicMethod`](https://learn.microsoft.com/dotnet/api/system.reflection.emit.DynamicMethod). -## Status: [Inactive](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We only consider fixes to maintain or improve quality](../../libraries/README.md#primary-bar) ## Deployment [System.Reflection.Emit.Lightweight](https://www.nuget.org/packages/System.Reflection.Emit.Lightweight) is included in the shared framework. diff --git a/src/libraries/System.Reflection.Emit/README.md b/src/libraries/System.Reflection.Emit/README.md index ca9c1cddeefab..454e28afac6cd 100644 --- a/src/libraries/System.Reflection.Emit/README.md +++ b/src/libraries/System.Reflection.Emit/README.md @@ -5,8 +5,12 @@ Not all platforms and runtimes support IL.Emit. Documentation can be found at https://learn.microsoft.com/dotnet/api/system.reflection.emit. The primary class is [`AssemblyBuilder`](https://learn.microsoft.com/dotnet/api/system.reflection.emit.AssemblyBuilder). -## Status: [Inactive](../../libraries/README.md#development-statuses) -The APIs and functionality are mature, but do get extended occasionally. +## Contribution Bar +- [x] [We consider new features, new APIs and performance changes](../../libraries/README.md#primary-bar) + +See the [Help Wanted](https://github.com/dotnet/runtime/issues?q=is%3Aissue+is%3Aopen+label%3Aarea-System.Reflection.Emit+label%3A%22help+wanted%22) issues. + +The primary new feature under consideration is [AssemblyBuilder.Save()](https://github.com/dotnet/runtime/issues/62956). ## Deployment [System.Reflection.Emit](https://www.nuget.org/packages/System.Reflection.Emit) is included in the shared framework. The package does not need to be installed into any project compatible with .NET Standard 2.1; it only needs to be installed when targeting .NET Standard 2.0. diff --git a/src/libraries/System.Reflection.Extensions/README.md b/src/libraries/System.Reflection.Extensions/README.md index a2a9386970169..d55842c442911 100644 --- a/src/libraries/System.Reflection.Extensions/README.md +++ b/src/libraries/System.Reflection.Extensions/README.md @@ -1,7 +1,9 @@ # System.Reflection.Extensions This supports forwarding types to the runtime including [CustomAttributeExtensions](https://learn.microsoft.com/dotnet/api/system.reflection.CustomAttributeExtensions), [InterfaceMapping](https://learn.microsoft.com/dotnet/api/system.reflection.InterfaceMapping) and [RuntimeReflectionExtensions](https://learn.microsoft.com/dotnet/api/system.reflection.RuntimeReflectionExtensions). -## Status: [Legacy](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We only consider fixes that unblock critical issues](../../libraries/README.md#primary-bar) + This package was used in the past to expose common functionality across different runtimes in a uniform way. It continues to ship as part of the shared framework, but it is frozen for compatibility. ## Deployment diff --git a/src/libraries/System.Reflection.Metadata/README.md b/src/libraries/System.Reflection.Metadata/README.md index 2f8a72f51261b..41b04bed0a46a 100644 --- a/src/libraries/System.Reflection.Metadata/README.md +++ b/src/libraries/System.Reflection.Metadata/README.md @@ -1,8 +1,10 @@ # System.Reflection.Metadata Documentation can be found at https://learn.microsoft.com/dotnet/api/system.reflection.metadata. -## Status: [Inactive](../../libraries/README.md#development-statuses) -The APIs and functionality are mature, but do get extended occasionally. +## Contribution Bar +- [x] [We consider new features, new APIs and performance changes](../../libraries/README.md#primary-bar) + +See the [Help Wanted](https://github.com/dotnet/runtime/issues?q=is%3Aissue+is%3Aopen+label%3Aarea-System.Reflection.Metadata+label%3A%22help+wanted%22) issues. ## Deployment [System.Reflection.Metadata](https://www.nuget.org/packages/System.Reflection.Metadata) is included in the shared framework. diff --git a/src/libraries/System.Reflection.MetadataLoadContext/README.md b/src/libraries/System.Reflection.MetadataLoadContext/README.md index c069cd3359e63..cc8842acc9223 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/README.md +++ b/src/libraries/System.Reflection.MetadataLoadContext/README.md @@ -3,12 +3,8 @@ This provides a high-level API for inspecting types given raw assembly contents This library takes a dependency on `System.Reflection.Metadata` for reading the assembly. -## Status: [Inactive](../../libraries/README.md#development-statuses) -The APIs and functionality are mature, but do get extended occasionally. - -## Source - -* [../System.Reflection.MetadataLoadContext](../System.Reflection.MetadataLoadContext) +## Contribution Bar +- [x] [We only consider fixes to maintain or improve quality](../../libraries/README.md#primary-bar) ## Deployment [System.Reflection.MetadataLoadContext](https://www.nuget.org/packages/System.Reflection.MetadataLoadContext) NuGet package. diff --git a/src/libraries/System.Reflection.Primitives/README.md b/src/libraries/System.Reflection.Primitives/README.md index cbc366541a828..4076928cd0e22 100644 --- a/src/libraries/System.Reflection.Primitives/README.md +++ b/src/libraries/System.Reflection.Primitives/README.md @@ -1,7 +1,9 @@ # System.Reflection.Primitives Contains reflection types such as [TypeAttributes](https://learn.microsoft.com/dotnet/api/system.reflection.typeattributes). Some of these types are forwarded to the runtime. In the future, the non-forwarded types may be lifted to the runtime and then type forwards added. -## Status: [Legacy](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We only consider fixes that unblock critical issues](../../libraries/README.md#primary-bar) + This package was used in the past to expose common functionality across different runtimes in a uniform way. It continues to ship as part of the shared framework, but it is frozen for compatibility. ## Deployment diff --git a/src/libraries/System.Reflection.TypeExtensions/README.md b/src/libraries/System.Reflection.TypeExtensions/README.md index f721f176b0caa..4a060f3d09933 100644 --- a/src/libraries/System.Reflection.TypeExtensions/README.md +++ b/src/libraries/System.Reflection.TypeExtensions/README.md @@ -1,7 +1,9 @@ # System.Reflection.TypeExtensions This is a facade assembly that has extension methods for common reflection types. -## Status: [Legacy](../../libraries/README.md#development-statuses) +## Contribution Bar +- [x] [We only consider fixes that unblock critical issues](../../libraries/README.md#primary-bar) + This package was used in the past to expose common functionality across different runtimes in a uniform way. It continues to ship as part of the shared framework, but it is frozen for compatibility. ## Deployment diff --git a/src/libraries/System.Reflection/README.md b/src/libraries/System.Reflection/README.md index d796c96a141c4..e0f32c00d40a6 100644 --- a/src/libraries/System.Reflection/README.md +++ b/src/libraries/System.Reflection/README.md @@ -3,8 +3,13 @@ This is the primary reflection assembly. It is used for late-bound introspection Documentation can be found at https://learn.microsoft.com/dotnet/api/system.reflection. -## Status: [Active](../../libraries/README.md#development-statuses) -Although these common types are mature, the code base continues to evolve for better performance and to keep up with language and runtime enhancements such as byref-like types. +## Contribution Bar +- [x] [We consider new features, new APIs and performance changes](../../libraries/README.md#primary-bar) +- [x] [We consider PRs that target this library for new source code analyzers](../../libraries/README.md#secondary-bars) + +Although the types are mature, the code base continues to evolve for better performance and to keep up with language and runtime enhancements such as byref-like types. + +See the [Help Wanted](https://github.com/dotnet/runtime/issues?q=is%3Aissue+is%3Aopen+label%3Aarea-System.Reflection+label%3A%22help+wanted%22) issues. ## Source