Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New parameter ExcludeAssembliesWithoutSources to control automatic assembly exclusion #1164

Closed
petli opened this issue May 17, 2021 · 6 comments · Fixed by #1392
Closed

New parameter ExcludeAssembliesWithoutSources to control automatic assembly exclusion #1164

petli opened this issue May 17, 2021 · 6 comments · Fixed by #1392
Assignees
Labels
feature-request New feature request Priority:1 Very important to release, not a ship blocker

Comments

@petli
Copy link
Collaborator

petli commented May 17, 2021

Problem

Coverlet automatically excludes third-party assemblies from the coverage analysis, since they are usually not interesting to the user. The heuristic for determining if an assembly is a third-party dependency is if any of its source documents does not have a corresponding source file.

(Ref:

// We verify all docs and return false if not all are present in local
// We could have false negative if doc is not a source
// Btw check for all possible extension could be weak approach
// We exlude from the check the autogenerated source file(i.e. source generators)
if (!_fileSystem.Exists(docName) && !docName.EndsWith(".g.cs"))
)

C# source generators and some F# constructs add source documents to firsrt-party assemblies, causing them to be excluded by this heuristic, and compiler bugs may also trigger this. See e.g. #1084 #1145 #1100 #1297

The C# source generators are handled by identifying them using a best practice that the document names should end in ".g.cs", and similar logic can be added for the other issues. But the source generator naming is but a best practice and not all projects will follow it, and new compiler issues will likely turn up in the future, so this heuristic will continue to cause issues.

Suggested solution

Add a new parameter ExcludeAssembliesWithoutSources with the values MissingAny, MissingAll and None. MissingAny is the current behaviour, but MissingAll would be the new default behaviour to avoid these and future issues with generators. None would be a new setting to never filter on source files, for those rare cases where it may not make sense. Explicit include/exclude settings would override any filtering from this parameter.

Changing the default to include an assembly in the coverage if at least one source document exist may cause some third-party documents to be included, if the same file name exists in the project being analysed with coverlet (pointed out by @daveMueller). Users affected by this can then either change the setting to MissingAny to revert to the old behaviour, or explicitly exclude those assemblies.

Coverlet should still have a heuristic to ignore generated source files according to conventions, but now to avoid logging those cases.

(Edit: change parameter name in feature description to ExcludeAssembliesWithoutSources)

@petli
Copy link
Collaborator Author

petli commented Aug 5, 2021

A more consistent parameter name may be ExcludeAssembliesWithoutSources.

(Edit: the description above have been updated to this name now, replacing the original idea IgnoreAssembliesWithoutSources.)

@MarcoRossignoli MarcoRossignoli pinned this issue Aug 7, 2021
@MarcoRossignoli MarcoRossignoli added the Priority:1 Very important to release, not a ship blocker label Nov 8, 2021
@TomasMorton
Copy link

Ran into this because we heavily use this library: https://github.com/mcintyre321/OneOf with the source generator. It generates GenerateOneOfAttribute.cs in all of our projects. This causes coverlet to fail:
TpTrace Verbose: 0 : 8714, 1, 2022/06/17, 11:18:29.732, 9406716979570, datacollector.dll, [coverlet]Unable to instrument module: /Users/../src/bin/Debug/net6.0/redacted.dll, pdb without local source files, [/Users/../src/../OneOf.SourceGenerator/OneOf.SourceGenerator.OneOfGenerator/GenerateOneOfAttribute.cs]

Due to this only 2 of our 61 projects are able to be covered. We also use internal source generators. Relying on file suffix isn't really an option when you start using 3rd parties.

@petli petli changed the title New parameter IgnoreAssembliesWithoutSources to control automatic assembly exclusion New parameter ExcludeAssembliesWithoutSources to control automatic assembly exclusion Jul 25, 2022
@daveMueller
Copy link
Collaborator

I start working on this. But it could take some time 🙏.

@daveMueller daveMueller self-assigned this Sep 20, 2022
@daveMueller
Copy link
Collaborator

OK I just stumbled across this pr #1360, which basically already covers ExcludeAssembliesWithoutSources = None.
Should I remove the new parameter name InstrumentModulesWithoutLocalSources now and align it with the definition in this issue?

@MelGrubb
Copy link

I know this is closed, but ".generated.cs" is a pretty common naming style, as it ".designer.cs". Is there some reason that coverlet doesn't support all three?

@daveMueller
Copy link
Collaborator

