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

Fixes nullability problems with dictionaries #3023

Merged
merged 13 commits into from
Aug 13, 2024

Conversation

ozziepeeps
Copy link
Contributor

@ozziepeeps ozziepeeps commented Aug 12, 2024

Pull Request

The issue or feature being addressed

Fixes #3022

Details on the issue fix or feature implementation

Fixes both issues described in the bug, namely:

  1. Correctly describing Dictionary<string, int>? as having the int value being NON nullable in additionalProperties
  2. Support IDictionary<,> and IReadOnlyDictionary<,> in addition to Dictionary<,> so that the behavior is consistent across interface vs concrete

@codecov-commenter
Copy link

codecov-commenter commented Aug 12, 2024

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

Attention: Patch coverage is 96.55172% with 1 line in your changes missing coverage. Please review.

Project coverage is 90.60%. Comparing base (30fb944) to head (542c4ae).

Files Patch % Lines
...SwaggerGen/SchemaGenerator/MemberInfoExtensions.cs 92.85% 1 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3023      +/-   ##
==========================================
- Coverage   90.61%   90.60%   -0.01%     
==========================================
  Files          74       74              
  Lines        2962     2981      +19     
  Branches      469      477       +8     
==========================================
+ Hits         2684     2701      +17     
- Misses        278      280       +2     
Flag Coverage Δ
Linux 90.60% <96.55%> (-0.01%) ⬇️
Windows ?
macOS 90.60% <96.55%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ozziepeeps ozziepeeps changed the title Fixes #3022 Fixes nullability problems with dictionaries Aug 12, 2024
@ozziepeeps
Copy link
Contributor Author

Hi @domaindrivendev and @martincostello, thank you for an excellent library. This is my first PR into Swashbuckle.AspNetCore, so please let me know if I'm missing anything!

@martincostello martincostello added this to the v6.7.1 milestone Aug 13, 2024
Copy link
Collaborator

@martincostello martincostello left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@martincostello martincostello enabled auto-merge (squash) August 13, 2024 16:16
@martincostello martincostello merged commit f140d98 into domaindrivendev:master Aug 13, 2024
8 checks passed
@ozziepeeps ozziepeeps deleted the fix branch August 13, 2024 16:19
@martincostello
Copy link
Collaborator

Version 6.7.1 is now available from NuGet.org which resolves this issue.

gritcsenko added a commit to gritcsenko/HomeInventory that referenced this pull request Aug 18, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[Swashbuckle.AspNetCore](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore)
| `6.7.0` -> `6.7.1` |
[![age](https://developer.mend.io/api/mc/badges/age/nuget/Swashbuckle.AspNetCore/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/Swashbuckle.AspNetCore/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/Swashbuckle.AspNetCore/6.7.0/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Swashbuckle.AspNetCore/6.7.0/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>domaindrivendev/Swashbuckle.AspNetCore
(Swashbuckle.AspNetCore)</summary>

###
[`v6.7.1`](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.7.1)

#### What's Changed

- docs: Update README.md by
[@&#8203;WeihanLi](https://togithub.com/WeihanLi) in
[domaindrivendev/Swashbuckle.AspNetCore#3002
- Support `[DataMember]` `IsRequired` in
`NewtonsoftDataContractResolver` by
[@&#8203;ouvreboite](https://togithub.com/ouvreboite) in
[domaindrivendev/Swashbuckle.AspNetCore#2644
- Add API analysers by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3003
- Update README by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3004
- docs: fix example code formatting by
[@&#8203;WeihanLi](https://togithub.com/WeihanLi) in
[domaindrivendev/Swashbuckle.AspNetCore#3010
- Fixes nullability problems with dictionaries by
[@&#8203;ozziepeeps](https://togithub.com/ozziepeeps) in
[domaindrivendev/Swashbuckle.AspNetCore#3023
- Fix handling of nullable structs by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3015
- Fix missing form parameter XML documentation by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3020

#### New Contributors

- [@&#8203;ouvreboite](https://togithub.com/ouvreboite) made their first
contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2644

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v6.7.0...v6.7.1

</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 was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/gritcsenko/HomeInventory).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
renovate bot added a commit to orso-co/Orso.Arpa.Api that referenced this pull request Aug 21, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[Swashbuckle.AspNetCore](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore)
| `6.7.0` -> `6.7.1` |
[![age](https://developer.mend.io/api/mc/badges/age/nuget/Swashbuckle.AspNetCore/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/Swashbuckle.AspNetCore/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/Swashbuckle.AspNetCore/6.7.0/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Swashbuckle.AspNetCore/6.7.0/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>domaindrivendev/Swashbuckle.AspNetCore
(Swashbuckle.AspNetCore)</summary>

###
[`v6.7.1`](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.7.1)

#### What's Changed

- docs: Update README.md by
[@&#8203;WeihanLi](https://togithub.com/WeihanLi) in
[domaindrivendev/Swashbuckle.AspNetCore#3002
- Support `[DataMember]` `IsRequired` in
`NewtonsoftDataContractResolver` by
[@&#8203;ouvreboite](https://togithub.com/ouvreboite) in
[domaindrivendev/Swashbuckle.AspNetCore#2644
- Add API analysers by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3003
- Update README by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3004
- docs: fix example code formatting by
[@&#8203;WeihanLi](https://togithub.com/WeihanLi) in
[domaindrivendev/Swashbuckle.AspNetCore#3010
- Fixes nullability problems with dictionaries by
[@&#8203;ozziepeeps](https://togithub.com/ozziepeeps) in
[domaindrivendev/Swashbuckle.AspNetCore#3023
- Fix handling of nullable structs by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3015
- Fix missing form parameter XML documentation by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3020

#### New Contributors

- [@&#8203;ouvreboite](https://togithub.com/ouvreboite) made their first
contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2644

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v6.7.0...v6.7.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 10pm every weekday,every
weekend,before 5am every weekday" in timezone Europe/Berlin, 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 was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/orso-co/Orso.Arpa.Api).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to smartive/cas-fee-adv-mumble-api that referenced this pull request Sep 5, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[Swashbuckle.AspNetCore](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore)
| `6.6.2` -> `6.7.3` |
[![age](https://developer.mend.io/api/mc/badges/age/nuget/Swashbuckle.AspNetCore/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/Swashbuckle.AspNetCore/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/Swashbuckle.AspNetCore/6.6.2/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Swashbuckle.AspNetCore/6.6.2/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[Swashbuckle.AspNetCore.Annotations](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore)
| `6.6.2` -> `6.7.3` |
[![age](https://developer.mend.io/api/mc/badges/age/nuget/Swashbuckle.AspNetCore.Annotations/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/Swashbuckle.AspNetCore.Annotations/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/Swashbuckle.AspNetCore.Annotations/6.6.2/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Swashbuckle.AspNetCore.Annotations/6.6.2/6.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>domaindrivendev/Swashbuckle.AspNetCore
(Swashbuckle.AspNetCore)</summary>

###
[`v6.7.3`](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.7.3)

##### What's Changed

- Fix nested types nullable context check by
[@&#8203;VladimirTyrin](https://togithub.com/VladimirTyrin) in
[domaindrivendev/Swashbuckle.AspNetCore#3043
- Use NullabilityInfoContext to determine if member is nullable by
[@&#8203;patrikwlund](https://togithub.com/patrikwlund) in
[domaindrivendev/Swashbuckle.AspNetCore#3046

##### New Contributors

- [@&#8203;VladimirTyrin](https://togithub.com/VladimirTyrin) made their
first contribution in
[domaindrivendev/Swashbuckle.AspNetCore#3043

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v6.7.2...v6.7.3

###
[`v6.7.2`](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.7.2)

#### What's Changed

- Use NullabilityInfoContext to determine dictionary value nullability
by [@&#8203;patrikwlund](https://togithub.com/patrikwlund) in
[domaindrivendev/Swashbuckle.AspNetCore#3041

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v6.7.1...v6.7.2

###
[`v6.7.1`](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.7.1)

#### What's Changed

- docs: Update README.md by
[@&#8203;WeihanLi](https://togithub.com/WeihanLi) in
[domaindrivendev/Swashbuckle.AspNetCore#3002
- Support `[DataMember]` `IsRequired` in
`NewtonsoftDataContractResolver` by
[@&#8203;ouvreboite](https://togithub.com/ouvreboite) in
[domaindrivendev/Swashbuckle.AspNetCore#2644
- Add API analysers by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3003
- Update README by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3004
- docs: fix example code formatting by
[@&#8203;WeihanLi](https://togithub.com/WeihanLi) in
[domaindrivendev/Swashbuckle.AspNetCore#3010
- Fixes nullability problems with dictionaries by
[@&#8203;ozziepeeps](https://togithub.com/ozziepeeps) in
[domaindrivendev/Swashbuckle.AspNetCore#3023
- Fix handling of nullable structs by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3015
- Fix missing form parameter XML documentation by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#3020

#### New Contributors

- [@&#8203;ouvreboite](https://togithub.com/ouvreboite) made their first
contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2644

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v6.7.0...v6.7.1

###
[`v6.7.0`](https://togithub.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.7.0)

#### What's Changed

- Allow Swagger UI CSS and JS paths to be configurable by
[@&#8203;mag1art](https://togithub.com/mag1art) in
[domaindrivendev/Swashbuckle.AspNetCore#2908
- Add `IncludeXmlCommentsForAssembly()` convience overload by
[@&#8203;leotsarev](https://togithub.com/leotsarev) in
[domaindrivendev/Swashbuckle.AspNetCore#2909
- Add snapshot tests using Verify by
[@&#8203;keahpeters](https://togithub.com/keahpeters) in
[domaindrivendev/Swashbuckle.AspNetCore#2929
- Add posibility to ignore properties in `[FromForm]` with
`[SwaggerIgnore]` by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2928
- Adding check for existing directory and creating if doesn't exist by
[@&#8203;matt-lethargic](https://togithub.com/matt-lethargic) in
[domaindrivendev/Swashbuckle.AspNetCore#2927
- Default null value on nullable types caused errors by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2941
- Add additional Verify tests by
[@&#8203;keahpeters](https://togithub.com/keahpeters) in
[domaindrivendev/Swashbuckle.AspNetCore#2950
- Only apply a SchemaFilter to create the description on SwaggerUI by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2943
- Add support for async filters by
[@&#8203;mauve](https://togithub.com/mauve) in
[domaindrivendev/Swashbuckle.AspNetCore#2938
- Fix package validation by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#2926
- Adding support for .NET 8 Model State attributes by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2958
- Only set Exclusive Range when they are by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2960
- `[AsParameters]` throwing error on cast when showing the description
with `EnableAnnotations()` by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2962
- Fix `RequestBodyFilterAnnotation` and `MultipleFromForm` for Minimal
APIs by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2963
- Swagger UI refactoring by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#2942
- Add help wanted badge by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#2911
- Move inline css and js to external files for SwaggerUI and ReDoc by
[@&#8203;junior-santana](https://togithub.com/junior-santana) in
[domaindrivendev/Swashbuckle.AspNetCore#2965
- Missing properties section when generating
`IFomFile`/`IFormFileCollection` by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2972
- Missing Encoding and RequiredProperties when `IFormFile` with OpenAPI
by [@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda)
in
[domaindrivendev/Swashbuckle.AspNetCore#2979
- Use `ApiParameter.Type` by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2980
- Document arrays of generic parameters with XML comments and support
overload methods by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2982
- Take into account \[JsonRequired] for System.Text.Json by
[@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda) in
[domaindrivendev/Swashbuckle.AspNetCore#2988
- Configure non-nullable types as required by
[@&#8203;AntiGuideAkquinet](https://togithub.com/AntiGuideAkquinet) in
[domaindrivendev/Swashbuckle.AspNetCore#2803
- Use `HttpMethods.IsGet()` by
[@&#8203;martincostello](https://togithub.com/martincostello) in
[domaindrivendev/Swashbuckle.AspNetCore#2971

#### New Contributors

- [@&#8203;mag1art](https://togithub.com/mag1art) made their first
contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2908
- [@&#8203;jgarciadelanoceda](https://togithub.com/jgarciadelanoceda)
made their first contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2928
- [@&#8203;matt-lethargic](https://togithub.com/matt-lethargic) made
their first contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2927
- [@&#8203;mauve](https://togithub.com/mauve) made their first
contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2938
- [@&#8203;junior-santana](https://togithub.com/junior-santana) made
their first contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2965
- [@&#8203;AntiGuideAkquinet](https://togithub.com/AntiGuideAkquinet)
made their first contribution in
[domaindrivendev/Swashbuckle.AspNetCore#2803

**Full Changelog**:
domaindrivendev/Swashbuckle.AspNetCore@v6.6.2...v6.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 9pm,before 6am" in timezone
Europe/Zurich, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/smartive/cas-fee-adv-mumble-api).

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

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
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Nullability problems with dictionaries
3 participants