Skip to content

Commit 9900dfb

Browse files
danmoseleyYoussef1313jkotas
authored
Organize some markdowns and fix links (dotnet#1159)
* Move files into hierarchy * fix more links * Fix botr and features links * Remove bad apostrophe * spelling * Apply suggestions from code review Co-Authored-By: Youssef Victor <31348972+Youssef1313@users.noreply.github.com> * Update docs/coding-guidelines/package-projects.md Co-Authored-By: Jan Kotas <jkotas@microsoft.com> Co-authored-by: Youssef Victor <31348972+Youssef1313@users.noreply.github.com> Co-authored-by: Jan Kotas <jkotas@microsoft.com>
1 parent a2faf10 commit 9900dfb

54 files changed

Lines changed: 102 additions & 95 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,6 @@ See [IdnMapping.cs](./src/libraries/System.Private.CoreLib/src/System/Globalizat
157157

158158
### Porting Files from Other Projects
159159

160-
There are many good algorithms implemented in other languages that would benefit the .NET Core project. The rules for porting a Java file to C# , for example, are the same as would be used for copying the same file, as described above.
160+
There are many good algorithms implemented in other languages that would benefit the .NET Core project. The rules for porting a Java file to C#, for example, are the same as would be used for copying the same file, as described above.
161161

162162
[Clean-room](https://en.wikipedia.org/wiki/Clean_room_design) implementations of existing algorithms that are not permissively licensed will generally not be accepted. If you want to create or nominate such an implementation, please create an issue to discuss the idea.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ Official Starting Page: https://dotnet.microsoft.com/
2222

2323
We welcome contributions! Many people all over the world have helped make this project better.
2424

25-
For further information see [Contributing](CONTRIBUTING.md).
25+
* [Contributing](CONTRIBUTING.md) explains what kinds of changes we welcome
26+
- [Workflow Instructions](docs/workflow/README.md) explains how to build and test
2627

2728
## Reporting security issues and security bugs
2829

docs/README.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,6 @@ Getting Started
1414
- [Installing the .NET SDK](https://dotnet.microsoft.com/download)
1515
- [Official .NET Docs](https://docs.microsoft.com/dotnet/core/)
1616

17-
Software requirements
18-
===============
19-
20-
- [Windows Requirements](workflow/windows-requirements.md)
21-
- [Linux Requirements](workflow/linux-requirements.md)
22-
- [MacOS Requirements](workflow/macos-requirements.md)
23-
2417
Workflow (Building, testing, etc.)
2518
===============
2619

docs/coding-guidelines/EventLogging.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ Event Logging is a mechanism by which CoreClr can provide a variety of informati
66

77
# Adding Events to the Runtime
88

9-
- Edit the [Event manifest](../../src/vm/ClrEtwAll.man) to add a new event. For guidelines on adding new events, take a look at the existing events in the manifest and this guide for [ETW Manifests](https://msdn.microsoft.com/en-us/library/dd996930%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396).
9+
- Edit the [Event manifest](../../src/coreclr/src/vm/ClrEtwAll.man) to add a new event. For guidelines on adding new events, take a look at the existing events in the manifest and this guide for [ETW Manifests](https://msdn.microsoft.com/en-us/library/dd996930%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396).
1010
- The build system should automatically generate the required artifacts for the added events.
11-
- Add entries in the [exclusion list](../../src/vm/ClrEtwAllMeta) if necessary
11+
- Add entries in the [exclusion list](../../src/coreclr/src/vm/ClrEtwAllMeta.lst) if necessary
1212
- The Event Logging Mechanism provides the following two functions, which can be used within the VM:
1313
- **FireEtw**EventName, this is used to trigger the event
1414
- **EventEnabled**EventName, this is used to see if any consumer has subscribed to this event
1515

1616

1717
# Adding New Logging System
1818

19-
Though the the Event logging system was designed for ETW, the build system provides a mechanism, basically an [adapter script- genXplatEventing.py](../../src/scripts/genXplatEventing.py) so that other Logging System can be added and used by CoreClr. An Example of such an extension for [LTTng logging system](https://lttng.org/) can be found in [genXplatLttng.py](../../src/scripts/genXplatLttng.py )
19+
Though the the Event logging system was designed for ETW, the build system provides a mechanism, basically an [adapter script- genEventing.py](../../src/coreclr/src/scripts/genEventing.py) so that other Logging System can be added and used by CoreClr. An Example of such an extension for [LTTng logging system](https://lttng.org/) can be found in [genLttngProvider.py](../../src/coreclr/src/scripts/genLttngProvider.py )

docs/coding-guidelines/adding-api-guidelines.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,16 @@ Recommended reading to better understand this document:
44
| [Package-Projects](package-projects.md)
55

66
# Add APIs
7-
- [Determining versions and targets](#determining-versions-and-targets)
8-
- [Making the changes in repo](#making-the-changes-in-repo)
9-
- [FAQ](#faq)
107

11-
## Determining versions and targets
12-
13-
1. [Determine what library](#determine-what-library) the API goes into.
14-
2. [Determine the target framework](#determine-target-framework) for the library that will contain the API.
15-
3. [Determine the version](#determine-library-version) for the library that will contain the API.
8+
- [Add APIs](#add-apis)
9+
- [Determine what library](#determine-what-library)
10+
- [Determine target framework](#determine-target-framework)
11+
- [Determine library version](#determine-library-version)
12+
- [Making the changes in repo](#making-the-changes-in-repo)
13+
- [FAQ](#faq)
1614

1715
### Determine what library
16+
1817
- Propose a library for exposing it as part of the [API review process](http://aka.ms/apireview).
1918
- Keep in mind the API might be exposed in a reference assembly that
2019
doesn't match the identity of the implementation. There are many reasons for this but
@@ -23,9 +22,10 @@ different platforms while sharing a common API surface and allowing us to refact
2322
the implementation without compat concerns in future releases.
2423

2524
### Determine target framework
25+
2626
`netstandard` or `netcoreapp` is the target framework version currently under development.
2727

28-
- If the library is [part of netstandard](#isnetstandard)
28+
- If the library is [part of netstandard](#faq)
2929
- Your target framework should be `netstandard`
3030
- If it is a new API only available on .NET Core then it will be added to `netcoreapp`
3131
- If the library is not part of netstandard
@@ -83,4 +83,4 @@ project references across the projects. You also need to be sure to leave type-f
8383
where you removed types in order to maintain back-compat.
8484

8585

86-
[net-standard table]: https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support
86+
[net-standard table]: https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support

docs/coding-guidelines/package-projects.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,10 @@ Sample `System.IO.FileSystem.pkgproj`
214214
```
215215

216216
## Asset selection
217+
217218
The makeup of a package folder is primarily a grouping of project references to the projects that compose that package. Settings within each referenced project determines where that asset will be placed in the package. For example, reference assembly projects will be placed under the `ref/{targetMoniker}` folder in the package and implementations will be under either `lib/{targetMoniker}` or `runtimes/{rid}/lib/{targetMoniker}`. Whenever NuGet evaluates a package in the context of a referencing project it will choose the best compile time asset (preferring `ref`, then falling back to `lib`) and runtime asset (preferring `runtimes/{rid}/lib` and falling back to `lib`) for every package that is referenced. For more information see http://docs.nuget.org/.
218219

219-
Asset projects (`.csproj`, `.vbproj`, or `.depproj`) can control their `{targetMoniker}` using the `PackageTargetFramework` property in the project file. Similarly `{rid}` is controlled using the `PackageTargetRuntime` property. In the corefx repo we automatically select default values for these properties based on the [Build pivots](#build-pivots). These can be overridden in the project reference using metadata of the same name, but this is rarely needed.
220+
Asset projects (`.csproj`, `.vbproj`, or `.depproj`) can control their `{targetMoniker}` using the `PackageTargetFramework` property in the project file. Similarly `{rid}` is controlled using the `PackageTargetRuntime` property. For the libraries we automatically select default values for these properties based on the build pivots. These can be overridden in the project reference using metadata of the same name, but this is rarely needed.
220221

221222
The primary thing that the library author needs to do in order to ensure the correct asset selection is:
222223

docs/coding-guidelines/performance-guidelines.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Different applications have different needs when it comes to performance. For l
55

66
Much has been written about writing high-performance code in C#. This page provides links to some of that material and will expand over time as additional resources are found and identified as being relevant and useful.
77

8-
You can read [CoreCLR Performance Requirements](../../coreclr/project-docs/performance-guidelines.md) to learn more.
8+
You can read [CoreCLR Performance Requirements](../project/performance-guidelines.md) to learn more.
99

1010
# Memory Management
1111

docs/coding-guidelines/project-guidelines.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ Each source file should use the following guidelines
244244
- `.WinRT.cs` - implementation based on [WinRT](https://en.wikipedia.org/wiki/Windows_Runtime)
245245

246246
## Define naming convention
247-
As mentioned in [Conventions for forked code](conventions-for-forked-code) `#ifdef`ing the code is the last resort as it makes code harder to maintain overtime. If we do need to use `#ifdef`'s we should use the following conventions:
247+
248+
As mentioned in [Conventions for forked code](#conventions-for-forked-code) `#ifdef`ing the code is the last resort as it makes code harder to maintain overtime. If we do need to use `#ifdef`'s we should use the following conventions:
248249
- Defines based on conventions should be one of `$(OSGroup)`, `$(TargetGroup)`, `$(ConfigurationGroup)`, or `$(Platform)`, matching exactly by case to ensure consistency.
249250
- Examples: `<DefineConstants>$(DefineConstants);net46</DefineConstants>`
250251
- Defines based on convention should match the pattern `FEATURE_<feature name>`. These can unique to a given library project or potentially shared (via name) across multiple projects.
Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
This document provides the steps you need to take to update the reference assembly when adding new **public** APIs to an implementation assembly (post [API Review](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/adding-api-guidelines.md)).
1+
This document provides the steps you need to take to update the reference assembly when adding new **public** APIs to an implementation assembly (post [API Review](adding-api-guidelines.md)).
22

3-
## For most assemblies within corefx
4-
1) Implement the API in the source assembly and [build it](../project-docs/developer-guide.md#building-individual-libraries).
5-
2) Run the following command (from the src directory) `msbuild /t:GenerateReferenceSource` to update the reference assembly**.
6-
3) Navigate to the ref directory and build the reference assembly.
7-
4) Add, build, and run tests.
3+
## For most assemblies within libraries
4+
5+
1. Implement the API in the source assembly and [build it](../workflow/building/libraries/README.md#building-individual-libraries).
6+
2. Run the following command (from the src directory) `msbuild /t:GenerateReferenceSource` to update the reference assembly**.
7+
3. Navigate to the ref directory and build the reference assembly.
8+
4. Add, build, and run tests.
89

910
** **Note:** If you already added the new API to the reference source, re-generating it (after building the source assembly) will update it to be fully qualified and placed in the correct order. This can be done by running the `GenerateReferenceSource` command from the ref directory.
1011

1112
## For System.Runtime
13+
1214
These steps can also be applied to some unique assemblies which depend on changes in System.Private.Corelib coming from [coreclr](https://github.com/dotnet/coreclr) (partial facades like [System.Memory](https://github.com/dotnet/corefx/blob/83711167ee74d2e87cf2d5ed3508c94044bb7edc/src/System.Memory/src/System.Memory.csproj#L6), for example).
1315
1) Build coreclr release.
14-
2) Build corefx release with coreclr bits (see [Testing with private CoreCLR bits](../project-docs/developer-guide.md#testing-with-private-coreclr-bits) for more details).
16+
2) Build corefx release with coreclr bits (see (// TODO //)) for more details).
1517
3) Run `msbuild /t:GenerateReferenceSource /p:ConfigurationGroup=Release` from the System.Runtime/ref directory.
16-
4) Filter out all unrelated changes and extract the changes you care about (ignore certain attributes being removed). Generally, this step is not required for other reference assemblies.
18+
4) Filter out all unrelated changes and extract the changes you care about (ignore certain attributes being removed). Generally, this step is not required for other reference assemblies.

docs/design/coreclr/botr/intro-to-clr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,6 @@ Phew! The runtime does a lot! It has taken many pages just to describe _some_ o
254254
- [CoreCLR Repo Documentation](README.md)
255255

256256
[clr]: http://msdn.microsoft.com/library/8bs2ecf4.aspx
257-
[ecma-spec]: ../project-docs/dotnet-standards.md
257+
[ecma-spec]: ../../../project/dotnet-standards.md
258258
[cil-spec]: http://download.microsoft.com/download/7/3/3/733AD403-90B2-4064-A81E-01035A7FE13C/MS%20Partition%20III.pdf
259259
[fx-design-guidelines]: http://msdn.microsoft.com/en-us/library/ms229042.aspx

0 commit comments

Comments
 (0)