From eae7fef75304b3a4d87ab85fb4b6effb34151e51 Mon Sep 17 00:00:00 2001 From: Immo Landwerth Date: Wed, 14 Jul 2021 10:38:41 -0700 Subject: [PATCH] Use GitHub issue form for API suggestions --- .github/ISSUE_TEMPLATE/02_api_proposal.md | 53 ----------------- .github/ISSUE_TEMPLATE/02_api_proposal.yml | 66 ++++++++++++++++++++++ 2 files changed, 66 insertions(+), 53 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/02_api_proposal.md create mode 100644 .github/ISSUE_TEMPLATE/02_api_proposal.yml diff --git a/.github/ISSUE_TEMPLATE/02_api_proposal.md b/.github/ISSUE_TEMPLATE/02_api_proposal.md deleted file mode 100644 index d45db1eff4b8b8..00000000000000 --- a/.github/ISSUE_TEMPLATE/02_api_proposal.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -name: API proposal -about: Propose a change to the public API surface -title: '' -labels: api-suggestion -assignees: '' - ---- - -## Background and Motivation - - - -## Proposed API - - - -## Usage Examples - - - -## Alternative Designs - - - -## Risks - - diff --git a/.github/ISSUE_TEMPLATE/02_api_proposal.yml b/.github/ISSUE_TEMPLATE/02_api_proposal.yml new file mode 100644 index 00000000000000..e161283b9cf55c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/02_api_proposal.yml @@ -0,0 +1,66 @@ +name: API Suggestion +description: Propose a change to the public API surface +title: "[API Proposal]: " +labels: [api-suggestion] +body: + - type: markdown + attributes: + value: | + We welcome API proposals! We have a process to evaluate the value and shape of new API. There is an overview of our process [here](https://github.com/dotnet/runtime/blob/main/docs/project/api-review-process.md). This template will help us gather the information we need to start the review process. + - type: textarea + id: background + attributes: + label: Background and motivation + description: Please describe the purpose and value of the new API here. + placeholder: Purpose + validations: + required: true + - type: textarea + id: api-proposal + attributes: + label: API Proposal + description: | + Please provide the specific public API signature diff that you are proposing. + + You may find the [Framework Design Guidelines](https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/framework-design-guidelines-digest.md) helpful. + placeholder: API declaration (no method bodies) + value: | + ```C# + namespace System.Collections.Generic + { + public class MyFancyCollection : IEnumerable + { + public void Fancy(T item); + } + } + ``` + validations: + required: true + - type: textarea + id: api-usage + attributes: + label: API Usage + description: | + Please provide code examples that highlight how the proposed API additions are meant to be consumed. This will help suggest whether the API has the right shape to be functional, performant and useable. + placeholder: API usage + value: | + ```C# + // Fancy the value + var c = new MyFancyCollection(); + c.Fancy(42); + + // Getting the values out + foreach (var v in c) + Console.WriteLine(v); + ``` + validations: + required: true + - type: textarea + id: risks + attributes: + label: Risks + description: | + Please mention any risks that to your knowledge the API proposal might entail, such as breaking changes, performance regressions, etc. + placeholder: Risks + validations: + required: false