Skip to content

Commit

Permalink
Extracted from Fluent Assertions
Browse files Browse the repository at this point in the history
  • Loading branch information
dennisdoomen committed Oct 26, 2023
0 parents commit b464027
Show file tree
Hide file tree
Showing 91 changed files with 1,093,224 additions and 0 deletions.
394 changes: 394 additions & 0 deletions .editorconfig

Large diffs are not rendered by default.

65 changes: 65 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

*.sh text eol=lf

###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp

###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary

###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary

###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
103 changes: 103 additions & 0 deletions .github/ISSUE_TEMPLATE/01_bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: 🐞 Bug Report
description: Create a report to help us improve
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
We welcome bug reports! Please see our [contribution guidelines](https://github.com/fluentassertions/fluentassertions/blob/develop/CONTRIBUTING.md#writing-a-good-bug-report) for more information on writing a good bug report.
**Before continuing, have you:**
* Tried upgrading to newest version of Fluent Assertions, to see if your issue has already been resolved and released?
* Checked existing open *and* closed [issues](https://github.com/fluentassertions/fluentassertions/issues?utf8=%E2%9C%93&q=is%3Aissue), to see if the issue has already been reported?
* Tried reproducing your problem in a new isolated project?
* Read the [documentation](https://fluentassertions.com/introduction)?
* Searched the two [test](https://github.com/fluentassertions/fluentassertions/tree/develop/Tests/FluentAssertions.Specs) [suites](https://github.com/fluentassertions/fluentassertions/tree/develop/Tests/FluentAssertions.Equivalency.Specs) if there is a test documenting the expected behavior?
* Considered if this is a general question and not a bug? For general questions please use [Stack Overflow](https://stackoverflow.com/questions/tagged/fluent-assertions?mixed=1).
- type: textarea
id: background
attributes:
label: Description
description: Please share a clear and concise description of the problem.
placeholder: Description
validations:
required: true
- type: textarea
id: repro-steps
attributes:
label: Reproduction Steps
description: |
Please include minimal steps to reproduce the problem if possible. E.g.: the smallest possible code snippet; or a small project, with steps to run it.
Always include text as text rather than screenshots so code can easily be copied and will show up in searches.
Stack Overflow has a great article about [how to create a minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example).
placeholder: Minimal Reproduction
value: |
```csharp
// Arrange
string input = "MyString";
// Act
char result = input[0];
// Assert
result.Should().Be('M');
```
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: |
Provide a description of the expected behavior.
placeholder: Expected behavior
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: Actual behavior
description: |
Provide a description of the actual behavior observed. If applicable please include any error messages or exception stacktraces.
placeholder: Actual behavior
validations:
required: true
- type: textarea
id: regression
attributes:
label: Regression?
description: |
Did this work in a previous release of Fluent Assertions? If you can try a previous release to find out, that can help us narrow down the problem. If you don't know, that's OK.
placeholder: Regression?
validations:
required: false
- type: textarea
id: known-workarounds
attributes:
label: Known Workarounds
description: |
Please provide a description of any known workarounds.
placeholder: Known Workarounds
validations:
required: false
- type: textarea
id: configuration
attributes:
label: Configuration
description: |
Please provide more information on your .NET configuration:
* Which version of Fluent Assertions are you using?
* Which .NET runtime and version are you targeting? E.g. .NET framework 4.6.1 or .NET Core 2.1.
placeholder: Configuration
validations:
required: false
- type: textarea
id: other-info
attributes:
label: Other information
description: |
If you have an idea where the problem might lie, let us know that here. Please include any pointers to code, relevant changes, or related issues you know of.
placeholder: Other information
validations:
required: false
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/02_api_proposal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
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/fluentassertions/fluentassertions/blob/develop/CONTRIBUTING.md#contributing-changes). 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.
placeholder: API declaration (no method bodies)
value: |
```C#
public class EnumAssertions<TEnum, TAssertions>
{
public AndConstraint<TAssertions> BeDefined(string because = "", params object[] becauseArgs);
public AndConstraint<TAssertions> NotBeDefined(string because = "", params object[] becauseArgs);
}
```
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 usable.
placeholder: API usage
value: |
```C#
var dayOfWeek = (DayOfWeek)1;
dayOfWeek.Should().BeDefined();
var invalidDayOfWeek = (DayOfWeek)999;
invalidDayOfWeek.Should().NotBeDefined();
```
validations:
required: true
- type: textarea
id: alternative-designs
attributes:
label: Alternative Designs
description: |
Please provide alternative designs. This might not be APIs; for example instead of providing new APIs an option might be to change the behavior of an existing API.
placeholder: Alternative designs
validations:
required: false
- 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. If you are proposing a new overload of `Should()` include what type it currently resolves to for the type in question.
placeholder: Risks
validations:
required: false
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/03_general_feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: 💡 General feature (not including API proposals)
description: Discuss a new feature that does not change the public API surface
title: "[Feature]: "
labels: [feature, triage]
body:
- type: markdown
attributes:
value: |
You have an idea for a new feature? Cool, let's discuss it.
- type: textarea
id: background
attributes:
label: Background and motivation
description: Please describe the purpose of the new feature.
placeholder: Purpose
validations:
required: true
- type: textarea
id: alternative-concerns
attributes:
label: Alternative Concerns
description: |
Please provide alternatives you have thought about.
placeholder: Alternative designs
validations:
required: false
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
blank_issues_enabled: true
contact_links:
- name: 📚 Documentation
url: https://fluentassertions.com/introduction/
about: Read our comprehensive documentation.
- name: ⭐ Sponsor Fluent Assertions
url: https://github.com/sponsors/fluentassertions
about: Help the continued development.
- name: 💬 Ask on Stack Overflow
url: https://stackoverflow.com/questions/tagged/fluent-assertions
about: The best place for asking general purpose questions.
- name: 💬 Ask on Slack
url: https://fluentassertionsslack.herokuapp.com/
about: Get in touch with the whole community.
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- Please provide a description of your changes above the IMPORTANT checklist -->


## IMPORTANT

* [ ] If the PR touches the public API, the changes have been approved in a separate issue with the "api-approved" label.
* [ ] The code complies with the [Coding Guidelines for C#](https://www.csharpcodingguidelines.com/).
* [ ] The changes are covered by unit tests which follow the Arrange-Act-Assert syntax and the naming conventions such as is used [in these tests](../tree/develop/Tests/FluentAssertions.Equivalency.Specs/MemberMatchingSpecs.cs#L51-L430).
* [ ] If the PR changes the public API the changes needs to be included by running [AcceptApiChanges.ps1](../tree/develop/AcceptApiChanges.ps1) or [AcceptApiChanges.sh](../tree/develop/AcceptApiChanges.sh).
29 changes: 29 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
changelog:
exclude:
labels:
- changelog-ignore
authors: [ ]
categories:
- title: Breaking Changes
labels:
- "breaking change"
- title: New features
labels:
- "feature"
- title: Improvements
labels:
- "enhancement"
- "performance"
- title: Fixes
labels:
- "bug"
- "regression"
- title: Fixes (extensibility)
labels:
- "extensibility"
- title: Documentation
labels:
- "documentation"
- title: Others
labels:
- "*"
72 changes: 72 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: build

on: [push, pull_request]

jobs:
build:

runs-on: windows-latest

env:
DOTNET_NOLOGO: true

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Setup .NET SDKs
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
2.1.x
3.1.x
6.0.x
7.0.x
- name: Run NUKE
run: ./build.ps1
env:
NuGetApiKey: ${{ secrets.NUGETAPIKEY }}

- name: Check for 'lcov.info' existence
id: check_files
uses: andstor/file-existence-action@v2
with:
files: "TestResults/reports/lcov.info"

- name: coveralls
uses: coverallsapp/github-action@v2
if: steps.check_files.outputs.files_exists == 'true'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: TestResults/reports/lcov.info

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
path: ./Artifacts/*
only-unit-tests:

strategy:
matrix:
os: [ubuntu-22.04, macos-12]

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Setup .NET SDKs
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
2.1.x
3.1.x
6.0.x
7.0.x
- name: Run NUKE
run: ./build.sh UnitTests

0 comments on commit b464027

Please sign in to comment.