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

Merge from dotnet/runtime #86

Merged
merged 73 commits into from
Sep 8, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
171082e
char.IsAscii xml doc comments (#41753)
gfoidl Sep 3, 2020
341b8b2
look for dhcp lease file in multiple locations (#41016)
wfurt Sep 3, 2020
9b2723d
[master] Update dependencies from mono/linker dotnet/arcade dotnet/ru…
dotnet-maestro[bot] Sep 3, 2020
1789775
Update license headers (#41783)
jkotas Sep 3, 2020
85190a3
Enable passing tests (#41763)
fanyang-mono Sep 3, 2020
f16fac5
Add ios support to the cmake build system. (#41710)
vargaz Sep 3, 2020
76138ba
Mark sizeValue as non faulting. (#41776)
Sep 3, 2020
72aae98
Fix neutral source flag in standalone MSIL component assemblies (#41764)
trylek Sep 3, 2020
eb364d6
Enable runtime closure verification (#41698)
NikolaMilosavljevic Sep 3, 2020
41fe0d3
Fix some interactions between tiering and multi-core JIT (#40948)
kouvel Sep 3, 2020
06d5a5e
Remove OSPlatformAttribute attributes from wasm linked output (#41799)
marek-safar Sep 3, 2020
68d96f1
Add COMPlus env var comment docs (#41707)
noahfalk Sep 3, 2020
df1cbb3
Fix parent assembly for standalone components in Crossgen2 build (#41…
trylek Sep 3, 2020
dbacdc2
Add JsonNumberHandling.AllowReadingFromString as a JsonSerializer web…
layomia Sep 3, 2020
bc39359
[runtime] Allocate code memory using MAP_JIT on apple silicon, patchi…
monojenkins Sep 3, 2020
d4cbb60
Fix leaking ICorProfilerCallback10. (#41791)
ww898 Sep 3, 2020
31e3508
Potential fix for folding of *(typ*)&lclVar for small types #40607 (#…
echesakov Sep 3, 2020
353919f
Replace g_tkCorEncodeToken with CorSigDecodeTokenType() inline functi…
k15tfu Sep 3, 2020
ed94902
Restrict CCompRC::LoadResourceFile and usage to win (#41757)
am11 Sep 3, 2020
a648dc1
Fix argument name in CompareInfo.IsPrefix (suffix -> prefix) (#41803)
krwq Sep 3, 2020
915c6d2
Fix param name in ActivityContext..ctor (#41801)
krwq Sep 3, 2020
5b83348
Fix configurations obsolete messages (#41835)
urielgoncalves Sep 3, 2020
03c7674
Fix Crossgen2 package by using the proper UCRT version (#41784)
AntonLapounov Sep 4, 2020
1d17ce6
Revert #40641 (#41817)
carlossanlop Sep 4, 2020
09c9d10
Add TailcallStress + GCStress testing to gcstress-extra pipeline (#41…
BruceForstall Sep 4, 2020
8ceca25
Properly handle byrefs in tailcall helper stubs (#41815)
jakobbotsch Sep 4, 2020
300df46
Fix mono_get_obj_type performing a failed assembly load on every call…
kg Sep 4, 2020
a196d53
DataContractSerialization cleanup (#41824)
eerhardt Sep 4, 2020
740d59a
Mark System.Diagnostics.Process unsupported at assembly level (#41694)
mdh1418 Sep 4, 2020
b25b2bc
[wasm][debugger] Add support for surfacing inherited members (#41480)
radical Sep 4, 2020
69c1038
Incorporate timezone data from runtime-assets (#41524)
tqiu8 Sep 4, 2020
354008c
[mono] Fix Android and iOS samples (#41870)
EgorBo Sep 4, 2020
3d1f2ef
[wasm] Mark System.IO.Compression APIs as unsupported on Browser (#41…
mdh1418 Sep 4, 2020
ddbb03a
Add libraries on mono outerloop build (#41712)
safern Sep 4, 2020
964766a
Add x86/arm64/arm support to the cmake build. Fix issues. (#41860)
vargaz Sep 4, 2020
5463301
hold ref to temp keychain on OSX to avoild premature cleanup (#41787)
wfurt Sep 4, 2020
a6aac1f
Marking Matrix3x2, Matrix4x4, Plane, and Quaternion as Intrinsic (#41…
tannergooding Sep 4, 2020
622127e
improve test dynamic certificate generation (#41659)
wfurt Sep 4, 2020
22927dd
Unconditionally build the cross-os DAC (#41852)
hoyosjs Sep 4, 2020
c49aab6
[wasm] Mark System.IO.FileSystem.Watcher APIs as unsupported on Brows…
mdh1418 Sep 4, 2020
3c1b48e
[wasm] Mark System.IO.IsolatedStorage APIs as unsupported on Browser …
mdh1418 Sep 4, 2020
5ae76c5
[merp] Revert 7a0425e which is causing xamarin-android failures (#41709)
monojenkins Sep 4, 2020
a9f6fd6
[wasm] Mark System.Console APIs as unsupported on Browser (#41184)
mdh1418 Sep 4, 2020
e658ddb
Simplify webassembly targets (#41869)
akoeplinger Sep 4, 2020
1b008c1
Update msftbot configuration contacts (#41903)
jeffhandley Sep 4, 2020
c079dd2
Disable LoadAsync_CancelDuringLoad_CompletesAsCanceled test on mono (…
safern Sep 4, 2020
f8618ea
SingleFile: Enable hammer servicing (#41847)
swaroop-sridhar Sep 4, 2020
b028994
Fix covariant returns validation (#41874)
janvorli Sep 4, 2020
d66f88b
Add more Half methods to BitConverter (#41789)
huoyaoyuan Sep 4, 2020
9e22b9f
Bundle assemblies at 4K for linux arm64 (#41809)
sbomer Sep 5, 2020
b6e607d
Optimize the allocation and speed of ActivitySet/GetCustomProperty (#…
tarekgh Sep 5, 2020
66f4b4b
[wasm][debugger] Add support for Nullable<T> (#41559)
radical Sep 5, 2020
4fd87bc
[wasm][debugger] Show actual data for boxed values (#41562)
radical Sep 5, 2020
2e4e75b
[wasm][debugger] Small improvements to fail gracefully (#41713)
radical Sep 5, 2020
1ccfb40
Suppress C5105 warning on build (#41900)
GrabYourPitchforks Sep 5, 2020
385c563
refine obsolete messages (#41877)
gewarren Sep 5, 2020
d59cf10
remove LazyAsyncResult and unnecessary proj references (#41909)
geoffkizer Sep 5, 2020
1d3f820
[interp] Add basic block support (#41574)
monojenkins Sep 5, 2020
4b80546
Updates servicing doc and servicing template (#41844)
Anipik Sep 6, 2020
b3bc0a7
Add unsigned overloads for Unsafe Add/Subtract and Add/SubtractByteOf…
huoyaoyuan Sep 6, 2020
57c70c7
[Browser] Add mono_wasm_get_icudt_name API (#41795)
EgorBo Sep 7, 2020
a84720c
Removed nightly to workaround failing Kestrel init. (#41934)
ManickaP Sep 7, 2020
2fa4e6d
Restore exception compatibility in TcpListener.EndAccept*** (#41745)
antonfirsov Sep 7, 2020
228acfd
Modify condition to match message: (#41933)
kjpou1 Sep 7, 2020
a3a7e0d
More tests for Marshal.Realloc{HGlobal|CoTaskMem} (#41910)
jkotas Sep 7, 2020
5f56a50
Remove multi-targeting from runtime.depproj (#41666)
ViktorHofer Sep 7, 2020
2182936
Add transitive CompilerServices.Unsafe dependency (#41616)
ViktorHofer Sep 7, 2020
395fe0c
Cleanup stack limits usage (#41946)
janvorli Sep 7, 2020
3f30ac6
September infra rollout - continued CoreCLR / Mono test cleanup (mini…
trylek Sep 7, 2020
c15455a
Force concurrent LdapConnection in new process (#41880)
ericstj Sep 8, 2020
d81b066
Move Marshal memory allocation methods into CoreLib shared partition …
jkotas Sep 8, 2020
8437858
Merge remote-tracking branch 'upstream/runtime-master' into NativeAOT
jkotas Sep 8, 2020
9666bab
Cleanup redundant code to fix build breaks
jkotas Sep 8, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 7 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,25 @@

<DocsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'docs'))</DocsDir>
<ManPagesDir>$([MSBuild]::NormalizeDirectory('$(DocsDir)', 'manpages'))</ManPagesDir>

<!-- System.Private.CoreLib -->
<CoreLibSharedDir>$([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'src'))</CoreLibSharedDir>
<CoreLibProject Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'src', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
<CoreLibProject Condition="'$(RuntimeFlavor)' == 'Mono'">$([MSBuild]::NormalizePath('$(MonoProjectRoot)', 'netcore', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
<CoreLibProject Condition="'$(ClrNativeAot)' == 'true'">$([MSBuild]::NormalizePath('$(CoreClrProjectRoot)', 'src', 'nativeaot', 'System.Private.CoreLib', 'System.Private.CoreLib.csproj'))</CoreLibProject>
</PropertyGroup>

<PropertyGroup Condition="'$(TargetsMobile)' == 'true'">
<AppleAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AppleAppBuilder', 'Debug', '$(NetCoreAppCurrent)'))</AppleAppBuilderDir>
<AndroidAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'AndroidAppBuilder', 'Debug', '$(NetCoreAppCurrent)'))</AndroidAppBuilderDir>
<WasmAppBuilderDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmAppBuilder', 'Debug', '$(NetCoreAppCurrent)', 'publish'))</WasmAppBuilderDir>
<CreateWasmBundleDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'CreateWasmBundle', 'Debug', '$(NetCoreAppCurrent)', 'publish'))</CreateWasmBundleDir>
<WasmBuildTasksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'WasmBuildTasks', 'Debug', '$(NetCoreAppCurrent)', 'publish'))</WasmBuildTasksDir>
<MonoAOTCompilerDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'MonoAOTCompiler', 'Debug', '$(NetCoreAppCurrent)'))</MonoAOTCompilerDir>

<AppleAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(AppleAppBuilderDir)', 'AppleAppBuilder.dll'))</AppleAppBuilderTasksAssemblyPath>
<AndroidAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(AndroidAppBuilderDir)', 'AndroidAppBuilder.dll'))</AndroidAppBuilderTasksAssemblyPath>
<WasmAppBuilderTasksAssemblyPath>$([MSBuild]::NormalizePath('$(WasmAppBuilderDir)', 'WasmAppBuilder.dll'))</WasmAppBuilderTasksAssemblyPath>
<CreateCreateWasmBundlesAssemblyPath>$([MSBuild]::NormalizePath('$(CreateWasmBundleDir)', 'CreateWasmBundle.dll'))</CreateCreateWasmBundlesAssemblyPath>
<WasmBuildTasksAssemblyPath>$([MSBuild]::NormalizePath('$(WasmBuildTasksDir)', 'WasmBuildTasks.dll'))</WasmBuildTasksAssemblyPath>
<MonoAOTCompilerTasksAssemblyPath>$([MSBuild]::NormalizePath('$(MonoAOTCompilerDir)', 'MonoAOTCompiler.dll'))</MonoAOTCompilerTasksAssemblyPath>
</PropertyGroup>

Expand Down
23 changes: 23 additions & 0 deletions PULL_REQUEST_TEMPLATE/servicing_pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Fixes Issue <!-- Issue Number -->

Master PR <!-- Link to PR if any that fixed this in the master branch. -->

# Description

<!-- Give a brief summary of the issue and how the pull request is fixing it. -->

# Customer Impact

<!-- What is the impact to customers of not taking this fix? -->

# Regression

<!-- Is this fixing a problem that was introduced in the most recent release, ie., fixing a regression? -->

# Testing

<!-- What kind of testing has been done with the fix. -->

# Risk

<!-- Please assess the risk of taking this fix. Provide details backing up your assessment. -->
2 changes: 1 addition & 1 deletion docs/area-owners.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ If you need to tag folks on an issue or PR, you will generally want to tag the o

## Areas

Note: Editing this file doesn't update the mapping used by the `@msftbot` issue notification bot to tag owners. Some area owners prefer not to get those notifications. To update those notifications, contact any one of `@danmosemsft`, `@jeffschw`, `@marek-safar`, `@ericstj`, or `@karelz`, they have permissions to update [`msftbot` configuration](https://fabric-cp.azurewebsites.net/bot/?repo=dotnet/runtime). If you're a community member interested in these notifications, you won't appear in this table but we can add you to notifications - just let us know.
Note: Editing this file doesn't update the mapping used by the `@msftbot` issue notification bot to tag owners. Some area owners prefer not to get those notifications. To update those notifications, contact any one of `@danmosemsft`, `@jeffschw`, `@marek-safar`, `@ericstj`, `@karelz`, or `@jeffhandley`; they have permissions to update [`msftbot` configuration](https://fabric-cp.azurewebsites.net/bot/?repo=dotnet/runtime). If you're a community member interested in these notifications, you won't appear in this table but we can add you to notifications - just let us know.

| Area | Lead | Owners (area experts to tag in PR's and issues) | Description |
|------------------------------------------------|---------------|-----------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
Expand Down
16 changes: 10 additions & 6 deletions docs/project/library-servicing.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# How to service a library in CoreFx
# How to service a library

This document provides the steps necessary after modifying a CoreFx library in a servicing branch (where "servicing branch" refers to any branch whose name begins with `release/`).
This document provides the steps necessary after modifying a library in a servicing branch (where "servicing branch" refers to any branch whose name begins with `release/`).

## Check for existence of a .pkgproj

Most libraries are not packaged by default. Some libraries have their output packaged in `Microsoft.Private.CoreFx.NetCoreApp`, which is always built, while other libraries have their own specific packages, which are only built on-demand. Your first step is to determine whether or not your library has its own package. To do this, go into the root folder for the library you've made changes to. If there is a `pkg` folder there (which should have a `.pkgproj` file inside of it), your library does have its own package. If there is no `pkg` folder there, the library should be built as part of `Microsoft.Private.CoreFx.NetCoreApp` and shipped as part of `Microsoft.NetCore.App`. To confirm this, check if the library is listed in NetCoreAppLibrary.props. If it is, then there is nothing that needs to be done. If it's not, contact a member of the servicing team for guidance, as this situation goes against our convention.
Your first step is to determine whether or not your library has its own package. To do this, go into the root folder for the library you've made changes to. If there is a `pkg` folder there (which should have a `.pkgproj` file inside of it), your library does have its own package. If there is no `pkg` folder there, the library is the part of the shared framework. If it is, then there is nothing that needs to be done.

For example, if you made changes to [System.Data.SqlClient](https://github.com/dotnet/runtime/tree/master/src/libraries/Microsoft.Win32.Registry), then you have a .pkgproj, and will have to follow the steps in this document. However, if you made changes to [System.Collections](https://github.com/dotnet/runtime/tree/master/src/libraries/System.Collections), then you don't have a .pkgproj, and you do not need to do any further work for servicing.
For example, if you made changes to [Microsoft.Win32.Primitives](https://github.com/dotnet/runtime/tree/master/src/libraries/Microsoft.Win32.Primitives), then you have a `.pkgproj`, and will have to follow the steps in this document. However, if you made changes to [System.Collections](https://github.com/dotnet/runtime/tree/master/src/libraries/System.Collections), then you don't have a `.pkgproj`, and you do not need to do any further work for servicing.

## Determine PackageVersion

Each package has a property called `PackageVersion`. When you make a change to a library & ship it, the `PackageVersion` must be bumped. This property could either be in one of two places inside your library's source folder: `Directory.Build.Props` (or dir.props), or the `.pkgproj`. It's also possible that the property is in neither of those files, in which case we're using the default version from [Packaging.props](https://github.com/dotnet/runtime/blob/master/eng/packaging.props#L25) (IMPORTANT - make sure to check the default version from the branch that you're making changes to, not from master). You'll need to increment this package version. If the property is already present in your library's source folder, just increment the patch version by 1 (e.g. `4.6.0` -> `4.6.1`). If it's not present, add it to the library's `Directory.Build.props` (or dir.props), where it is equal to the version in `Packaging.props`, with the patch version incremented by 1.
Each package has a property called `PackageVersion`. When you make a change to a library & ship it, the `PackageVersion` must be bumped. This property could either be in one of two places inside your library's source folder: `Directory.Build.Props` (or dir.props), or the `.pkgproj`. It's also possible that the property is in neither of those files, in which case we're using the default version from [Packaging.props](https://github.com/dotnet/runtime/blob/master/eng/packaging.props#L25) (IMPORTANT - make sure to check the default version from the branch that you're making changes to, not from master). You'll need to increment this package version. If the property is already present in your library's source folder, just increment the patch version by 1 (e.g. `4.6.0` -> `4.6.1`). If it's not present, add it to the library's `Directory.Build.props`, where it is equal to the version in `Packaging.props`, with the patch version incremented by 1.

Note that it's possible that somebody else has already incremented the package version since our last release. If this is the case, you don't need to increment it yourself. To confirm, check [Nuget.org](https://www.nuget.org/) to see if there is already a published version of your package with the same package version. If so, the `PackageVersion` must be incremented. If not, there's still a possibility that the version should be bumped, in the event that we've already built the package with its current version in an official build, but haven't released it publicly yet. If you see that the `PackageVersion` has been changed in the last 1-2 months, but don't see a matching package in Nuget.org, contact somebody on the servicing team for guidance.

## Determine AssemblyVersion

Each library has a property called `AssemblyVersion` which will be in either the library `.csproj` or in `Directory.Build.Props` (or dir.props). For servcing events you will want to increment the revision by 1 (e.g `4.0.0.0` -> `4.0.0.1`) in the library's `Directory.Build.Props` (or dir.props) if the library ships in its own package and has an asset that is applicable to .NET Framework. To determine if it applies to .NET Framework you should check to see if there are any `netstandard` or `net4x` configurations in the ref and/or src project, if there are then it has assets that apply.
Each library has a property called `AssemblyVersion` which will be in either the library `.csproj` or in `Directory.Build.Props`. For servicing events you will want to increment the revision by 1 (e.g `4.0.0.0` -> `4.0.0.1`) in the library's `Directory.Build.Props` if the library ships in its own package and has an asset that is applicable to .NET Framework. To determine if it applies to .NET Framework you should check to see if there are any `netstandard` or `net4x` configurations in the ref and/or src project, if there are then it has assets that apply.

The reason we need to increment the assembly version for things running on .NET Framework is because of the way binding works there. If there are two assemblies with the same assembly version the loader will essentially pick the first one it finds and use that version so applications don't have full control over using the later build with a particular fix included. This is worse if someone puts the older assembly in the GAC as the GAC will always win for matching assembly versions so an application couldn't load the newer one because it has the same assembly version.

Expand Down Expand Up @@ -47,3 +47,7 @@ All that's left is to ensure that your changes have worked as expected. To do so

3. Try installing the built package in a test application, testing that your changes to the library are present & working as expected.
To install your package add your local packages folder as a feed source in VS or your nuget.config and then add a PackageReference to the specific version of the package you built then try using the APIs.

## Approval Process

All the servicing change must go through an approval process. Please create your PR using [this template](https://github.com/dotnet/runtime/compare/template?expand=1&template=servicing_pull_request_template.md). You should also add `servicing-consider` label to the pull request and bring it to the attention of the engineering lead responsible for the area.
Loading