diff --git a/.github/ISSUE_TEMPLATE/issue_ix.md b/.github/ISSUE_TEMPLATE/issue_ix.md new file mode 100644 index 0000000000..aa5de38f8a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue_ix.md @@ -0,0 +1,82 @@ +--- +name: Issue report for Ix +about: Creates an issue report regarding a bug, question or feature request for Ix.NET +title: '' +labels: '[area] Ix' +assignees: '' +--- +Hello and thank you for using dotnet/reactive. Please select a category and detail your issue by answering the questions there: + +#### Bug + +Despite our best efforts, bugs can slip into releases or corner cases forgotten about. We will try our best to remedy the situation +and/or provide workarounds. Note that certain (odd) behaviors are by design and as such are not considered bugs. + +> Which subcomponent library (Ix, Async.Ix)? + +> Which library version? + +> What are the platform(s), environment(s) and related component version(s)? + +> What is the use case or problem? + +> What is the expected outcome? + +> What is the actual outcome? + +> What is the stacktrace of the exception(s) if any? + +> Do you have a code snippet or project that reproduces the problem? + +#### Question + +Before you ask us a question, please note that dotnet/reactive is maintained by a handful of dedicated people voluntarily and in their free time. +You could help us tremendously by first searching for some keywords related to your question with your favorite search engine, +our [issue list](https://github.com/dotnet/reactive/issues) or the related [stackoverflow.com](https://stackoverflow.com) keywords (such as +[ienumerable](https://stackoverflow.com/questions/tagged/ienumerable) and +[iasyncenumerable](https://stackoverflow.com/questions/tagged/iasyncenumerable) +). Please also consider asking questions, such as **"How do I do X?"** or **"Where can I find Y?"**, under one of these tags on *StackOverflow* instead. + +In case you have not found an answer or your question is not really suited for *StackOverflow*, you are welcome to ask it here. + +> What is the context of your question or problem? + +> What is the question or problem you try to solve? + +> What were the (original) requirements you tried to solve? + +> What have you tried so far, what code have you written so far? + +#### Feature request + +The dotnet/reactive hosts fundamental components and operators for `IObservable`, `IEnumerable` and `IAsyncEnumerable`, and as such, to be and +to stay as a dependable family of libraries, we have to carefully consider what new features to include. Therefore, before asking for a new component, +operator or feature, please consider the following cases and resolutions first: + +a) **New source factory method.** Static factory methods creating an instance of the types mentioned above can live in any class in any library +without too much inconvenience. Please consider hosting such factory methods outside dotnet/reactive. + +b) **New instance method/operator.** The .NET world features extension methods which gives the flexibility to have fluent API expansions in +your local project or any third party library. Please consider hosting such methods outside dotnet/reactive too. + +c) **Support for or bridge to other 1st or 3rd party components.** These are considered on a specific case-by-case basis but generally, +please consider hosting such support/bridge code outside dotnet/reactive. + +d) **New reactive/interactive base type or concept.** Components requiring changes or introduction of new protocols (for example, flow control, +item lifecycle, async) are generally better suited for their own 3rd party library hosting and interoperation should be provided, via the standard +types mentioned above, there. + +e) **Behavior change on an existing operator.** Such changes involve a lot of risks for existing users, therefore, usually, it is better to introduce +a completely new component or operator, for which see points a)..d) again. + +Considering the points above, please describe the feature or behavior you would like dotnet/reactive included: + +> Which subcomponent library (Ix, Async.Ix)? + +> Which next library version (i.e., patch, minor or major)? + +> What are the platform(s), environment(s) and related component version(s)? + +> How commonly is this feature needed (one project, several projects, company-wide, global)? + +> Please describe the feature. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/issue_rx.md b/.github/ISSUE_TEMPLATE/issue_rx.md new file mode 100644 index 0000000000..7a62a1515a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/issue_rx.md @@ -0,0 +1,77 @@ +--- +name: Issue report for Rx +about: Creates an issue report regarding a bug, question or feature request for Rx.NET +title: '' +labels: '[area] Rx' +assignees: '' +--- +Hello and thank you for using dotnet/reactive. Please select a category and detail your issue by answering the questions there: + +#### Bug + +Despite our best efforts, bugs can slip into releases or corner cases forgotten about. We will try our best to remedy the situation +and/or provide workarounds. Note that certain (odd) behaviors are by design and as such are not considered bugs. + +> Which library version? + +> What are the platform(s), environment(s) and related component version(s)? + +> What is the use case or problem? + +> What is the expected outcome? + +> What is the actual outcome? + +> What is the stacktrace of the exception(s) if any? + +> Do you have a code snippet or project that reproduces the problem? + +#### Question + +Before you ask us a question, please note that dotnet/reactive is maintained by a handful of dedicated people voluntarily and in their free time. +You could help us tremendously by first searching for some keywords related to your question with your favorite search engine, +our [issue list](https://github.com/dotnet/reactive/issues) or the related [stackoverflow.com](https://stackoverflow.com) keywords (such as +[system.reactive](https://stackoverflow.com/questions/tagged/system.reactive) +). Please also consider asking questions, such as **"How do I do X?"** or **"Where can I find Y?"**, under one of these tags on *StackOverflow* instead. + +In case you have not found an answer or your question is not really suited for *StackOverflow*, you are welcome to ask it here. + +> What is the context of your question or problem? + +> What is the question or problem you try to solve? + +> What were the (original) requirements you tried to solve? + +> What have you tried so far, what code have you written so far? + +#### Feature request + +The dotnet/reactive hosts fundamental components and operators for `IObservable`, `IEnumerable` and `IAsyncEnumerable`, and as such, to be and +to stay as a dependable family of libraries, we have to carefully consider what new features to include. Therefore, before asking for a new component, +operator or feature, please consider the following cases and resolutions first: + +a) **New source factory method.** Static factory methods creating an instance of the types mentioned above can live in any class in any library +without too much inconvenience. Please consider hosting such factory methods outside dotnet/reactive. + +b) **New instance method/operator.** The .NET world features extension methods which gives the flexibility to have fluent API expansions in +your local project or any third party library. Please consider hosting such methods outside dotnet/reactive too. + +c) **Support for or bridge to other 1st or 3rd party components.** These are considered on a specific case-by-case basis but generally, +please consider hosting such support/bridge code outside dotnet/reactive. + +d) **New reactive/interactive base type or concept.** Components requiring changes or introduction of new protocols (for example, flow control, +item lifecycle, async) are generally better suited for their own 3rd party library hosting and interoperation should be provided, via the standard +types mentioned above, there. + +e) **Behavior change on an existing operator.** Such changes involve a lot of risks for existing users, therefore, usually, it is better to introduce +a completely new component or operator, for which see points a)..d) again. + +Considering the points above, please describe the feature or behavior you would like dotnet/reactive included: + +> Which next library version (i.e., patch, minor or major)? + +> What are the platform(s), environment(s) and related component version(s)? + +> How commonly is this feature needed (one project, several projects, company-wide, global)? + +> Please describe the feature. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/pr_ix.md b/.github/PULL_REQUEST_TEMPLATE/pr_ix.md new file mode 100644 index 0000000000..be4ebfcc65 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pr_ix.md @@ -0,0 +1,56 @@ +--- +name: Pull request for Ix +about: Creates a Pull request regarding a bug, enhancement or feature request for Ix.NET +title: '' +labels: '[area] Ix' +assignees: '' +---Hello and thank you for contributing to dotnet/reactive. Before you proceed by creating a pull request (PR): + +> Please make sure your contribution is in line with the project's [licensing model](https://github.com/dotnet/reactive/blob/master/LICENSE) and +your employment allows you to contribute to open source. + +> Please sign the [Contributor License Agreement](https://cla.dotnetfoundation.org/dotnet/reactive?pullRequest=1101) in case the CLA bot asks you +for being a new contributor. + +> Please make sure you target the `master` branch when creating the PR. + +What is the nature of your contribution? + +#### Bugfix + +> Please describe what and how the bug manifested itself and what kind of fix did you implement. +> Practically, you are writing these descriptions for the search engines so others can find the resolution easier. + +> Please reference the related issue(s) to the original bug report (example: `Fixes #X`, `Resolves #X`). +> Note that some behaviors are by design and are not bugs. If you are unsure, please open an [issue](https://github.com/dotnet/reactive/issues) first. + +> Please include the relevant unit test(s) that verify the fix works. +> It is recommended you write the unit test(s) first to see they failed before your fix; however, there is +> no need to post a PR to demonstrate this failure stage. Please post in a state where the issue is resolved. + +#### Enhancement + +> Please consider opening an [issue](https://github.com/dotnet/reactive/issues) first to discuss the kind and impact of the enhancement first, +> if such issue doesn't exist yet. Also please check if there was a consensus about accepting such an enhancement. + +> Please describe how, what and why the enhancement is implemented. +> Practically, you are writing these descriptions for the search engines so others can find the change details easier. + +> Please reference the related issue(s) to the original issue report (example: `Fixes #X`, `Resolves #X`). + +> Please include the relevant unit test(s) or benchmark(s) that show or verify the enhancement works. + +#### Feature request + +> We strongly recommend opening an [issue](https://github.com/dotnet/reactive/issues) first to discuss the nature and impact of the request first. +> If such an issue already exists, please check if there was a consensus and approval for accepting a contribution. + +> Please describe what request is about, how it works in general and what possible corner cases it or the user should consider. +> Please include some basic usage examples of the important components and/or overloads. +> Practically, you are writing these descriptions for the search engines so others can find out about the new feature easier. + +> Please reference the related issue(s) to the original issue report (example: `Resolves #X`). + +> Please include unit tests that verify the behavior of the new feature. Please make sure the code coverage is reasonably high with the new code. +> Depending on the feature, you may want to include actual multi-threaded test cases to verify the correct async behavior, however, +> please be mindful of the time such tests take and try to stay under a few seconds. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/pr_rx.md b/.github/PULL_REQUEST_TEMPLATE/pr_rx.md new file mode 100644 index 0000000000..8e98ac34d8 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pr_rx.md @@ -0,0 +1,57 @@ +--- +name: Pull request for Rx +about: Creates a Pull request regarding a bug, enhancement or feature request for Rx.NET +title: '' +labels: '[area] Rx' +assignees: '' +--- +Hello and thank you for contributing to dotnet/reactive. Before you proceed by creating a pull request (PR): + +> Please make sure your contribution is in line with the project's [licensing model](https://github.com/dotnet/reactive/blob/master/LICENSE) and +your employment allows you to contribute to open source. + +> Please sign the [Contributor License Agreement](https://cla.dotnetfoundation.org/dotnet/reactive?pullRequest=1101) in case the CLA bot asks you +for being a new contributor. + +> Please make sure you target the `master` branch when creating the PR. + +What is the nature of your contribution? + +#### Bugfix + +> Please describe what and how the bug manifested itself and what kind of fix did you implement. +> Practically, you are writing these descriptions for the search engines so others can find the resolution easier. + +> Please reference the related issue(s) to the original bug report (example: `Fixes #X`, `Resolves #X`). +> Note that some behaviors are by design and are not bugs. If you are unsure, please open an [issue](https://github.com/dotnet/reactive/issues) first. + +> Please include the relevant unit test(s) that verify the fix works. +> It is recommended you write the unit test(s) first to see they failed before your fix; however, there is +> no need to post a PR to demonstrate this failure stage. Please post in a state where the issue is resolved. + +#### Enhancement + +> Please consider opening an [issue](https://github.com/dotnet/reactive/issues) first to discuss the kind and impact of the enhancement first, +> if such an issue doesn't exist yet. Also please check if there was a consensus about accepting such an enhancement. + +> Please describe how, what and why the enhancement is implemented. +> Practically, you are writing these descriptions for the search engines so others can find the change details easier. + +> Please reference the related issue(s) to the original issue report (example: `Fixes #X`, `Resolves #X`). + +> Please include the relevant unit test(s) or benchmark(s) that show or verify the enhancement works. + +#### Feature request + +> We strongly recommend opening an [issue](https://github.com/dotnet/reactive/issues) first to discuss the nature and impact of the request first. +> If such an issue already exists, please check if there was a consensus and approval for accepting a contribution. + +> Please describe what request is about, how it works in general and what possible corner cases it or the user should consider. +> Please include some basic usage examples of the important components and/or overloads. +> Practically, you are writing these descriptions for the search engines so others can find out about the new feature easier. + +> Please reference the related issue(s) to the original issue report (example: `Resolves #X`). + +> Please include unit tests that verify the behavior of the new feature. Please make sure the code coverage is reasonably high with the new code. +> Depending on the feature, you may want to include actual multi-threaded test cases to verify the correct async behavior, however, +> please be mindful of the time such tests take and try to stay under a few seconds. \ No newline at end of file