@MelGrubb I think they are all supported in the current version https://github.com/coverlet-coverage/coverlet/pull/1392/files#diff-be914c2ef40b4434ccb0927c453da5f7f2a4f828d601367f585bd7284349ba85L486-L490 but I also could be wrong.

At least I'm sure that in the upcoming version we removed this restriction completely and generated files can be named arbitrary.

renovate bot referenced this issue in cythral/brighid-commands May 21, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [coverlet.collector](https://github.com/coverlet-coverage/coverlet)
| nuget | major | `3.2.0` -> `6.0.0` |

---

### Release Notes

<details>
<summary>coverlet-coverage/coverlet</summary>

###
[`v6.0.0`](https://github.com/coverlet-coverage/coverlet/releases/tag/v6.0.0)

Fixed
\-Could not write lines to file CoverletSourceRootsMapping - in use by
another
process[https://github.com/coverlet-coverage/coverlet/issues/1155](https://github.com/coverlet-coverage/coverlet/issues/1155)5
-Incorrect coverage for methods returning IAsyncEnumerable in generic
classes[https://github.com/coverlet-coverage/coverlet/issues/1383](https://github.com/coverlet-coverage/coverlet/issues/1383)3
-Wrong branch coverage for async methods .NET Standard
1.x[https://github.com/coverlet-coverage/coverlet/issues/1376](https://github.com/coverlet-coverage/coverlet/issues/1376)6
-Empty path exception in visual basic
projects[https://github.com/coverlet-coverage/coverlet/issues/775](https://github.com/coverlet-coverage/coverlet/issues/775)5
-Allign published nuget package version to github release
version[https://github.com/coverlet-coverage/coverlet/issues/1413](https://github.com/coverlet-coverage/coverlet/issues/1413)3
\-Sync nuget and github release
version[https://github.com/coverlet-coverage/coverlet/issues/1122](https://github.com/coverlet-coverage/coverlet/issues/1122)22

Improvements
\-Migration of the project to .NET
6.0[https://github.com/coverlet-coverage/coverlet/pull/1473](https://github.com/coverlet-coverage/coverlet/pull/1473)3

Breaking changes
New parameter ExcludeAssembliesWithoutSources to control automatic
assembly exclusion
[https://github.com/coverlet-coverage/coverlet/issues/1164](https://github.com/coverlet-coverage/coverlet/issues/1164).
The parameter InstrumentModulesWithoutLocalSources has been removed.
since it can be handled by setting ExcludeAssembliesWithoutSources to
None.
The default heuristics for determining whether to instrument an assembly
has been changed. In previous versions any missing source file was taken
as a signal that it was a third-party project that shouldn't be
instrumented, with exceptions for some common file name patterns for
source generators. Now only assemblies where no source files at all can
be found are excluded from instrumentation, and the code for detecting
source generator files have been removed. To get back to the behaviour
that at least one missing file is sufficient to exclude an assembly, set
ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion
filters for more fine-grained control.

[Diff between 3.2.0 and
6.0.0](https://github.com/coverlet-coverage/coverlet/compare/v5.7.2...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/cythral/brighid-commands).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTcuMCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
vbreuss referenced this issue in Testably/Testably.Abstractions May 21, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [coverlet.collector](https://github.com/coverlet-coverage/coverlet)
| nuget | major | `3.2.0` -> `6.0.0` |

---

### Release Notes

<details>
<summary>coverlet-coverage/coverlet</summary>

###
[`v6.0.0`](https://github.com/coverlet-coverage/coverlet/releases/tag/v6.0.0)

Fixed
\-Could not write lines to file CoverletSourceRootsMapping - in use by
another
process[https://github.com/coverlet-coverage/coverlet/issues/1155](https://github.com/coverlet-coverage/coverlet/issues/1155)5\
\-Incorrect coverage for methods returning IAsyncEnumerable in generic
classes[https://github.com/coverlet-coverage/coverlet/issues/1383](https://github.com/coverlet-coverage/coverlet/issues/1383)3\
\-Wrong branch coverage for async methods .NET Standard
1.x[https://github.com/coverlet-coverage/coverlet/issues/1376](https://github.com/coverlet-coverage/coverlet/issues/1376)6\
\-Empty path exception in visual basic
projects[https://github.com/coverlet-coverage/coverlet/issues/775](https://github.com/coverlet-coverage/coverlet/issues/775)5\
\-Align published nuget package version to github release
version[https://github.com/coverlet-coverage/coverlet/issues/1413](https://github.com/coverlet-coverage/coverlet/issues/1413)3\
\-Sync nuget and github release
versions[https://github.com/coverlet-coverage/coverlet/issues/1122](https://github.com/coverlet-coverage/coverlet/issues/1122)2

Improvements
\-Migration of the project to .NET
6.0[https://github.com/coverlet-coverage/coverlet/pull/1473](https://github.com/coverlet-coverage/coverlet/pull/1473)3

Breaking changes
New parameter ExcludeAssembliesWithoutSources to control automatic
assembly exclusion
[https://github.com/coverlet-coverage/coverlet/issues/1164](https://github.com/coverlet-coverage/coverlet/issues/1164).
The parameter InstrumentModulesWithoutLocalSources has been removed.
since it can be handled by setting ExcludeAssembliesWithoutSources to
None.
The default heuristics for determining whether to instrument an assembly
has been changed. In previous versions any missing source file was taken
as a signal that it was a third-party project that shouldn't be
instrumented, with exceptions for some common file name patterns for
source generators. Now only assemblies where no source files at all can
be found are excluded from instrumentation, and the code for detecting
source generator files have been removed. To get back to the behaviour
that at least one missing file is sufficient to exclude an assembly, set
ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion
filters for more fine-grained control.

[Diff between 3.2.0 and
6.0.0](https://github.com/coverlet-coverage/coverlet/compare/v5.7.2...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/Testably/Testably.Abstractions).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ThorstenSauter referenced this issue in ThorstenSauter/NoPlan May 22, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [coverlet.collector](https://github.com/coverlet-coverage/coverlet)
| nuget | major | `3.2.0` -> `6.0.0` |

---

### Release Notes

<details>
<summary>coverlet-coverage/coverlet</summary>

###
[`v6.0.0`](https://github.com/coverlet-coverage/coverlet/releases/tag/v6.0.0)

Fixed
\-Could not write lines to file CoverletSourceRootsMapping - in use by
another
process[https://github.com/coverlet-coverage/coverlet/issues/1155](https://github.com/coverlet-coverage/coverlet/issues/1155)5\
\-Incorrect coverage for methods returning IAsyncEnumerable in generic
classes[https://github.com/coverlet-coverage/coverlet/issues/1383](https://github.com/coverlet-coverage/coverlet/issues/1383)3\
\-Wrong branch coverage for async methods .NET Standard
1.x[https://github.com/coverlet-coverage/coverlet/issues/1376](https://github.com/coverlet-coverage/coverlet/issues/1376)6\
\-Empty path exception in visual basic
projects[https://github.com/coverlet-coverage/coverlet/issues/775](https://github.com/coverlet-coverage/coverlet/issues/775)5\
\-Align published nuget package version to github release
version[https://github.com/coverlet-coverage/coverlet/issues/1413](https://github.com/coverlet-coverage/coverlet/issues/1413)3\
\-Sync nuget and github release
versions[https://github.com/coverlet-coverage/coverlet/issues/1122](https://github.com/coverlet-coverage/coverlet/issues/1122)2

Improvements
\-Migration of the project to .NET
6.0[https://github.com/coverlet-coverage/coverlet/pull/1473](https://github.com/coverlet-coverage/coverlet/pull/1473)3

Breaking changes
New parameter ExcludeAssembliesWithoutSources to control automatic
assembly exclusion
[https://github.com/coverlet-coverage/coverlet/issues/1164](https://github.com/coverlet-coverage/coverlet/issues/1164).
The parameter InstrumentModulesWithoutLocalSources has been removed.
since it can be handled by setting ExcludeAssembliesWithoutSources to
None.
The default heuristics for determining whether to instrument an assembly
has been changed. In previous versions any missing source file was taken
as a signal that it was a third-party project that shouldn't be
instrumented, with exceptions for some common file name patterns for
source generators. Now only assemblies where no source files at all can
be found are excluded from instrumentation, and the code for detecting
source generator files have been removed. To get back to the behaviour
that at least one missing file is sufficient to exclude an assembly, set
ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion
filters for more fine-grained control.

[Diff between 3.2.0 and
6.0.0](https://github.com/coverlet-coverage/coverlet/compare/v5.7.2...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 2am" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/ThorstenSauter/NoPlan).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
vbreuss referenced this issue in Testably/Testably.Architecture.Rules May 22, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [coverlet.collector](https://github.com/coverlet-coverage/coverlet)
| nuget | major | `3.2.0` -> `6.0.0` |

---

### Release Notes

<details>
<summary>coverlet-coverage/coverlet</summary>

###
[`v6.0.0`](https://github.com/coverlet-coverage/coverlet/releases/tag/v6.0.0)

Fixed
\-Could not write lines to file CoverletSourceRootsMapping - in use by
another
process[https://github.com/coverlet-coverage/coverlet/issues/1155](https://github.com/coverlet-coverage/coverlet/issues/1155)5\
\-Incorrect coverage for methods returning IAsyncEnumerable in generic
classes[https://github.com/coverlet-coverage/coverlet/issues/1383](https://github.com/coverlet-coverage/coverlet/issues/1383)3\
\-Wrong branch coverage for async methods .NET Standard
1.x[https://github.com/coverlet-coverage/coverlet/issues/1376](https://github.com/coverlet-coverage/coverlet/issues/1376)6\
\-Empty path exception in visual basic
projects[https://github.com/coverlet-coverage/coverlet/issues/775](https://github.com/coverlet-coverage/coverlet/issues/775)5\
\-Align published nuget package version to github release
version[https://github.com/coverlet-coverage/coverlet/issues/1413](https://github.com/coverlet-coverage/coverlet/issues/1413)3\
\-Sync nuget and github release
versions[https://github.com/coverlet-coverage/coverlet/issues/1122](https://github.com/coverlet-coverage/coverlet/issues/1122)2

Improvements
\-Migration of the project to .NET
6.0[https://github.com/coverlet-coverage/coverlet/pull/1473](https://github.com/coverlet-coverage/coverlet/pull/1473)3

Breaking changes
New parameter ExcludeAssembliesWithoutSources to control automatic
assembly exclusion
[https://github.com/coverlet-coverage/coverlet/issues/1164](https://github.com/coverlet-coverage/coverlet/issues/1164).
The parameter InstrumentModulesWithoutLocalSources has been removed.
since it can be handled by setting ExcludeAssembliesWithoutSources to
None.
The default heuristics for determining whether to instrument an assembly
has been changed. In previous versions any missing source file was taken
as a signal that it was a third-party project that shouldn't be
instrumented, with exceptions for some common file name patterns for
source generators. Now only assemblies where no source files at all can
be found are excluded from instrumentation, and the code for detecting
source generator files have been removed. To get back to the behaviour
that at least one missing file is sufficient to exclude an assembly, set
ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion
filters for more fine-grained control.

[Diff between 3.2.0 and
6.0.0](https://github.com/coverlet-coverage/coverlet/compare/v5.7.2...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/Testably/Testably.Architecture.Rules).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTguMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Valentin Breuß <vbreuss@gmail.com>
bruxisma referenced this issue in bruxisma/atmosphere May 22, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [coverlet.collector](https://github.com/coverlet-coverage/coverlet)
| nuget | major | `3.2.0` -> `6.0.0` |
| [coverlet.msbuild](https://github.com/coverlet-coverage/coverlet) |
nuget | major | `3.2.0` -> `6.0.0` |

---

### Release Notes

<details>
<summary>coverlet-coverage/coverlet</summary>

###
[`v6.0.0`](https://github.com/coverlet-coverage/coverlet/releases/tag/v6.0.0)

Fixed
\-Could not write lines to file CoverletSourceRootsMapping - in use by
another
process[https://github.com/coverlet-coverage/coverlet/issues/1155](https://github.com/coverlet-coverage/coverlet/issues/1155)5\
\-Incorrect coverage for methods returning IAsyncEnumerable in generic
classes[https://github.com/coverlet-coverage/coverlet/issues/1383](https://github.com/coverlet-coverage/coverlet/issues/1383)3\
\-Wrong branch coverage for async methods .NET Standard
1.x[https://github.com/coverlet-coverage/coverlet/issues/1376](https://github.com/coverlet-coverage/coverlet/issues/1376)6\
\-Empty path exception in visual basic
projects[https://github.com/coverlet-coverage/coverlet/issues/775](https://github.com/coverlet-coverage/coverlet/issues/775)5\
\-Align published nuget package version to github release
version[https://github.com/coverlet-coverage/coverlet/issues/1413](https://github.com/coverlet-coverage/coverlet/issues/1413)3\
\-Sync nuget and github release
versions[https://github.com/coverlet-coverage/coverlet/issues/1122](https://github.com/coverlet-coverage/coverlet/issues/1122)2

Improvements
\-Migration of the project to .NET
6.0[https://github.com/coverlet-coverage/coverlet/pull/1473](https://github.com/coverlet-coverage/coverlet/pull/1473)3

Breaking changes
New parameter ExcludeAssembliesWithoutSources to control automatic
assembly exclusion
[https://github.com/coverlet-coverage/coverlet/issues/1164](https://github.com/coverlet-coverage/coverlet/issues/1164).
The parameter InstrumentModulesWithoutLocalSources has been removed.
since it can be handled by setting ExcludeAssembliesWithoutSources to
None.
The default heuristics for determining whether to instrument an assembly
has been changed. In previous versions any missing source file was taken
as a signal that it was a third-party project that shouldn't be
instrumented, with exceptions for some common file name patterns for
source generators. Now only assemblies where no source files at all can
be found are excluded from instrumentation, and the code for detecting
source generator files have been removed. To get back to the behaviour
that at least one missing file is sufficient to exclude an assembly, set
ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion
filters for more fine-grained control.

[Diff between 3.2.0 and
6.0.0](https://github.com/coverlet-coverage/coverlet/compare/v5.7.2...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/bruxisma/atmosphere).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
dariuszkuc referenced this issue in apollographql/federation-hotchocolate Oct 19, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [coverlet.msbuild](https://github.com/coverlet-coverage/coverlet) |
`3.2.0` -> `6.0.0` |
[![age](https://developer.mend.io/api/mc/badges/age/nuget/coverlet.msbuild/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/coverlet.msbuild/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/coverlet.msbuild/3.2.0/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/coverlet.msbuild/3.2.0/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>coverlet-coverage/coverlet (coverlet.msbuild)</summary>

###
[`v6.0.0`](https://github.com/coverlet-coverage/coverlet/releases/tag/v6.0.0)

Fixed
\-Could not write lines to file CoverletSourceRootsMapping - in use by
another
process[https://github.com/coverlet-coverage/coverlet/issues/1155](https://github.com/coverlet-coverage/coverlet/issues/1155)5\
\-Incorrect coverage for methods returning IAsyncEnumerable in generic
classes[https://github.com/coverlet-coverage/coverlet/issues/1383](https://github.com/coverlet-coverage/coverlet/issues/1383)3\
\-Wrong branch coverage for async methods .NET Standard
1.x[https://github.com/coverlet-coverage/coverlet/issues/1376](https://github.com/coverlet-coverage/coverlet/issues/1376)6\
\-Empty path exception in visual basic
projects[https://github.com/coverlet-coverage/coverlet/issues/775](https://github.com/coverlet-coverage/coverlet/issues/775)5\
\-Align published nuget package version to github release
version[https://github.com/coverlet-coverage/coverlet/issues/1413](https://github.com/coverlet-coverage/coverlet/issues/1413)3\
\-Sync nuget and github release
versions[https://github.com/coverlet-coverage/coverlet/issues/1122](https://github.com/coverlet-coverage/coverlet/issues/1122)2

Improvements
\-Migration of the project to .NET
6.0[https://github.com/coverlet-coverage/coverlet/pull/1473](https://github.com/coverlet-coverage/coverlet/pull/1473)3

Breaking changes
New parameter ExcludeAssembliesWithoutSources to control automatic
assembly exclusion
[https://github.com/coverlet-coverage/coverlet/issues/1164](https://github.com/coverlet-coverage/coverlet/issues/1164).
The parameter InstrumentModulesWithoutLocalSources has been removed.
since it can be handled by setting ExcludeAssembliesWithoutSources to
None.
The default heuristics for determining whether to instrument an assembly
has been changed. In previous versions any missing source file was taken
as a signal that it was a third-party project that shouldn't be
instrumented, with exceptions for some common file name patterns for
source generators. Now only assemblies where no source files at all can
be found are excluded from instrumentation, and the code for detecting
source generator files have been removed. To get back to the behaviour
that at least one missing file is sufficient to exclude an assembly, set
ExcludeAssembliesWithoutSources to MissingAny, or use assembly exclusion
filters for more fine-grained control.

[Diff between 3.2.0 and
6.0.0](https://github.com/coverlet-coverage/coverlet/compare/v5.7.2...v6.0.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/apollographql/federation-hotchocolate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request New feature request Priority:1 Very important to release, not a ship blocker
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants