Skip to content

Commit 1575bf3

Browse files
CopilotMihaZupan
andauthored
Fix markdownlint violations across documentation and samples (#2988)
* Initial plan * Fix all markdownlint issues Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: MihaZupan <25307628+MihaZupan@users.noreply.github.com>
1 parent 9b962db commit 1575bf3

File tree

25 files changed

+102
-110
lines changed

25 files changed

+102
-110
lines changed

docs/DailyBuilds.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ Then follow the [Getting Started](https://learn.microsoft.com/aspnet/core/fundam
2828
Some features, such as new target frameworks, may require prerelease tooling builds for Visual Studio.
2929
These are available in the [Visual Studio Preview](https://www.visualstudio.com/vs/preview/).
3030

31-
#### To debug daily builds using Visual Studio
31+
To debug daily builds using Visual Studio
32+
------------------------------------------
3233

33-
* *Enable Source Link support* in Visual Studio should be enabled.
34-
* *Enable source server support* in Visual should be enabled.
35-
* *Enable Just My Code* should be disabled
36-
* Under Symbols enable the *Microsoft Symbol Servers* setting.
34+
- *Enable Source Link support* in Visual Studio should be enabled.
35+
- *Enable source server support* in Visual should be enabled.
36+
- *Enable Just My Code* should be disabled
37+
- Under Symbols enable the *Microsoft Symbol Servers* setting.

docs/designs/config.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Proposals:
2828
## Route config:
2929

3030
The proxy has a [config mechanism](https://github.com/dotnet/yarp/blob/b2cf5bdddf7962a720672a75f2e93913d16dfee7/samples/IslandGateway.Sample/appsettings.json#L26-L32) to define routes and map those to back end groups.
31-
```
31+
```json
3232
"Routes": [
3333
{
3434
"RouteId": "backend1/route1",
@@ -44,7 +44,7 @@ This basic structure is useful though the "Rule" [system](https://github.com/dot
4444
The ProxyRoute.Metadata dictionary may be able to be replaced or supplemented by giving direct access to the config node for that route. Compare to Kestrel's [EndpointConfig.ConfigSection](https://github.com/dotnet/aspnetcore/blob/f4d81e3af2b969744a57d76d4d622036ac514a6a/src/Servers/Kestrel/Core/src/Internal/ConfigurationReader.cs#L168-L175) property. That would allow for augmenting an endpoint with additional complex custom entries that the app code can reference for additional config actions.
4545

4646
Update: The custom rule system was modified by [#24](https://github.com/dotnet/yarp/pull/24) so that the config now looks like this:
47-
```
47+
```json
4848
"Routes": [
4949
{
5050
"RouteId": "backend1/route1",
@@ -69,7 +69,7 @@ A Backend is a collection of one or more BackendEndpoints and a set of policies
6969
Question: Why are the backends and the endpoints listed separately in config rather than nested? Object model links endpoints 1:1 with backends, so there doesn't seem to be a reason to list them separately.
7070

7171
Existing:
72-
```
72+
```json
7373
"Backends": [
7474
{
7575
"BackendId": "backend1"
@@ -94,7 +94,7 @@ Existing:
9494
},
9595
```
9696
Nested:
97-
```
97+
```json
9898
"Backends": [
9999
{
100100
"BackendId": "backend1",
@@ -117,7 +117,7 @@ Nested:
117117
],
118118
```
119119
Additional feedback: Why is it using arrays instead of objects? These items are not order sensitive, and they already have id properties anyways.
120-
```
120+
```json
121121
"Backends": {
122122
"backend1" : {
123123
"Endpoints": [
@@ -137,7 +137,7 @@ Additional feedback: Why is it using arrays instead of objects? These items are
137137
```
138138

139139
Update: The backend and endpoint layout has been modified to the following:
140-
```
140+
```json
141141

142142
"Backends": {
143143
"backend1": {
@@ -161,7 +161,7 @@ Update: The backend and endpoint layout has been modified to the following:
161161

162162
Config reloading is not yet a blocking requirement but we do expect to need it in the future. This design needs to factor in how reloading might work when it does get added.
163163

164-
** NOTE ** The proxy code has a concept of Signals that is used to convey config change. We need to see how this integrates with change notifications from our config sources and flows through the system.
164+
**NOTE** The proxy code has a concept of Signals that is used to convey config change. We need to see how this integrates with change notifications from our config sources and flows through the system.
165165

166166
The Extensions config and options systems have support for change detection and reloading but very few components take advantage of it. Logging is the primary consumer today.
167167

@@ -188,7 +188,7 @@ The config reload code has been moved from the sample into the product assemblie
188188
## Augmenting config via code
189189

190190
Some things are easier to do in code and we want to be able to support that while still pulling more transient data from config. [Kestrel](https://github.com/dotnet/aspnetcore/blob/aff01ebd7f82d641a4cfbd4a34954300311d9c2b/src/Servers/Kestrel/samples/SampleApp/Startup.cs#L138-L147) has a model where endpoints are named in config and then can be reference by name in code for additional configuration.
191-
```
191+
```json
192192
{
193193
"Kestrel": {
194194
"Endpoints": {
@@ -200,7 +200,7 @@ Some things are easier to do in code and we want to be able to support that whil
200200
}
201201
}
202202
```
203-
```
203+
```csharp
204204
options.Endpoint("NamedEndpoint", opt =>
205205
{
206206

docs/designs/route-extensibility.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,16 @@ static IReverseProxyBuilder AddRouteExtension(this IReverseProxyBuilder builder,
102102
* The IConfigurationSection for the extension
103103
* The route object that is being extended
104104
* The existing extension instance in the case of configuration updates
105-
106-
> When the configuration is parsed, the factory is called based on the configuration key name, and the resultant object is added to the route/cluster objects.
107-
108-
> Regular YARP config will do a diff merge to handle config changes, and create new objects if applicable. The same mechanism needs to be used for extensions. If the configuration is updated, and an existing instance of the extension exists, then it will be passed to the factory. The factory can compare the current instance and re-use it, or copy its data across to a new instance based on the changes. Instances must stable, so existing instances shouldn't be modified if it would affect existing in-flight requests. YARP can't really enforce rules on how the objects are changed as we want the types to be user defined.
105+
>
106+
> When the configuration is parsed, the factory is called based on the configuration key name, and the resultant object is added to the route/cluster objects.
107+
>
108+
> Regular YARP config will do a diff merge to handle config changes, and create new objects if applicable. The same mechanism needs to be used for extensions. If the configuration is updated, and an existing instance of the extension exists, then it will be passed to the factory. The factory can compare the current instance and re-use it, or copy its data across to a new instance based on the changes. Instances must stable, so existing instances shouldn't be modified if it would affect existing in-flight requests. YARP can't really enforce rules on how the objects are changed as we want the types to be user defined.
109109

110110
* When using a custom config provider, the Extensions collection can be populated by the custom provider directly, or the provider can expose an `IConfigurationSection` implementation and use the factory as described below.
111111

112112
* When YARP is integrated with 3rd party config systems, such as K8s or ServiceFabric, those systems typically have a way of expressing custom properties, some of which will be used by YARP for the definition of routes/ clusters etc. To facilitate the ability for route and cluster extensions to be expressed within those systems, the integration provider should expose an `IConfigurationSection` implementation that maps between the integrated persistence format and YARP.
113113
`IConfigurationSection` is essentially a name/value lookup API, it should map pretty reasonably to the YAML or JSON formats used by the configuration systems, and not be an undue burden to implement on these integrations.
114114

115-
* Integration with 3rd party config systems can involve a remote process that YARP can pull its configuration from. I am [proposing another feature](#1710), that we formalize this pattern and have the ability to create a central YARP config provider, to which multiple YARP proxies can bind. This enables scalability in terms of being able to push config to multiple instances of YARP at once.
115+
* Integration with 3rd party config systems can involve a remote process that YARP can pull its configuration from. I am [proposing another feature](https://github.com/dotnet/yarp/issues/1710), that we formalize this pattern and have the ability to create a central YARP config provider, to which multiple YARP proxies can bind. This enables scalability in terms of being able to push config to multiple instances of YARP at once.
116116

117117
* To support this scenario, we should serialize the IConfiguration data and pass that across to the proxy instances.

docs/designs/yarp-tunneling.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ If the tunnel connection is broken, the back-end will attempt to reconnect to th
2626
- If the connection is refused with a 400 series error then further connections for that tunnel will not be made.
2727

2828
> Issue: Do we need an API for the tunnel? As its created from code on the back-end, the app could have additional logic for control over the duration. Does it have API for status, clean shutdown, etc.
29-
29+
>
3030
> Issue: Will additional connections be created for scalability - H2 perf becomes limited after 100 simultaneous requests. How does the front-end know to pair a second back-end connection?
3131
3232
The Front End should keep the WSS connection alive by sending pings every 30s if there is no other traffic. This should be done at the WSS layer.
@@ -198,9 +198,9 @@ Samples should be created that show best practices using a secure mechanism such
198198

199199
The purpose of the tunnel is to simplify service exposure by creating a tunnel through the firewall that enables external requests to be made to destination servers on the back-end network. There are a number of mitigations that reduces the risk of this feature:
200200

201-
* No endpoints are exposed via the firewall - it does not expose any new endpoints that could act as attack vectors. The tunnel is an outbound connection made between the back-end and the front-end.
202-
* Traffic directed via the tunnel will need to have corresponding routes in the Back End configuration. Traffic will only be routed if there is a respective route and cluster configuration. Tunnel traffic can't specify arbitrary URLs that would be directed to a hostname not included in the back-end route table configuration.
203-
* Tunnel connections should only be over HTTPs
201+
- No endpoints are exposed via the firewall - it does not expose any new endpoints that could act as attack vectors. The tunnel is an outbound connection made between the back-end and the front-end.
202+
- Traffic directed via the tunnel will need to have corresponding routes in the Back End configuration. Traffic will only be routed if there is a respective route and cluster configuration. Tunnel traffic can't specify arbitrary URLs that would be directed to a hostname not included in the back-end route table configuration.
203+
- Tunnel connections should only be over HTTPs
204204

205205
## Metrics
206206

@@ -210,10 +210,8 @@ The purpose of the tunnel is to simplify service exposure by creating a tunnel t
210210

211211
| Condition | Description |
212212
| --- | --- |
213-
| No tunnel has connected | If the front end receives a request for a route that is backed by a tunnel and no tunnels have been created, then it should respond to those requests with a 502 "Bad Gateway" error|
213+
| No tunnel has connected | If the front end receives a request for a route that is backed by a tunnel and no tunnels have been created, then it should respond to those requests with a 502 "Bad Gateway" error |
214214

215215
## Web Transport
216216

217217
Web Transport is an interesting future protocol choice for the tunnel.
218-
219-

docs/operations/BackportingToPreview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Backporting changes is very similar to a regular release. Changes are made on th
1919
- `git push upstream --tags`
2020
- Create a new [release](https://github.com/dotnet/yarp/releases).
2121

22-
# Internal fixes
22+
## Internal fixes
2323

2424
Issues with significant security or disclosure concerns need to be fixed privately first. All of this work will happen on the internal Azdo repo and be merged to the public github repo at the time of disclosure.
2525

docs/operations/Branching.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ Update branding in `main`:
1818

1919
Update the runtimes and SDKs in `global.json` in `main`:
2020

21-
Check that the global.json includes the latest 8.0 runtime versions from [here](https://dotnet.microsoft.com/download/dotnet/8.0), and 9.0 from [here](https://dotnet.microsoft.com/download/dotnet/9.0).
21+
Check that the global.json includes the latest 8.0 runtime versions from [the .NET 8.0 download page](https://dotnet.microsoft.com/download/dotnet/8.0), and 9.0 from [the .NET 9.0 download page](https://dotnet.microsoft.com/download/dotnet/9.0).
2222

2323
[`eng/Versions.props`]: ../../eng/Versions.props

docs/operations/DependencyFlow.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ https://github.com/dotnet/arcade (.NET Eng - Latest) ==> 'https://github.com/dot
5151

5252
To add a new subscription, run `darc add-subscription` with no arguments. An editor window will open with a TODO script like this:
5353

54-
```
54+
```yaml
5555
Channel: <required>
5656
Source Repository URL: <required>
5757
Target Repository URL: <required>
@@ -63,7 +63,7 @@ Merge Policies: []
6363
6464
A number of comments will also be present, describing available values and what they do. Fill these fields in, for example:
6565
66-
```
66+
```yaml
6767
Channel: .NET Eng - Latest
6868
Source Repository URL: https://github.com/dotnet/arcade
6969
Target Repository URL: https://github.com/dotnet/yarp
@@ -97,7 +97,7 @@ Set up dependency flow for the new branch:
9797
* `Target Branch` = `release/X` (where `X` is the YARP release version)
9898
* `Update Frequency` = `EveryWeek`
9999
* `Merge Policies` is a multiline value, it should look like this:
100-
```
100+
```yaml
101101
Merge Policies:
102102
- Name: Standard
103103
Properties: {}

docs/operations/Release.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Enter a comment such as "release for preview X" approve finalize the release.
7171

7272
The packages will be pushed and when the "NuGet.org" stage turns green, the packages are published!
7373

74-
*Note: NuGet publishing is quick, but there is a background indexing process that can mean it will take up to several hours for packages to become available*
74+
**Note:** NuGet publishing is quick, but there is a background indexing process that can mean it will take up to several hours for packages to become available
7575

7676
## Tag the commit
7777

@@ -121,6 +121,7 @@ There should only be one [preview branch on the repo](https://github.com/dotnet/
121121
11. [Offline] Wait for the archival completion report to arrive. Check that the size and number of archived files match the YARP repo.
122122

123123
### Recommended fields' values for archival request form
124+
124125
| Field | Value |
125126
| --- | --- |
126127
| Team Alias | dotnetrp |

docs/roadmap.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
# YARP Roadmap
22

3-
### Supported YARP versions
3+
## Supported YARP versions
44

55
[Latest releases](https://github.com/dotnet/yarp/releases)
66

77
| Version | Release Date | Latest Patch Version | End of Support |
88
| -- | -- | -- | -- |
9-
| [YARP 2.3](https://github.com/dotnet/yarp/releases/tag/v2.3.0) | February 27, 2025 | [2.3.0](https://github.com/dotnet/yarp/releases/tag/v2.3.0) | |
9+
| [YARP 2.3](https://github.com/dotnet/yarp/releases/tag/v2.3.0) | February 27, 2025 | [2.3.0](https://github.com/dotnet/yarp/releases/tag/v2.3.0) | |
1010

1111
### End-of-life YARP versions
1212

1313
| Version | Released date | Final Patch Version | End of support |
1414
| -- | -- | -- | -- |
15-
| [YARP 2.2](https://github.com/dotnet/yarp/releases/tag/v2.2.0) | September 3, 2024 | [2.2.0](https://github.com/dotnet/yarp/releases/tag/v2.2.0) | August 27, 2025 |
16-
| [YARP 2.1](https://github.com/dotnet/yarp/releases/tag/v2.1.0) | November 17, 2023 | [2.1.0](https://github.com/dotnet/yarp/releases/tag/v2.1.0) | March 3, 2025 |
17-
| [YARP 2.0](https://github.com/dotnet/yarp/releases/tag/v2.0.0) | February 14, 2023 | [2.0.1](https://github.com/dotnet/yarp/releases/tag/v2.0.1) | May 17, 2024 |
18-
| [YARP 1.1](https://github.com/dotnet/yarp/releases/tag/v1.1.0) | May 2, 2022 | [1.1.2](https://github.com/dotnet/yarp/releases/tag/v1.1.2) | August 14, 2023 |
19-
| [YARP 1.0](https://github.com/dotnet/yarp/releases/tag/v1.0.0) | November 9, 2021 | [1.0.1](https://github.com/dotnet/yarp/releases/tag/v1.0.1) | November 2, 2022 |
15+
| [YARP 2.2](https://github.com/dotnet/yarp/releases/tag/v2.2.0) | September 3, 2024 | [2.2.0](https://github.com/dotnet/yarp/releases/tag/v2.2.0) | August 27, 2025 |
16+
| [YARP 2.1](https://github.com/dotnet/yarp/releases/tag/v2.1.0) | November 17, 2023 | [2.1.0](https://github.com/dotnet/yarp/releases/tag/v2.1.0) | March 3, 2025 |
17+
| [YARP 2.0](https://github.com/dotnet/yarp/releases/tag/v2.0.0) | February 14, 2023 | [2.0.1](https://github.com/dotnet/yarp/releases/tag/v2.0.1) | May 17, 2024 |
18+
| [YARP 1.1](https://github.com/dotnet/yarp/releases/tag/v1.1.0) | May 2, 2022 | [1.1.2](https://github.com/dotnet/yarp/releases/tag/v1.1.2) | August 14, 2023 |
19+
| [YARP 1.0](https://github.com/dotnet/yarp/releases/tag/v1.0.0) | November 9, 2021 | [1.0.1](https://github.com/dotnet/yarp/releases/tag/v1.0.1) | November 2, 2022 |
2020

2121
## Support
2222

2323
YARP support is provided by the product team - the engineers working on YARP - which is a combination of members from ASP.NET and the .NET library teams. We do not provide 24/7 support or 'carry pagers', but we generally have good coverage. Bugs should be reported in GitHub using the issue templates, and will typically be responded to within 24hrs. If you find a security issue we ask you to [report it via the Microsoft Security Response Center (MSRC)](https://github.com/dotnet/yarp/blob/main/SECURITY.md).
2424

2525
The support period for YARP releases is as follows:
2626

27-
| Release | Issue Type | Support period |
28-
| --- | ---| --- |
29-
| Major or minor version | Security Bugs, Major behavior defects | Until next GA + 6 Months |
30-
| Patch version | Minor behavior defects | Until next GA |
27+
| Release | Issue Type | Support period |
28+
| --- | --- | --- |
29+
| Major or minor version | Security Bugs, Major behavior defects | Until next GA + 6 Months |
30+
| Patch version | Minor behavior defects | Until next GA |
3131
| Preview | Security Bugs, Major behavior defects | Until next preview |
3232
| | All other | None - may be addressed by next preview |
3333

eng/common/template-guidance.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Basic guidance is:
1212

1313
See [azure-pipelines.yml](../../azure-pipelines.yml) (templates-official example) or [azure-pipelines-pr.yml](../../azure-pipelines-pr.yml) (templates example) for examples.
1414

15-
#### The `templateIs1ESManaged` parameter
15+
### The `templateIs1ESManaged` parameter
1616

1717
The `templateIs1ESManaged` is available on most templates and affects which of the variants is used for nested templates. See [Development Notes](#development-notes) below for more information on the `templateIs1ESManaged1 parameter.
1818

@@ -59,7 +59,7 @@ Note: Multiple outputs are ONLY applicable to 1ES PT publishing (only usable whe
5959

6060
## Development notes
6161

62-
**Folder / file structure**
62+
### Folder / file structure
6363

6464
``` text
6565
eng\common\

0 commit comments

Comments
 (0)