Skip to content

Commit 1ad03a2

Browse files
committed
Merge branch 'master' into release/5.0.0
2 parents 9ca891f + 4a38cc0 commit 1ad03a2

File tree

6 files changed

+62
-47
lines changed

6 files changed

+62
-47
lines changed

.github/ISSUE_TEMPLATE/0-bug.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: "\U0001F41B Bug Report"
3-
about: Report a bug or an issue you've encoutered
3+
about: Report a bug or technical issue you've encoutered. Open a question if unsure.
44
title: "\U0001F41B "
55
labels: 'bug'
66
assignees: ''
@@ -17,10 +17,12 @@ assignees: ''
1717
### Expected Behavior
1818
<!-- A clear and concise description of what you expected to happen. -->
1919

20-
### Tasks
20+
### Checklist
2121

22+
- [ ] Read the [Contributing guidelines](https://github.com/AutoFixture/AutoFixture/blob/master/CONTRIBUTING.md) and [Code of Conduct](https://github.com/AutoFixture/AutoFixture/blob/master/CODE_OF_CONDUCT.md) documents
2223
- [ ] Updated all AutoFixture and related libraries
23-
- [ ] Confirmed in support forums if behavior is expected
24+
- [ ] Confirmed in [support forums](https://github.com/AutoFixture/AutoFixture/discussions/categories/q-a) that the behavior is a bug
25+
- [ ] Checked the bug is not a duplicate
2426

2527
### More Information
2628
<!-- Add any other context about the problem here. -->

.github/ISSUE_TEMPLATE/1-security-issue.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@ Hello,
2525
- AutoFixture.AutoMoq v4.10.0
2626
-->
2727

28-
### Tasks
28+
### Checklist
2929

30+
- [ ] Read the [Contributing guidelines](https://github.com/AutoFixture/AutoFixture/blob/master/CONTRIBUTING.md) and [Code of Conduct](https://github.com/AutoFixture/AutoFixture/blob/master/CODE_OF_CONDUCT.md) documents
3031
- [ ] Issue reported to issue owner (if it comes from a third party library)
3132
- [ ] Attached links to GitHub Advisory Database or other authority
33+
- [ ] Checked the issue is not a duplicate
3234

3335
### More Information
3436
<!-- Add any other context about the problem here. -->

.github/ISSUE_TEMPLATE/2-feature.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: "\U00002728 New Feature"
3-
about: Describe a new feature
3+
about: Describe a new feature. ONLY for features confirmed for development.
44
title: "\U00002728 "
55
labels: 'feature'
66
assignees: ''
@@ -14,9 +14,10 @@ assignees: ''
1414
<!-- A code sample or test that demonstrates the proposed API. -->
1515
<!-- For larger samples provide a gist or example repository. -->
1616

17-
### Tasks
17+
### Checklist
1818

19-
- [ ] Confirmed feature idea with maintainers in support forums
19+
- [ ] Read the [Contributing guidelines](https://github.com/AutoFixture/AutoFixture/blob/master/CONTRIBUTING.md) and [Code of Conduct](https://github.com/AutoFixture/AutoFixture/blob/master/CODE_OF_CONDUCT.md) documents
20+
- [ ] Confirmed feature idea with maintainers in [support forums](https://github.com/AutoFixture/AutoFixture/discussions/categories/ideas)
2021

2122
### More Information
2223
<!-- Add any other context about the problem here. -->

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
blank_issues_enabled: true
1+
blank_issues_enabled: false
22
contact_links:
33
- name: 💡 New Idea
44
url: https://github.com/AutoFixture/AutoFixture/discussions/categories/ideas

CONTRIBUTING.md

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,50 @@
11
# How to contribute to AutoFixture
22

3-
AutoFixture is currently being developed in C# on .NET 4.5.2 and .NET Standard using Visual Studio 2017 Update 5 or later with [xUnit.net](http://xunit.codeplex.com/) as the unit testing framework. So far, all development has been done with TDD, so there's a pretty high degree of code coverage, and the aim is to keep it that way.
3+
AutoFixture is currently being developed in C# 10 and F# 6 on .NET Framework V4.6.2, .NET Standard 2.0, and .NET 6 using Visual Studio 2022 or later, with [xUnit.net](http://xunit.net) as the unit testing framework.
4+
So far, all development has been done with TDD, so there's a pretty high degree of code coverage, and the aim is to keep it that way.
45

5-
## Build
6+
## Code of Conduct
67

7-
AutoFixture uses [FAKE](https://github.com/fsprojects/FAKE) as a build engine. If you would like to build the AutoFixture locally, run the `build.cmd` file and wait for the result.
8+
Before continuing, make sure that you are familiar with the [Code of Conduct document](https://github.com/AutoFixture/AutoFixture/blob/master/CODE_OF_CONDUCT.md), as it applies to all interactions within the project.
89

9-
The repository state (the last tag name and number of commits since the last tag) is used to determine the build version. If you would like to override the auto-generated AutoFixture version, set the `BUILD_VERSION` environment variable before calling the `build.cmd` file. Example for PowerShell:
10+
## Issues
1011

11-
```cmd
12-
$env:BUILD_VERSION='3.52.0'; .\build.cmd
13-
```
12+
Issues in GitHub have historically been a very overloaded term that, depending on the repository, can mean different things, from bugs to feature ideas to be implemented some time in the future, so it's common for people carry assumptions from other repositories they interacted with.
13+
However, this project reserves the use of [Issues](https://github.com/AutoFixture/AutoFixture/issues) only to bugs, tasks, and vulnerability reports, that have been **confirmed** by a maintainer. All other discussions (e.g. feature ideas, questions, etc.) are reserved to the [Discussions](https://github.com/AutoFixture/AutoFixture/discussions) section.
14+
Follow the suggestions in the **New Issue** menu, to ensure you have picked the correct option.
1415

15-
Refer to the [Build.fsx](Build.fsx) file to get information about all the supported build keys.
16+
When opening a new issue, follow the instructions included with the template. <ins>**DO NOT** alter the template structure</ins>. Issues not following the template might be ignored and even closed.
1617

17-
## Dependencies
18+
## Build
1819

19-
All the external dependencies are restored during the build and don't need to be committed to the repository.
20-
If you would like to work with project offline, ensure to trigger a build while you are still online so dependencies are cached. To trigger a build run the `build.cmd` file located in the root directory of the repo.
20+
AutoFixture uses [NUKE](https://nuke.build/) as a build engine. If you would like to build the AutoFixture locally, run the `build.cmd` file and wait for the result.
2121

22-
## Verification
22+
The repository state (the last tag name and number of commits since the last tag) is used to determine the build version. This process is automated using [GitVersion](https://gitversion.net/)
23+
24+
Refer to the output of `build.cmd --help` to get information about all the supported build paramters.
2325

24-
There are several different targeted solutions to be found under the `\Src` folder, but be aware that the final verification step before pushing to the repository is to successfully run all the unit tests in the `build.cmd` file.
26+
## Verification
2527

2628
As part of the verification build, Code Analysis is executed in a configuration that treats warnings as errors. For unit test projects code most of the rules are suppressed so only missing warnings are expected. No CA warnings should be suppressed unless the documented conditions for suppression are satisfied. Otherwise, a documented agreement between at least two active developers of the project should be reached to allow a suppression of a non-suppressible warning.
2729

30+
The final step of the CI pipeline will be running full solution test coverage. While there are no strict rules on the test coverage ensure that all new flows have been properly tested and documented.
31+
32+
To ensure all rules are respected, before publishing the PR, run the command below from the root directory of the repository.
33+
This will verify that all required code practices have been followed, run all tests in the solution, and will generate a HTML coverage report (located in `./artifacts/reports/`) that you can inspect to ensure you've covered all updated flows.
34+
35+
```sh
36+
build.cmd Verify Cover --no-logo --configuration Release
37+
```
38+
2839
## Pull requests
2940

3041
When developing for AutoFixture, please respect the coding style already present. Look around in the source code to get a feel for it.
3142

3243
Please keep line lengths under 120 characters. Line lengths over 120 characters don't fit into the standard GitHub code listing window, so it requires vertical scrolling to review.
3344

34-
Also, please follow the [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html). AutoFixture is a fairly typical open source project: if you want to contribute, start by [creating a fork](https://help.github.com/articles/fork-a-repo/) and [sending a pull request](https://help.github.com/articles/about-pull-requests/) when you have something you wish to commit. When creating pull requests, please keep the Single Responsibility Principle in mind. A pull request that does a single thing very well is more likely to be accepted. See also the article [The Rules of the Open Road](http://blog.half-ogre.com/posts/software/rules-of-the-open-road) for more good tips on working with OSS and Pull Requests, as well as these [10 tips for better Pull Requests](http://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests).
45+
Also, please follow the [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html). AutoFixture is a fairly typical open source project: if you want to contribute, start by [creating a fork](https://help.github.com/articles/fork-a-repo/) and [sending a pull request](https://help.github.com/articles/about-pull-requests/) when you have something you wish to commit. When creating pull requests, please keep the Single Responsibility Principle in mind. A pull request that does a single thing very well is more likely to be accepted. See also the article [The Rules of the Open Road](https://web.archive.org/web/20170407192632/http://blog.half-ogre.com/posts/software/rules-of-the-open-road) for more good tips on working with OSS and Pull Requests, as well as these [10 tips for better Pull Requests](http://blog.ploeh.dk/2015/01/15/10-tips-for-better-pull-requests).
3546

36-
For complex pull requests, you are encouraged to first start a discussion on the [issue list](https://github.com/AutoFixture/AutoFixture/issues). This can save you time, because the AutoFixture regulars can help verify your idea, or point you in the right direction.
47+
For complex pull requests, you are encouraged to first start a discussion in the [Discussions section](https://github.com/AutoFixture/AutoFixture/discussions). This can save you time, because the AutoFixture regulars can help verify your idea, or point you in the right direction.
3748

3849
Some existing issues are marked with [the `good first issue` tag](https://help.github.com/articles/finding-open-source-projects-on-github/#searching-using-labels). These are good candidates to attempt, if you are just getting started with AutoFixture.
3950

@@ -47,13 +58,13 @@ AutoFixture follows [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.ht
4758

4859
## Continuous Integration
4960

50-
AutoFixture has been set up for Continuous Integration. The build is hosted on [AppVeyor](https://ci.appveyor.com/project/AutoFixture/autofixture) and runs automatically every time a new commit is pushed to any of the [public branches](https://github.com/AutoFixture/AutoFixture/branches) or a Pull Request is submitted. AutoFixture uses GitHub's [Commit Status API](https://github.com/blog/1227-commit-status-api#pull-requests) to prevent Pull Requests that don't pass the build from being accidentally merged.
61+
AutoFixture has been set up for Continuous Integration. The build is in [GitHub Actions](https://github.com/AutoFixture/AutoFixture/actions) and runs automatically every time a new commit is pushed to any of the [public branches](https://github.com/AutoFixture/AutoFixture/branches) or a Pull Request is submitted. AutoFixture uses GitHub's [Commit Status API](https://github.com/blog/1227-commit-status-api#pull-requests) to prevent Pull Requests that don't pass the build from being accidentally merged.
5162

52-
The build process is implemented in the [`Build.fsx`](https://github.com/AutoFixture/AutoFixture/blob/master/Build.fsx) file using [FAKE](http://fsharp.github.io/FAKE/) and consists of four main steps:
63+
The build process is implemented in the `_build` project using [NUKE](http://nuke.build/) and consists of four main steps:
5364

5465
1. Compile all projects
55-
2. Run static analysis on all projects using [FxCop](https://en.wikipedia.org/wiki/FxCop) and [Roslyn Analyzers package](https://www.nuget.org/packages/Microsoft.CodeAnalysis.FxCopAnalyzers).
66+
2. Run static analysis on all projects using [FxCop](https://en.wikipedia.org/wiki/FxCop) and [Roslyn Analyzers package](https://www.nuget.org/packages/Microsoft.CodeAnalysis.FxCopAnalyzers).
5667
3. Run [all tests](https://ci.appveyor.com/project/AutoFixture/autofixture/build/tests)
5768
4. Create [NuGet packages](https://ci.appveyor.com/project/AutoFixture/autofixture/build/artifacts)
5869

59-
The NuGet packages produced by the latest build can be downloaded directly from [AppVeyor](https://ci.appveyor.com/project/AutoFixture/autofixture/build/artifacts).
70+
The NuGet packages produced by the latest build can be downloaded directly from [Releases](https://github.com/AutoFixture/AutoFixture/releases).

0 commit comments

Comments
 (0)